Deployment

1) Priprav env


cp .env.example .env

Vypln hlavne:

  • MySQL pristupy
  • ENOAI_PASSWORD_PEPPER
  • ENOAI_CHECKPOINT

2) Systemd runtime

Soubory:

  • deploy/systemd/enoa-ai-runtime.service
  • deploy/systemd/enoa-ai-autolearn.service
  • deploy/systemd/enoa-ai-autolearn.timer
  • deploy/systemd/enoa-ai-recovery.service
  • deploy/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.example
  • deploy/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.example
  • deploy/monitoring/enoa-ai-alerts.yml
  • deploy/monitoring/grafana-dashboard-enoa-ai.json
  • deploy/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