Runtime Operativo¶
Questa nota fissa il setup operativo attuale di SafeOps dopo la separazione tra control-plane e tenant runtime.
Porte e ruoli¶
18080: control-plane SafeOps18081: runtime tenant principale3306: MySQL applicativo (appdb)3309: MySQL super/admin8081: Adminer locale8090: super-adminer bindato su10.50.0.200
Domini e host¶
http://10.50.0.200:18080: control-plane operativohttps://safecondo.nxt-sense.eu/: tenant runtime- host admin/control-plane abilitati in
.env: ids.nxt-sense.eusafeops.nxt-sense.euadmin.safeops.nxt-sense.eu127.0.0.110.50.0.200
Servizi systemd¶
safeops-control-plane.service: Gunicorn su0.0.0.0:18080safeops-web.service: Gunicorn su0.0.0.0:18081
File versionati:
Database¶
SafeOps usa:
DATABASE_URL=mysql+pymysql://appuser:...@127.0.0.1:3306/appdb
Stack MySQL locale:
- path:
/opt/mysql-stack - container DB:
mysql - publish:
0.0.0.0:3306->3306
Comando rapido di ripristino DB:
cd /opt/mysql-stack
docker compose up -d mysql
Verifiche rapide¶
Control-plane:
systemctl status safeops-control-plane.service --no-pager
Tenant runtime:
systemctl status safeops-web.service --no-pager
Database:
docker ps --format '{{.Names}} {{.Status}} {{.Ports}}' | rg '^mysql\\b'
Menu e ruoli¶
Platform Admin: usa il control-planeTenant Admin: usa il runtime tenantTenant User: usa il runtime tenantSuper Admin User: menu speciali solo su control-plane
Riferimenti:
Stato refactor menu¶
Il filtro menu e' stato estratto in moduli dedicati:
Nel bootstrap init.py resta solo l'orchestrazione del context processor e il fallback di sicurezza.