# ============================================================ # 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 par ton vrai slug HF # Format: https://-.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"]