| # ============================================================ | |
| # n8n on Hugging Face Spaces (free tier) — port 7860 | |
| # PostgreSQL via Aiven avec SSL | |
| # ============================================================ | |
| FROM n8nio/n8n:latest | |
| USER root | |
| # Dossier de données n8n + permissions | |
| RUN mkdir -p /home/node/.n8n && \ | |
| chown -R node:node /home/node/.n8n | |
| USER node | |
| # ---------------------------------------------------------- | |
| # RÉSEAU — HF Spaces écoute uniquement sur 7860 | |
| # ---------------------------------------------------------- | |
| ENV PORT=7860 | |
| ENV N8N_PORT=7860 | |
| ENV N8N_HOST=0.0.0.0 | |
| ENV N8N_PROTOCOL=http | |
| # ---------------------------------------------------------- | |
| # BASE DE DONNÉES — PostgreSQL Aiven (SSL obligatoire) | |
| # ---------------------------------------------------------- | |
| ENV DB_TYPE=postgresdb | |
| ENV DB_POSTGRESDB_HOST=n8n-n8n-vox.g.aivencloud.com | |
| ENV DB_POSTGRESDB_PORT=21141 | |
| ENV DB_POSTGRESDB_DATABASE=defaultdb | |
| ENV DB_POSTGRESDB_USER=avnadmin | |
| ENV DB_POSTGRESDB_PASSWORD=AVNS_TAa_OQlklIzZxJbZfH6 | |
| ENV DB_POSTGRESDB_SCHEMA=public | |
| ENV DB_POSTGRESDB_SSL_ENABLED=true | |
| ENV DB_POSTGRESDB_SSL_REJECT_UNAUTHORIZED=false | |
| # ---------------------------------------------------------- | |
| # SÉCURITÉ — clé de chiffrement stable (CHANGE CETTE VALEUR | |
| # par une chaîne aléatoire fixe de 32+ chars, ex: openssl rand -hex 32) | |
| # Sans cette variable, n8n régénère une clé à chaque restart | |
| # et tes credentials stockés deviennent illisibles ! | |
| # ---------------------------------------------------------- | |
| ENV N8N_ENCRYPTION_KEY=remplace_par_une_vraie_cle_aleatoire_32chars | |
| # ---------------------------------------------------------- | |
| # WEBHOOK — Remplace <ton-space> par ton vrai slug HF | |
| # Format: https://<username>-<space-name>.hf.space | |
| # ---------------------------------------------------------- | |
| ENV WEBHOOK_URL=https://mb-idk-n8n.hf.space | |
| # ---------------------------------------------------------- | |
| # COMPORTEMENT n8n | |
| # ---------------------------------------------------------- | |
| # Désactive l'invite de création de compte au premier démarrage | |
| ENV N8N_PERSONALIZATION_ENABLED=false | |
| # Exécution dans le process principal (adapté aux envs contraints) | |
| ENV EXECUTIONS_PROCESS=main | |
| # Logs lisibles | |
| ENV N8N_LOG_LEVEL=info | |
| # Désactive la télémétrie (optionnel) | |
| ENV N8N_DIAGNOSTICS_ENABLED=false | |
| ENV N8N_VERSION_NOTIFICATIONS_ENABLED=false | |
| # ---------------------------------------------------------- | |
| # PORT EXPOSÉ | |
| # ---------------------------------------------------------- | |
| EXPOSE 7860 | |
| # ---------------------------------------------------------- | |
| # ENTRYPOINT — n8n:latest intègre déjà tini + le script | |
| # On ne redéfinit PAS l'ENTRYPOINT pour éviter le conflit. | |
| # Le CMD suffit pour passer les args à /docker-entrypoint.sh | |
| # ---------------------------------------------------------- | |
| CMD ["start"] |