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>
21 lines
596 B
Django/Jinja
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
|