# ============================================================================= # TerManager2 — configurazione # # Questo file e' l'UNICA fonte di configurazione: docker-compose.yml lo legge # cosi' com'e' e non ridichiara nulla. # # In locale: cp .env.example .env e modifica quello che serve # Su Dokploy: incolla queste variabili in Environment, il .env lo # genera lui # # Le variabili marcate [OBBLIGATORIA] non hanno default: lo stack si rifiuta # di partire senza. # ============================================================================= # ----------------------------------------------------------------------------- # Applicazione # ----------------------------------------------------------------------------- APP_NAME=TerManager2 APP_ENV=production APP_DEBUG=false APP_TIMEZONE=Europe/Rome # [OBBLIGATORIA] Deve combaciare ESATTAMENTE col dominio servito, schema # incluso. L'app rifiuta richieste con un Host diverso (protezione contro # l'host header injection): un valore sbagliato da' 400 su tutto. # In locale: http://localhost:8080 APP_URL=https://territori.example.org # [OBBLIGATORIA] Genera con: echo "base64:$(openssl rand -base64 32)" # I dati personali dei proclamatori sono cifrati con questa chiave: se la # perdi non sono piu' leggibili nemmeno avendo il backup del database. # Conservala in un password manager. APP_KEY= LOG_CHANNEL=stderr LOG_LEVEL=warning # ----------------------------------------------------------------------------- # Primo avvio # ----------------------------------------------------------------------------- # L'amministratore creato al primo deploy. Cambia la password dopo il login. INITIAL_ADMIN_NAME=Amministratore INITIAL_ADMIN_EMAIL= INITIAL_ADMIN_PASSWORD= # Lasciale cosi': esistono come via di fuga se qualcosa va storto. RUN_MIGRATIONS=true RUN_DB_SEED_ON_FIRST_START=true ENSURE_INITIAL_ADMIN_ON_EMPTY_DB=true # ----------------------------------------------------------------------------- # Database # ----------------------------------------------------------------------------- # DB_HOST deve restare "mariadb": e' il nome del servizio in # docker-compose.yml, non un indirizzo di rete. DB_CONNECTION=mysql DB_HOST=mariadb DB_PORT=3306 DB_DATABASE=termanager2 DB_USERNAME=termanager2 # [OBBLIGATORIE] Genera con: openssl rand -base64 24 DB_PASSWORD= DB_ROOT_PASSWORD= # ----------------------------------------------------------------------------- # Redis — cache, sessioni, code # ----------------------------------------------------------------------------- # Come sopra: "redis" e' il nome del servizio, non va cambiato. REDIS_HOST=redis REDIS_PORT=6379 # [OBBLIGATORIA] openssl rand -base64 24 REDIS_PASSWORD= CACHE_STORE=redis SESSION_DRIVER=redis QUEUE_CONNECTION=redis # true in produzione (HTTPS), false se accedi in HTTP su localhost. SESSION_SECURE_COOKIE=true # ----------------------------------------------------------------------------- # Posta # ----------------------------------------------------------------------------- # In produzione: SMTP esterno. # In locale con --profile dev: MAIL_HOST=mailpit, MAIL_PORT=1025 # Per disattivare del tutto l'invio: MAIL_MAILER=log MAIL_MAILER=smtp MAIL_HOST= MAIL_PORT=587 MAIL_USERNAME= MAIL_PASSWORD= MAIL_SCHEME=tls MAIL_FROM_ADDRESS=noreply@example.org MAIL_FROM_NAME="${APP_NAME}" # ----------------------------------------------------------------------------- # Porte # ----------------------------------------------------------------------------- # Di default l'app ascolta solo su localhost. In produzione va bene cosi': il # traffico arriva da Traefik sulla rete interna, non da questa porta. # Per esporla davvero (server senza reverse proxy): APP_PORT=0.0.0.0:8080 APP_PORT=127.0.0.1:8080 MAILPIT_UI_PORT=127.0.0.1:8025