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.
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/.