使用虚拟机部署 n8n:从零开始的 VMware Workstation 安装完整指南
你是否想要让AI接管大量的重复性工作呢,租借云服务器又太贵,那么这篇文章可以帮到你(下面是一个简单的自动抓取网页并推送给Notion的示例)
请注意:本文中提供的命令仅作参考用途,如需本地部署,需结合自身情况
第一步:设置 Ubuntu 虚拟机
首先,我们需要一个 Linux 环境作为基础。我推荐使用 Ubuntu 22.04 LTS,因为它稳定且 Docker 支持良好。你可以用 VMware Workstation 来创建 VM(它是 VMware 的桌面版虚拟化工具,免费版功能已足够)。
-
下载并安装 VMware Workstation:从官网(vmware.com)下载最新版 VMware Workstation Player(免费版)或 Pro 版,安装到你的主机(Windows/Mac/Linux)。Player 版适合入门。
-
下载 Ubuntu ISO:访问 ubuntu.com,下载 Ubuntu 22.04 Desktop 或 Server ISO(Server 版更轻量,适合服务器场景)。
-
创建虚拟机:
- 打开 VMware Workstation,新建 VM(选择“典型”配置)。
- 名称:如 “n8n-VM”;访客 OS:Linux;版本:Ubuntu 64-bit。
- 分配资源:至少 2GB RAM、20GB 硬盘、2 个 CPU 核心。启用 EFI(如果需要)。
- 启动 VM,挂载 ISO 文件,按照向导安装 Ubuntu(设置用户名、密码等)。安装过程中,如果提示,选择“安装 VMware Tools”以优化性能。
-
网络配置:在 VM 设置中,选择“NAT”或“桥接”(Bridged)网络模式,这样 VM 可以像独立机器一样上网(桥接更直接)。安装后,运行
sudo apt update && sudo apt upgrade -y
更新系统。
安装完成后,重启 VM,你就有一个干净的 Ubuntu 环境了。如果你是初学者,建议用 Desktop 版,便于图形界面操作。VMware 的共享文件夹功能也很方便,如果你想从主机传输文件。
第二步:在虚拟机中安装 Docker
Docker 是 n8n 的容器引擎,确保在 Ubuntu 上正确安装才能避免权限或依赖问题。以下是官方推荐的 apt 仓库方式,简单可靠。
-
卸载旧版 Docker(如果有):
sudo apt remove docker docker-engine docker.io containerd runc
-
设置 Docker 仓库:
- 更新 apt 包索引:
sudo apt update
- 安装必要依赖:
sudo apt install ca-certificates curl gnupg lsb-release
- 添加 Docker GPG 密钥:
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
- 设置仓库:
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
- 更新 apt 包索引:
-
安装 Docker:
sudo apt update sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
启动并测试 Docker:
- 启动服务:
这会让 Docker 服务开机自动重启,确保 VM 重启后 Docker 自动启动。sudo systemctl start docker sudo systemctl enable docker
- 添加用户到 docker 组(避免每次 sudo):
然后注销重登录。sudo usermod -aG docker $USER
- 测试:
如果看到 “Hello from Docker!”,就成功了。docker run hello-world
- 启动服务:
第三步:使用 Docker 安装 n8n
n8n 默认用 SQLite 数据库,适合入门。安装前,确保 Docker 已运行。
-
创建持久化数据卷(防止数据丢失):
docker volume create n8n_data
-
运行 n8n 容器:
替换<YOUR_TIMEZONE>
为你的时区(如 Asia/Shanghai),运行以下命令:docker run -d \ --name n8n \ --restart unless-stopped \ -p 5678:5678 \ -e GENERIC_TIMEZONE="<YOUR_TIMEZONE>" \ -e TZ="<YOUR_TIMEZONE>" \ -e N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true \ -e N8N_RUNNERS_ENABLED=true \ -e N8N_SECURE_COOKIE=false \ -v n8n_data:/home/node/.n8n \ docker.n8n.io/n8nio/n8n
- 这里使用
-d
让容器后台运行,--restart unless-stopped
确保 n8n 容器跟着 Docker 服务自动重启(除非手动停止)。 - 添加了
-e N8N_SECURE_COOKIE=false
环境变量,以禁用安全 cookie(适合本地开发环境,避免 HTTPS 相关问题)。 - 这会下载 n8n 镜像、启动容器,并暴露 5678 端口。
- 在浏览器访问
http://localhost:5678
(或 VM IP:5678),设置账号即可进入 n8n 界面。 - 检查容器状态:运行
docker ps
,你会看到 n8n 容器正在运行。
- 这里使用
-
后台运行(生产环境推荐):
以上命令已使用-d
实现后台运行。如果你想用 PostgreSQL 数据库(更适合大规模),添加环境变量如-e DB_TYPE=postgresdb
和数据库连接参数。
注意事项与常见坑
- VMware 共享:如果想从主机访问 n8n,用桥接网络模式。VMware Tools 安装后,性能更流畅。
- 从物理机或其他主机访问 n8n:
- 确保 VM 网络设置为桥接模式(第一步已配置),这样 VM 会获得一个独立的 IP 地址。
- 在创建n8n实例的的时候
-e N8N_SECURE_COOKIE=false
环境变量,以禁用安全 cookie,前面已经完成过了 - 在 VM 中运行
ifconfig
(或ip addr show
),找到 enp0s3 或 eth0 接口下的 inet IPv4 地址(例如 192.168.1.100)。 - 在物理机或其他主机的浏览器中,用
http://<VM的IPv4>:5678
访问(例如 http://192.168.1.100:5678)。这样就能从网络中其他设备访问 n8n 了。记得确保防火墙允许 5678 端口。
- 对于新手,n8n Cloud 是更简单的选择,但自托管能学到 Docker 精髓。