Django

Premièrement, dans le panel, installez une application django en version 0.96. Il faut ensuite mettre à jour django avec le trunk si vous le souhaitez. Pour cela, il suffit juste de remplacer le répertoire ~/lib/python2.5/django par un checkout du trunk. Plus d'infos sur les fora de webfaction.

Après ça, vous pouvez mettre votre projet dans ~/webapps/django/nom-de-lapp/. Modifions maintenant la configuration par défaut. Le httpd.conf se trouve dans ~/webapps/django/nom-de-lapp/apache2/conf/. Il faudra peut-être jouer un peu avec le PythonPath pour que les import pointent au bon endroit. Dans notre configuration, Webfaction ne nous autorise que 40mo d'utilisation de mémoire vive. Nous avons donc modifié la config ainsi :

ServerLimit 1
MaxRequestsPerChild 1000
KeepAlive Off

À modifier évidemment selon vos droits d'utilisation de mémoire vive. Il ne faut pas oublier de servir les fichiers statiques (CSS, JS, images). S'il vous reste de quoi installer d'autres applications, je vous conseille de suivre les conseils de Webfaction. Dans le cas contraire, une config du type suivant devrait convenir pour les fichiers de l'admin :

Alias /media/admin /home/mon-utilisateur/lib/python2.5/django/contrib/admin/media
<Location "/media/admin">
    SetHandler None
    SetOutputFilter DEFLATE
</Location>

Je vous laisse deviner comment modifier cela pour servir les fichiers statiques de votre appli. N'oubliez pas de redémarrer apache avec ~/webapps/django/nom-de-lapp/apache2/bin/restart. Il faudra aussi ne pas oublier d'associer l'application à un website dans le panel.

SVN et Trac

Commencez par créer une application SVN et une Trac. Il vous faudra exporter votre ancien dépôt SVN avec la commande svnadmin dump /path/to/svn > svn.dump. Pour ensuite l'importer avec svnadmin load ~/webapps/svn/ < svn.dump.

Pour Trac, il faut copier la base de données SQLite dans le répertoire ~/webapps/trac/db/trac.db. N'oubliez pas de copier aussi les répertoires attachments et templates. On finit par un petit trac-admin ~/webapps/trac/ upgrade si vous aviez une version inférieure de Trac sur votre ancien serveur.

Il y a aussi la gestion des permissions. Pour les fichiers htaccess, copiez en un vers ~/webapps/svn/.htaccess. Puis faites un lien symbolique de ~/webapps/trac/.htaccess vers ~/webapps/svn/.htaccess. Comme ça, ils seront toujours synchronisés. Pour la gestion fine des accès, tout ce trouve dans ~/webapps/svn/.authz.

Les fortunes

La migration était justement l'occasion de mettre en ligne les fortunes. Il reste quelques réglages de regexp à faire, mais au moins, les péripéties de #django-fr sur irc.freenode.net sont gardées pour la postérité. Si ça peut vous donner envie de nous rejoindre...