Docker 是一个流行的容器化平台,它可以帮助您轻松地部署和运行 n8n。使用 Docker 可以将 n8n 及其依赖项打包到一个独立的容器中,从而简化了安装和管理过程,并提供了良好的隔离性。 前提条件 (Prerequisites): 安装步骤 (Installation Steps): 创建 docker-compose.yml 文件:在您的服务器上选择一个合适的目录,并在该目录下创建一个名为 docker-compose.yml 的文件。将以下内容粘贴到该文件中: YAML
version: '3.8'services: n8n: image: n8nio/n8n restart: always ports: - "5678:5678" volumes: - ~/.n8n:/home/node/.n8n environment: - NODE_ENV=production - N8N_HOST=${N8N_HOST} - N8N_PORT=${N8N_PORT} - N8N_PROTOCOL=${N8N_PROTOCOL} - N8N_ENCRYPTION_KEY=${N8N_ENCRYPTION_KEY} - DB_TYPE=${DATABASE_TYPE} - DB_POSTGRESQL_HOST=${DB_POSTGRESQL_HOST} - DB_POSTGRESQL_PORT=${DB_POSTGRESQL_PORT} - DB_POSTGRESQL_DATABASE=${DB_POSTGRESQL_DATABASE} - DB_POSTGRESQL_USER=${DB_POSTGRESQL_USER} - DB_POSTGRESQL_PASSWORD=${DB_POSTGRESQL_PASSWORD} - DB_MYSQL_HOST=${DB_MYSQL_HOST} - DB_MYSQL_PORT=${DB_MYSQL_PORT} - DB_MYSQL_DATABASE=${DB_MYSQL_DATABASE} - DB_MYSQL_USER=${DB_MYSQL_USER} - DB_MYSQL_PASSWORD=${DB_MYSQL_PASSWORD}
配置环境变量:在与 docker-compose.yml 文件相同的目录下,创建一个名为 .env 的文件,并在其中设置您的 n8n 配置和数据库连接信息。例如(根据您选择的数据库类型进行配置): PostgreSQL 示例 (.env): N8N_HOST=your_n8n_domain.comN8N_PORT=5678N8N_PROTOCOL=http # 如果您在反向代理上处理 SSL,则为 http,否则为 httpsN8N_ENCRYPTION_KEY=YOUR_SECURE_ENCRYPTION_KEYDATABASE_TYPE=postgresDB_POSTGRESQL_HOST=your_postgres_hostDB_POSTGRESQL_PORT=5432DB_POSTGRESQL_DATABASE=n8nDB_POSTGRESQL_USER=n8n_userDB_POSTGRESQL_PASSWORD=your_postgres_password
MySQL 示例 (.env): N8N_HOST=your_n8n_domain.comN8N_PORT=5678N8N_PROTOCOL=http # 如果您在反向代理上处理 SSL,则为 http,否则为 httpsN8N_ENCRYPTION_KEY=YOUR_SECURE_ENCRYPTION_KEYDATABASE_TYPE=mysqlDB_MYSQL_HOST=your_mysql_hostDB_MYSQL_PORT=3306DB_MYSQL_DATABASE=n8nDB_MYSQL_USER=n8n_userDB_MYSQL_PASSWORD=your_mysql_password
请务必将 YOUR_SECURE_ENCRYPTION_KEY 替换为您自己生成的安全密钥。 启动 n8n 容器:打开您的终端或命令提示符,导航到包含 docker-compose.yml 和 .env 文件的目录,并运行以下命令: Bash
docker-compose up -d
这将在后台启动 n8n 容器。
数据持久化: volumes: - ~/.n8n:/home/node/.n8n 这一行配置会将 n8n 容器内的数据目录 (/home/node/.n8n) 挂载到您宿主机上的 ~/.n8n 目录。这意味着您的工作流、凭证和执行历史等数据将被保存在宿主机上,即使容器被删除或重新创建,数据也不会丢失。您可以根据需要修改宿主机上的路径。 注意: - 如果您计划在生产环境中使用 n8n,强烈建议您配置 SSL 证书以启用 HTTPS。这通常需要在您的反向代理服务器(如 Nginx 或 Apache)上进行配置。
- 确保您的服务器防火墙允许访问您在 docker-compose.yml 中映射的端口(默认为 5678)。
|