N8N / Dockerfile
MB-IDK's picture
Update Dockerfile
43421ad verified
# ============================================================
# 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"]