Logiciellement parlant : Debian, Django, Nginx, Postgresl, etc.
Avant de reprendre l'énumération des composants de mon système, un peu de système. Mon site auto-hébergé est géré par l'architecture suivante :
Avec
- Debian GNU/Linux comme système d'exploitation, celui que je connais le mieux, celui que j'utilise tous les jours et sans doute le plus adapté à cet usage. Bien que mon desktop soit sous sid, j'ai évidemment installé mon serveur sous Squeeze, dont la dernière version 6.0.5 vient tout juste de sortir ;
- Nginx est un serveur HTTP que j'utilise directement pour tout le contenu statique du site (images, css, favicon.ico, etc.). Il sert également de proxy à Apache pour le contenu dynamique, pour lequel Nginx est moins adapté.
- Apache est donc là pour servir le contenu dynamique. Il me servira peut-être aussi pour du PHP le jour où je n'aurai plus le choix ;
- mod_wsgi est un module Apache mettant en œuvre la spécification WSGI, qui définit une interface entre des serveurs et des applications web pour Python ;
- Django est un framework web Python, c'est avec lui que j'écris ce blog ;
- Psycopg2 permet l'adaptateur Postgreql pour Python ;
- Postgresql enfin, est le système de gestion de base de données relationnelle et objet qui renferme les données tels que l'article que vous êtes en train de lire.
Ça, c'est tout ce qui vous permet de voir ce site. J'utilise également d'autres logiciels pour mon propre usage du serveur. Je pense évidemment à OpenSSH pour m'y connecter, à git pour versionner mon code, à fabric pour le déployer, etc. Cette architecture est amenée à évoluer au cours du temps, notamment si je rajoute du PHP pour certains logiciels, je pense à owncloud notamment.



