Nasadenie
Overené podľa docker-compose.yml, .env.production.example a deploy-production.ps1 dňa 2026-05-07.
Model nasadenia
GitPulse používa Docker Compose stack:
postgres redis api worker scheduler caddy
Voliteľne (--profile monitoring):
prometheus grafana jaeger
flowchart TB
Internet["Internet"] --> Caddy["Caddy"]
Caddy --> API["FastAPI API"]
Caddy -->|"/docs/"| Docs["MkDocs (nginx)"]
API --> Postgres[("PostgreSQL")]
API --> Redis[("Redis")]
Worker["Worker ×4"] --> Redis
Worker --> Postgres
Scheduler["rq-scheduler"] --> Redis
Prerekvizity
- Docker 24+
- Docker Compose 2.20+
.env.production podľa .env.production.example - GitLab OAuth aplikácia (pre dashboard login)
Povinné konfigurácie
Minimálne nastavte:
DATABASE_URL POSTGRES_PASSWORD REDIS_PASSWORD (validator v APP_ENV=production odmietne naštartovať ak REDIS_URL nemá password segment) SECRET_KEY TEACHER_API_TOKEN GITLAB_OAUTH_CLIENT_ID GITLAB_OAUTH_CLIENT_SECRET GITLAB_API_TOKEN (alebo legacy alias GITLAB_TOKEN) DOMAIN
Rýchly produkčný deploy (PowerShell)
| PowerShell |
|---|
| cp .env.production.example .env.production
# vyplňte hodnoty
.\deploy-production.ps1 -Build -Migrate
|
S monitoring profilom:
| PowerShell |
|---|
| .\deploy-production.ps1 -Monitoring
|
1. Migrácie
| Bash |
|---|
| docker compose --env-file .env.production --profile migrate run --rm migrate
|
2. Spustenie stacku
| Bash |
|---|
| docker compose --env-file .env.production up -d
|
3. Monitoring (voliteľne)
| Bash |
|---|
| docker compose --env-file .env.production --profile monitoring up -d
|
Overenie po deployi
| Bash |
|---|
| curl http://localhost:8000/health
curl http://localhost:8000/health/ready
curl http://localhost:8000/metrics
|
UI endpointy:
- dashboard:
http://localhost/dashboard/ - docs (produkcia, cez Caddy):
http://localhost/docs/ - docs (fallback, cez FastAPI):
http://localhost:8000/project-docs/
Prevádzkové porty
| Služba | Port |
| Caddy HTTP/HTTPS | 80, 443 |
| API (lokálne bind) | 127.0.0.1:8000 |
| PostgreSQL | 127.0.0.1:5433 |
| Redis | 127.0.0.1:6379 |
| Grafana (profil monitoring) | 127.0.0.1:3000 |
| Prometheus (profil monitoring) | 127.0.0.1:9090 |
| Jaeger (profil monitoring) | 127.0.0.1:16686 |
Rollback
| Bash |
|---|
| docker compose --env-file .env.production down
# alebo s monitoring profilom
# docker compose --env-file .env.production --profile monitoring down
|
Súvisiace dokumenty