about

my name is Benedikt Böhm, i am working as an open source software developer/maintainer and freelancer. i am also studying computer science at the Free University in Berlin.

please take a look at my résumé and references. don't hesitate to contact me for detailed information.

contact

Benedikt Böhm
Berlin, Germany

SMTP/XMPP
bb@xnull.de
IRC
Hollow at irc.oftc.net or irc.freenode.net
GPG
key id: 0xB5FAF161

detailed information is available. don't forget to take a look at my xing profile and gulp.de profile.

networking

if you do social networking you can follow me with these services:

xing gulp github ohloh twitter soup.io delicious last.fm

MyDNSAdmin

Author: Benedikt Böhm
Version: 0.2.0_rc1
Web:http://bb.xnull.de/projects/mydnsadmin/
Source:http://git.xnull.de/gitweb/?p=mydnsadmin.git (also on github)
Download:http://bb.xnull.de/projects/mydnsadmin/dist/

MyDNSAdmin is a clone of MyDNS' admin.php with multi-user support, XHTML 1.0 compatible templates and sane model definitions. It is based on the django framework and therefore easily extensible.

Requirements

  • apache-2.x (preferably with prefork MPM)
  • mod_python-3.x
  • django-1.x
  • django_templatecomponents

Installation

Let's assume you have configured MyDNS according to http://mydns.bboy.net/doc/html/ including optional soa columns (soa.active and soa.xfer). Additionally you already configured apache to serve your website from /var/www/mysite/htdocs and the Django installtion can be found in /usr/lib/python2.5/site-packages/django/.

First install mydnsadmin by running the following commands as root:

python setup.py install
mkdir -p /usr/share/mydnsadmin
cp -r media templates /usr/share/mydnsadmin/

mkdir -p /var/www/mysite/settings
touch /var/www/mysite/settings/__init__.py
cp etc/settings.py.sample /var/www/mysite/settings/mydnsadmin_local.py

Now, to configure mydnsadmin, open /var/www/mysite/settings/mydnsadmin_local.py and at least set DATABASE_*, ADMINS, SECRET_KEY and DEFAULT_* to fit your needs.

Now, edit your apache configuration and add the following snippet to a virtualhost of your choice (localhost in my case).:

<Location /mydnsadmin/>
        SetHandler python-program
        PythonHandler django.core.handlers.modpython
        SetEnv DJANGO_SETTINGS_MODULE settings.mydnsadmin_local
        PythonOption django.root /mydnsadmin
        PythonPath "['/var/www/mysite/'] + sys.path"
</Location>

Alias /mydnsadmin/media/ /usr/share/mydnsadmin/media/
<Location /mydnsadmin/media/>
        SetHandler none
</Location>
<Directory /usr/share/mydnsadmin/media/>
        Order deny,allow
        Allow from All
</Directory>

Alias /mydnsadmin/admin_media/ /usr/lib/python2.5/site-packages/django/contrib/admin/media/
<Location /mydnsadmin/admin_media/>
        SetHandler none
</Location>
<Directory /usr/lib/python2.5/site-packages/django/contrib/admin/media/>
        Order deny,allow
        Allow from All
</Directory>

Now, reload your apache configuration (e.g. /etc/init.d/apache2 reload) and run the following command to update the mydns database:

django-admin.py syncdb \
  --pythonpath=/var/www/mysite \
  --settings=settings.mydnsadmin_local

Finally, point your browser to http://localhost/mydnsadmin/ and login with the user you have created during syncdb.

To create new user accounts, you have to login to the Django admin site, which can be found at http://localhost/mydnsadmin/admin/.