在 DigitalOcean 上部署 n8n#
本部署指南将展示如何在 DigitalOcean 云服务器上自托管 n8n。方案采用:
- Caddy(反向代理服务器)实现从互联网访问云服务器,并自动为 n8n 实例创建和管理 SSL/TLS 证书
- Docker Compose 定义应用组件及其协同工作方式
自托管知识前提
自托管 n8n 需要具备以下技术知识:
- 服务器与容器的设置配置
- 应用资源管理与扩展
- 服务器与应用安全防护
- n8n 配置管理
n8n 建议仅专家用户进行 自托管。操作失误可能导致数据丢失、安全漏洞及服务中断。若缺乏服务器管理经验,推荐使用 n8n 云服务。
最新版与预览版
n8n 每周会发布新的次要版本。latest 为生产环境适用版本,next 则是最新发布的预览版本(可能存在不稳定因素,应视为测试版)。问题反馈请至社区论坛。
当前 latest 版本:1.119.2
当前 next 版本:1.119.3
创建云服务器#
服务器资源配置
创建过程中需选择服务方案。对于大多数使用场景,基础共享 CPU 方案即可满足需求。
SSH 密钥与密码认证
DigitalOcean 支持 SSH 密钥与密码两种认证方式,推荐使用安全性更高的 SSH 密钥。
登录服务器并创建新用户#
后续操作需通过 SSH 终端登录云服务器,详见 SSH 连接云服务器指南。
建议创建新用户以避免使用 root 权限操作:
- 以 root 身份登录
- 执行新用户创建操作:
adduser <username>
- 按照命令行界面中的提示完成用户创建。
- 授予新用户管理员权限:
usermod -aG sudo <username>
现在你可以在命令前使用 sudo 来以超级用户权限执行命令。
5. 按照以下步骤为新用户设置 SSH:添加公钥认证。
6. 退出 Droplet 服务器。
7. 以新用户身份通过 SSH 重新登录。
克隆配置仓库#
Docker Compose、n8n 和 Caddy 需要一系列文件夹和配置文件。你可以从此仓库将其克隆到 Droplet 服务器上已登录用户的 home 目录中。后续步骤将说明需要修改的文件及具体更改内容。
使用以下命令克隆仓库:
git clone https://github.com/n8n-io/n8n-docker-caddy.git
并切换到您克隆的代码库根目录:
cd n8n-docker-caddy
默认文件夹与文件#
宿主操作系统(即DigitalOcean Droplet)会将您创建的两个文件夹复制到Docker容器中,使其可供Docker使用。这两个文件夹分别是:
caddy_config:用于存放Caddy配置文件local_files:用于存放通过n8n上传或添加的文件
创建Docker卷#
为实现重启时保留Caddy缓存并加速启动过程,请创建Docker卷供Docker在重启间重复使用:
sudo docker volume create caddy_data
为n8n数据创建一个Docker卷:
sudo docker volume create n8n_data