Esta guía explica cómo implementar n8n, una herramienta de automatización de flujo de trabajo extensible, en un host con Dokku. Dokku es una PaaS liviana que simplifica la implementación y administración de aplicaciones mediante Docker.
Requisitos previos
Antes de continuar, asegúrese de tener lo siguiente:
- Un [host Dokku] en funcionamiento (http://dokku.viewdocs.io/dokku/getting-started/installation/).
- El [complemento PostgreSQL] (https://github.com/dokku/dokku-postgres) instalado en Dokku.
- (Opcional) El [complemento Let’s Encrypt] (https://github.com/dokku/dokku-letsencrypt) para certificados SSL.
Instrucciones de configuración
1. Crear la aplicación
Inicia sesión en tu host de Dokku y crea la aplicación n8n:
dokku apps:create n8n
2. Configurar la aplicación
Instalar, crear y vincular el plugin de PostgreSQL
- Instalar el plugin de PostgreSQL:
dokku plugin:install https://github.com/dokku/dokku-postgres.git postgres
- Crear un servicio de PostgreSQL:
dokku postgres:create n8n
- Vincular el servicio de PostgreSQL a la aplicación:
dokku postgres:link n8n n8n
Establecer la clave de cifrado
Generar y configurar una clave de cifrado para n8n:
dokku config:set n8n N8N_ENCRYPTION_KEY=$(echo `openssl rand -base64 45` | tr -d \=+ | cut -c 1-32)
Configurar la URL del webhook
Configure la URL del webhook para su instancia n8n:
dokku config:set n8n WEBHOOK_URL=https://n8n.example.com
3. Configurar el almacenamiento persistente
Para conservar los datos entre reinicios (como nodos de la comunidad, registros, etc.), cree una carpeta en el equipo host y móntela en el contenedor de la aplicación:
dokku storage:ensure-directory n8n --chown false
# chown 1000:1000 /var/lib/dokku/data/storage/n8n
dokku storage:mount n8n /var/lib/dokku/data/storage/n8n:/home/node/.n8n
4. Configurar el dominio y los puertos
Configure el dominio de su aplicación para habilitar el enrutamiento:
dokku domains:set n8n n8n.example.com
Asignar el puerto interno 5678 al puerto externo 80:
# dokku proxy:ports-set n8n http:80:5678
Clonar el repositorio y enviar manualmente
Si prefieres trabajar con el repositorio localmente, puedes clonarlo en tu equipo y enviarlo manualmente a tu servidor Dokku:
- Clonar el repositorio:
# Vía HTTPS
git clone https://github.com/edumag/n8n_on_dokku.git
- Agregar tu servidor Dokku como Git remoto:
git remote add dokku dokku@example.com:n8n
- Enviar la aplicación a tu servidor Dokku:
git push dokku master
Elige el método que mejor se adapte a tu flujo de trabajo.
6. Habilitar SSL (Opcional)
Proteja su aplicación con un certificado SSL de Let’s Encrypt:
- Agregue el puerto HTTPS:
dokku proxy:ports:add n8n https:443:5678
- Instale el plugin de Let’s Encrypt:
dokku plugin:install https://github.com/dokku/dokku-letsencrypt.git
- Configure el correo electrónico de contacto para Let’s Encrypt:
dokku letsencrypt:set n8n email you@example.com
- Habilite Let’s Encrypt para la aplicación:
dokku letsencrypt n8n
Conclusión
¡Felicitaciones! Su instancia n8n ya está en funcionamiento. Puedes acceder a él en https://n8n.example.com.
Para más información sobre n8n, visita la documentación oficial.