DOC
Accueil/ Projets/ VPS Hostinger - Stack ENGWE/ 10 - Variables d'environnement par service (où trouver quoi)

10 - Variables d'environnement par service (où trouver quoi)

Sur ton setup Coolify, les variables ne vivent pas dans un fichier .env posé sur le serveur : chaque ressource a un onglet Environment Variables dans l'interface Coolify. Tu y colles les paires CLE=valeur ci-dessous. Les valeurs marquées « secret » sont chiffrées et masquées par Coolify.

📌 Beaucoup de secrets (mots de passe Postgres/Mongo, clés) sont générés automatiquement par Coolify quand tu ajoutes la ressource depuis le catalogue. Dans ce cas tu n'as rien à inventer : tu les retrouves dans l'onglet Environment Variables de la ressource. Les blocs ci-dessous servent (a) à comprendre à quoi sert chaque variable, (b) à savoir où obtenir celles qui viennent de l'extérieur (OpenRouter, Anthropic…).

Générer un secret fort quand il faut en créer un :

openssl rand -base64 32

Repères communs

# Domaine racine (sert à construire les sous-domaines *-it)
DOMAIN=engwe-france.fr
# Email Let's Encrypt / contact
ACME_EMAIL=seerassiakoley03@gmail.com
GENERIC_TIMEZONE=Europe/Paris

PostgreSQL

POSTGRES_USER=engwe_admin
POSTGRES_PASSWORD=<secret>          # généré par Coolify - à récupérer, pas à inventer
POSTGRES_DB=postgres                # base par défaut
  • Où trouver : onglet Environment Variables de la ressource PostgreSQL dans Coolify (Coolify le génère à la création).
  • Bases additionnelles déjà créées dedans : n8n, nocodb (voir la mémoire projet). Tu peux en créer d'autres pour tes apps.
  • Fiche mot de passe existante : docs/fiches/mot de passe postgresql.png.

MongoDB

MONGO_INITDB_ROOT_USERNAME=engwe_admin
MONGO_INITDB_ROOT_PASSWORD=<secret>   # généré par Coolify - à récupérer
  • Où trouver : Environment Variables de la ressource MongoDB dans Coolify.

Mongo Express (UI MongoDB - mongo-it.engwe-france.fr)

# Connexion à la base
ME_CONFIG_MONGODB_ADMINUSERNAME=engwe_admin        # = user Mongo ci-dessus
ME_CONFIG_MONGODB_ADMINPASSWORD=<secret>           # = password Mongo ci-dessus
ME_CONFIG_MONGODB_URL=mongodb://engwe_admin:<password>@mongo:27017/
ME_CONFIG_MONGODB_ENABLE_ADMIN=true
# Auth basique de l'UI (2e barrière en plus du HTTPS) - À TOI de la définir
ME_CONFIG_BASICAUTH=true
ME_CONFIG_BASICAUTH_USERNAME=admin
ME_CONFIG_BASICAUTH_PASSWORD=<secret à choisir>
  • mongo dans l'URL = nom de service interne de MongoDB. ⚠️ Ne marche que si Mongo Express est sur le même réseau Docker que MongoDB (chez toi c'était déjà le cas - voir la mémoire sur l'isolation réseau).
  • ME_CONFIG_BASICAUTH_* : à inventer toi-même (login/mot de passe de la page). openssl rand -base64 24 pour le mot de passe.

n8n (n8n-it.engwe-france.fr)

# Base PostgreSQL partagée
DB_TYPE=postgresdb
DB_POSTGRESDB_HOST=postgres            # nom de service interne de Postgres
DB_POSTGRESDB_PORT=5432
DB_POSTGRESDB_DATABASE=n8n
DB_POSTGRESDB_USER=engwe_admin         # = POSTGRES_USER
DB_POSTGRESDB_PASSWORD=<password Postgres>
# Accès web (HTTPS derrière le proxy)
N8N_HOST=n8n-it.engwe-france.fr
N8N_PORT=5678
N8N_PROTOCOL=https
WEBHOOK_URL=https://n8n-it.engwe-france.fr/
N8N_EDITOR_BASE_URL=https://n8n-it.engwe-france.fr/
N8N_PROXY_HOPS=1
# Sécurité - NE JAMAIS perdre ni changer cette clé après création de credentials
N8N_ENCRYPTION_KEY=<secret>            # généré par Coolify, ou openssl rand -base64 32
GENERIC_TIMEZONE=Europe/Paris
N8N_RUNNERS_ENABLED=true
  • N8N_ENCRYPTION_KEY : chiffre les identifiants stockés dans n8n. Si tu la perds ou la modifies, tous tes credentials n8n deviennent illisibles. Sauvegarde-la précieusement.

NocoDB (data-it.engwe-france.fr)

# Métadonnées NocoDB stockées dans PostgreSQL (base `nocodb`)
NC_DB=pg://postgres:5432?u=engwe_admin&p=<password Postgres>&d=nocodb
NC_AUTH_JWT_SECRET=<secret>            # signe les tokens - openssl rand -base64 32
NC_PUBLIC_URL=https://data-it.engwe-france.fr
NC_DISABLE_TELE=true
  • NC_AUTH_JWT_SECRET : à générer ; ne pas changer après coup (déconnecte tous les utilisateurs).

Open WebUI (chat-it.engwe-france.fr) - pas encore déployé

# Deux connexions compatibles OpenAI séparées par ";" (même ordre) :
#  1) OpenRouter (Claude + des centaines de modèles)   2) LiteLLM (Claude direct)
OPENAI_API_BASE_URLS=https://openrouter.ai/api/v1;http://litellm:4000/v1
OPENAI_API_KEYS=<OPENROUTER_API_KEY>;<LITELLM_MASTER_KEY>
WEBUI_SECRET_KEY=<secret>             # sessions - openssl rand -base64 32
ENABLE_OLLAMA_API=false               # pas de modèle local
WEBUI_URL=https://chat-it.engwe-france.fr

LiteLLM (passerelle Claude direct) - pas encore déployé

LITELLM_MASTER_KEY=<secret à choisir>   # clé interne Open WebUI ↔ LiteLLM - openssl rand -base64 24
ANTHROPIC_API_KEY=sk-ant-...            # clé Anthropic (voir ci-dessous)
OPENROUTER_API_KEY=sk-or-v1-...         # optionnel : router aussi OpenRouter via LiteLLM

Clés externes : où les obtenir

Variable Où la créer Format
OPENROUTER_API_KEY https://openrouter.ai/keys sk-or-v1-…
ANTHROPIC_API_KEY https://console.anthropic.com/ sk-ant-…
LITELLM_MASTER_KEY tu la choisis (openssl rand -base64 24) libre

Uptime Kuma

Aucune variable d'environnement obligatoire : la config (compte admin, sondes, notifications) se fait dans l'interface web au premier lancement, et est stockée dans son fichier SQLite (volume Docker). Voir docs/09-uptime-kuma.md.


Rappels sécurité

  • Un secret ne se met jamais dans le code ni dans un dépôt Git - seulement dans l'onglet Environment Variables de Coolify.
  • Le modèle historique tout-en-un (parcours Docker Compose) reste dans docker/.env.example pour référence.
  • Si un secret a pu fuiter : régénère-le et redéploie la ressource concernée.