Deployment
1) Priprav env
cp .env.example .env
Vypln hlavne:
- MySQL pristupy
ENOAI_PASSWORD_PEPPERENOAI_CHECKPOINT
2) Systemd runtime
Soubory:
deploy/systemd/enoa-ai-runtime.servicedeploy/systemd/enoa-ai-autolearn.servicedeploy/systemd/enoa-ai-autolearn.timerdeploy/systemd/enoa-ai-recovery.servicedeploy/systemd/enoa-ai-recovery.timer
Instalace:
sudo cp deploy/systemd/enoa-ai-runtime.service /etc/systemd/system/
sudo cp deploy/systemd/enoa-ai-autolearn.service /etc/systemd/system/
sudo cp deploy/systemd/enoa-ai-autolearn.timer /etc/systemd/system/
sudo cp deploy/systemd/enoa-ai-recovery.service /etc/systemd/system/
sudo cp deploy/systemd/enoa-ai-recovery.timer /etc/systemd/system/
sudo install -m 0755 deploy/scripts/recover-runtime.sh /opt/enoa/ai-runtime/deploy/scripts/recover-runtime.sh
sudo systemctl daemon-reload
sudo systemctl enable --now enoa-ai-runtime.service
sudo systemctl enable --now enoa-ai-autolearn.timer
sudo systemctl enable --now enoa-ai-recovery.timer
Kontrola:
sudo systemctl status enoa-ai-runtime.service --no-pager
sudo systemctl status enoa-ai-autolearn.timer --no-pager
sudo systemctl status enoa-ai-recovery.timer --no-pager
Recovery watchdog vars:
ENOAI_RECOVERY_MAX_FAILS(default 3)ENOAI_RECOVERY_MAX_RESTARTS_PER_HOUR(default 4)ENOAI_RECOVERY_LOG
3) Nginx
Sablony:
deploy/nginx/ai.enoasoft.cz.conf.exampledeploy/nginx/docs.enoasoft.cz-ai.conf.example
Nastav:
- cesty k SSL certifikatům
- PHP-FPM socket dle serveru
- root/alias cesty
Aktivace:
sudo cp deploy/nginx/ai.enoasoft.cz.conf.example /etc/nginx/sites-available/ai.enoasoft.cz.conf
sudo cp deploy/nginx/docs.enoasoft.cz-ai.conf.example /etc/nginx/sites-available/docs.enoasoft.cz-ai.conf
sudo ln -s /etc/nginx/sites-available/ai.enoasoft.cz.conf /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/docs.enoasoft.cz-ai.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
4) Docs host
docs.enoasoft.cz/ai/ predpoklada staticky build docs v:
/opt/enoa/ai-runtime/docs-site/
Minimalne tam musi byt index.html.
5) Monitoring (Prometheus + Grafana)
Soubory:
deploy/monitoring/prometheus.enoa-ai.yml.exampledeploy/monitoring/enoa-ai-alerts.ymldeploy/monitoring/grafana-dashboard-enoa-ai.jsondeploy/monitoring/alertmanager.yml.example
Postup:
1. nastav X-Monitor-Key stejne jako ENOAI_MONITOR_API_KEY
2. pridej scrape config do Promethea
3. nacti alert rules
4. importuj Grafana dashboard JSON
Ops endpointy:
/api/ops/recovery-status