Il y avait deux dépôts d'infrastructure et aucune frontière entre eux. La seule distinction défendable — « documentation » d'un côté, « fichiers de configuration » de l'autre — ne tenait plus : infra avait fini par contenir plus de documentation qu'owni, pendant qu'owni décrivait du concret (IP, bases, comptes). Tout vient donc ici : conf/ (vhosts de référence), dns/ (export de zone), services/ (units systemd), scripts/ (sauvegarde) et docs/ (courrier sortant, certificats, sauvegardes, et le déploiement par service). Dans ce sens plutôt que l'inverse parce qu'« owni » nomme la machine, là où « infra » ne dit pas de quoi il s'agit — et c'est le nom que Cédric emploie spontanément, y compris pour le dossier de secrets. Les renvois croisés entre les deux dépôts deviennent des liens internes : un lien vers un dépôt qu'on s'apprête à archiver aurait pourri en silence. Reste une incohérence, signalée plutôt que corrigée à la hâte : docs/admin.md, static.md, wiki.md, dynamic.md et proxy-calendar.md décrivent le déploiement de sites, pas la machine. Ils ont la même place ici que celle que la messagerie n'avait pas — ils devraient rejoindre leurs dépôts. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SFbwnJurBwTs7x7t93ecku
24 lines
682 B
Desktop File
24 lines
682 B
Desktop File
# Systemd unit pour l'app Flask dynamic.alpinux.org
|
|
# Copier dans /etc/systemd/system/dynamic-alpinux.service
|
|
# puis : sudo systemctl enable --now dynamic-alpinux
|
|
|
|
[Unit]
|
|
Description=Alpinux Dynamic — Quiz interactifs (Flask + Gunicorn)
|
|
After=network.target
|
|
|
|
[Service]
|
|
User=alpinux
|
|
Group=alpinux
|
|
WorkingDirectory=/home/alpinux/dynamic
|
|
EnvironmentFile=/etc/dynamic-alpinux/config.env
|
|
ExecStart=/home/alpinux/dynamic/venv/bin/gunicorn \
|
|
--workers 2 \
|
|
--bind 127.0.0.1:5001 \
|
|
--access-logfile /var/log/dynamic-alpinux/access.log \
|
|
--error-logfile /var/log/dynamic-alpinux/error.log \
|
|
app:app
|
|
Restart=on-failure
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|