- deploy.sh dev|prod with --dry-run, auto-rollback if /health fails
within 60s; checkpoint saved to .last_deploy_rollback before reset
- deploy/rollback.sh last|<sha> with the same Docker compose dance
- deploy/health-check.sh — curl wrapper for monitoring/oncall
- deploy/apache-{dev,prod}.conf — Location blocks proxying /hm-aiqc/
to gunicorn on 127.0.0.1:5050 with X-Script-Name set so wsgi.py's
ReverseProxied middleware emits prefixed URLs
- deploy/.env.{dev,prod}.example — starter envs with Azure SSO config
31 lines
876 B
Text
31 lines
876 B
Text
# HM AI QC — Dev environment starter
|
|
# Copy to /opt/hm-aiqc/.env and fill in real secrets.
|
|
|
|
# Azure AD authentication (shared with AI QC sibling project)
|
|
AZURE_TENANT_ID=e519c2e6-bc6d-4fdf-8d9c-923c2f002385
|
|
AZURE_CLIENT_ID=9079054c-9620-4757-a256-23413042f1ef
|
|
|
|
ENVIRONMENT=development
|
|
|
|
# Box Configuration
|
|
BOX_CONFIG_PATH=config/box_config.json
|
|
BOX_REPORT_FOLDER_ID=133295752718
|
|
BOX_CAMPAIGNS_FOLDER_ID=156182880490
|
|
|
|
# Flask
|
|
FLASK_APP=app:app
|
|
FLASK_ENV=production
|
|
# Generate with: python -c 'import secrets; print(secrets.token_urlsafe(48))'
|
|
SECRET_KEY=replace-me-with-a-long-random-string
|
|
|
|
# Server
|
|
HOST=0.0.0.0
|
|
PORT=5000
|
|
|
|
# Database — absolute path inside the container, mapped to ./database on host
|
|
DATABASE_URI=sqlite:////app/database/qc_platform.db
|
|
|
|
# LLM Provider Keys (NO HARDCODED KEYS — set real values below)
|
|
OPENAI_API_KEY=
|
|
GOOGLE_API_KEY=
|
|
ANTHROPIC_API_KEY=
|