Set-OPS-Public/roles/web_dorsal/templates/app.service.j2
Daniel Allaire eee7dbd108 web_dorsal : rôle webapps dynamiques (2e brique plateforme, 100% natif)
Runtime (venv/paquets) + service systemd + nginx local, derrière l'edge, ZÉRO
conteneur. Chaque app : git clone (depth 1) → venv + pip → unité systemd durcie
(app en localhost, user webapp, NoNewPrivileges/PrivateTmp) → vhost nginx local
qui la fronte. data_dir persistant pour l'état local (SQLite) ; BD réseau via
resoudre_base sinon.

Éprouvé bout-en-bout sur web-frontal-01 par le rôle : monregistraire (FastAPI+
uvicorn+SQLite) cloné de Forgejo, servi via l'edge en HTTPS step-ca, API OK.
Avec web_frontal, la plateforme webapp native est complète. lint production: 0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 18:37:47 -04:00

21 lines
596 B
Django/Jinja

# Webapp {{ item.nom }} — unite generee par Set-OPS (role web_dorsal). Ne pas editer.
[Unit]
Description=Webapp {{ item.nom }} ({{ item.server_name }})
After=network.target
[Service]
Type=simple
User={{ web_dorsal_utilisateur }}
Group={{ web_dorsal_utilisateur }}
WorkingDirectory={{ web_dorsal_racine }}/{{ item.nom }}
{% for k, v in (item.env | default({}) | dictsort) %}
Environment="{{ k }}={{ v }}"
{% endfor %}
ExecStart={{ web_dorsal_racine }}/{{ item.nom }}/{{ item.commande }}
Restart=on-failure
RestartSec=3
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target