- Multi-stage Dockerfile (builder+runner, <500MB target) - docker-compose.yml: app(x4) + postgres + redis + prometheus + grafana + nginx - .env.example with all required secrets (never hardcoded) - requirements.txt with all dependencies including prometheus-client, alembic - GitHub Actions CI: lint (flake8+bandit+safety) + tests + Docker build/push - GitHub Actions CD: staging deploy -> smoke tests -> production deploy + rollback - Alembic migration setup + initial PostgreSQL schema (001_initial_schema) - SQLite→PostgreSQL data migration script - Prometheus metrics module (HTTP, ML, DB, business metrics) - Prometheus alert rules (5xx >1%, latency >2s, disk >80%, ML accuracy) - Grafana dashboard (overview: req/s, p95, ML accuracy, error rate) - Nginx reverse proxy config (HTTPS/TLS, rate limiting, security headers) - Structured JSON logging module - Automated daily DB backup script (pg_dump + 30-day retention) Branch: feature/devops-cicd Co-Authored-By: Paperclip <noreply@paperclip.ing>
34 lines
447 B
Plaintext
34 lines
447 B
Plaintext
# Core web framework
|
|
Flask==3.1.3
|
|
flask-cors==6.0.2
|
|
gunicorn==23.0.0
|
|
|
|
# HTTP client
|
|
requests==2.32.3
|
|
|
|
# Data processing & ML
|
|
pandas==3.0.1
|
|
numpy==2.4.3
|
|
scikit-learn==1.6.1
|
|
xgboost==3.2.0
|
|
|
|
# Database - PostgreSQL
|
|
psycopg2-binary==2.9.12
|
|
SQLAlchemy==2.0.40
|
|
alembic==1.16.1
|
|
|
|
# Scheduling
|
|
schedule==1.2.2
|
|
|
|
# Monitoring
|
|
prometheus-client==0.21.1
|
|
|
|
# Logging
|
|
python-json-logger==3.3.0
|
|
|
|
# Security
|
|
python-dotenv==1.1.0
|
|
|
|
# Utilities
|
|
python-dateutil==2.9.0
|