deploy(compose): segreti obbligatori in produzione, senza default (#33)
docker-compose.yml: DB_ROOT_PASSWORD, DB_PASSWORD, SERVER_SECRET_KEY, CLIENT_SECRET_KEY senza default, `config` si rifiuta se mancano. docker-compose.dev.yml resta con i default (sviluppo). .env.example documenta l'obbligo in produzione. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,6 +3,8 @@
|
|||||||
# ===========================
|
# ===========================
|
||||||
|
|
||||||
# --- Database ---
|
# --- Database ---
|
||||||
|
# DB_PASSWORD e DB_ROOT_PASSWORD (sezione Docker sotto): in produzione (docker-compose.yml)
|
||||||
|
# sono obbligatorie, senza default — `docker compose config` si rifiuta se mancano.
|
||||||
DB_HOST=localhost
|
DB_HOST=localhost
|
||||||
DB_PORT=3306
|
DB_PORT=3306
|
||||||
DB_NAME=tiemeasureflow
|
DB_NAME=tiemeasureflow
|
||||||
@@ -10,12 +12,16 @@ DB_USER=tmflow
|
|||||||
DB_PASSWORD=change_me_in_production
|
DB_PASSWORD=change_me_in_production
|
||||||
|
|
||||||
# --- Server ---
|
# --- Server ---
|
||||||
|
# SERVER_SECRET_KEY: in produzione obbligatoria, senza default, e il server rifiuta
|
||||||
|
# di avviarsi se resta uguale al valore committato qui sotto.
|
||||||
SERVER_HOST=0.0.0.0
|
SERVER_HOST=0.0.0.0
|
||||||
SERVER_PORT=8000
|
SERVER_PORT=8000
|
||||||
SERVER_SECRET_KEY=change-this-to-a-random-secret-key
|
SERVER_SECRET_KEY=change-this-to-a-random-secret-key
|
||||||
SERVER_CORS_ORIGINS=http://localhost:5000
|
SERVER_CORS_ORIGINS=http://localhost:5000
|
||||||
|
|
||||||
# --- Client ---
|
# --- Client ---
|
||||||
|
# CLIENT_SECRET_KEY: in produzione obbligatoria, senza default, e il client rifiuta
|
||||||
|
# di avviarsi se resta uguale al valore committato qui sotto.
|
||||||
CLIENT_HOST=0.0.0.0
|
CLIENT_HOST=0.0.0.0
|
||||||
CLIENT_PORT=5000
|
CLIENT_PORT=5000
|
||||||
CLIENT_SECRET_KEY=change-this-to-another-random-secret-key
|
CLIENT_SECRET_KEY=change-this-to-another-random-secret-key
|
||||||
@@ -54,6 +60,7 @@ OPENROUTER_API_KEY= # API key per parsing schede tecniche, vuoto = disabilitato
|
|||||||
OPENROUTER_MODEL=anthropic/claude-sonnet-4 # Modello AI da utilizzare
|
OPENROUTER_MODEL=anthropic/claude-sonnet-4 # Modello AI da utilizzare
|
||||||
|
|
||||||
# --- Docker ---
|
# --- Docker ---
|
||||||
|
# DB_ROOT_PASSWORD: in produzione (docker-compose.yml) obbligatoria, senza default.
|
||||||
DB_ROOT_PASSWORD=root_password_change_me
|
DB_ROOT_PASSWORD=root_password_change_me
|
||||||
NGINX_PORT=80
|
NGINX_PORT=80
|
||||||
NGINX_SSL_PORT=443
|
NGINX_SSL_PORT=443
|
||||||
|
|||||||
+4
-2
@@ -4,10 +4,10 @@ services:
|
|||||||
container_name: tmflow-mysql
|
container_name: tmflow-mysql
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
environment:
|
environment:
|
||||||
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-root_password_change_me}
|
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:?manca DB_ROOT_PASSWORD}
|
||||||
MYSQL_DATABASE: ${DB_NAME:-tiemeasureflow}
|
MYSQL_DATABASE: ${DB_NAME:-tiemeasureflow}
|
||||||
MYSQL_USER: ${DB_USER:-tmflow}
|
MYSQL_USER: ${DB_USER:-tmflow}
|
||||||
MYSQL_PASSWORD: ${DB_PASSWORD:-change_me_in_production}
|
MYSQL_PASSWORD: ${DB_PASSWORD:?manca DB_PASSWORD}
|
||||||
volumes:
|
volumes:
|
||||||
- mysql_data:/var/lib/mysql
|
- mysql_data:/var/lib/mysql
|
||||||
command: >
|
command: >
|
||||||
@@ -34,6 +34,7 @@ services:
|
|||||||
DB_HOST: mysql
|
DB_HOST: mysql
|
||||||
UPLOAD_DIR: uploads
|
UPLOAD_DIR: uploads
|
||||||
VISION_WORKER_URL: http://vision:8100
|
VISION_WORKER_URL: http://vision:8100
|
||||||
|
SERVER_SECRET_KEY: ${SERVER_SECRET_KEY:?manca SERVER_SECRET_KEY}
|
||||||
volumes:
|
volumes:
|
||||||
- upload_data:/app/uploads
|
- upload_data:/app/uploads
|
||||||
depends_on:
|
depends_on:
|
||||||
@@ -78,6 +79,7 @@ services:
|
|||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
API_SERVER_URL: http://server:8000
|
API_SERVER_URL: http://server:8000
|
||||||
|
CLIENT_SECRET_KEY: ${CLIENT_SECRET_KEY:?manca CLIENT_SECRET_KEY}
|
||||||
depends_on:
|
depends_on:
|
||||||
- server
|
- server
|
||||||
labels:
|
labels:
|
||||||
|
|||||||
Reference in New Issue
Block a user