first build nexus

This commit is contained in:
billyshen
2026-03-23 20:57:45 +08:00
parent acb58c5684
commit e312026141
400 changed files with 52448 additions and 0 deletions

View File

@@ -0,0 +1,179 @@
#n8n #docker #workflow
## n8n Docker install
### n8n Docker Compose file
``` bash
cd /home/shenwei/Docker/n8n
```
create **docker-compose.yml** file
``` yaml
version: '3.8'
services:
n8n:
build: .
image: docker.n8n.io/n8nio/n8n
container_name: n8n
ports:
- "5678:5678" # 只绑定到本地,通过 Caddy 访问
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_PROTOCOL=https
- N8N_HOST=n8n.ishenwei.online
- WEBHOOK_URL=https://n8n.ishenwei.online/
- N8N_TRUST_PROXY=true
- N8N_SECURE_COOKIE=true # 建议设为 true因为使用 HTTPS
- N8N_PROXY_HOPS=1
- ALL_PROXY=socks5://172.21.0.1:10808 #配置容器内网络代理
restart: unless-stopped
volumes:
n8n_data:
networks:
n8n_default:
external: true
```
Dockerfile
```
FROM n8nio/n8n:latest
USER root
# 安装 curl 和 wget
RUN apk update && apk add --no-cache curl wget
USER node
```
### Updating Docker Compose
[Doc](https://docs.n8n.io/hosting/installation/docker/#updating-docker-compose "Permanent link")
If you run n8n using a Docker Compose file, follow these steps to update n8n:
``` bash
# Navigate to the directory containing your docker compose file
cd </path/to/your/compose/file/directory>
# Pull latest version
docker compose pull
# Stop and remove older version
docker compose down
# Start the container
docker compose up -d
```
### Config n8n network proxy
#### 1⃣ 前提条件
1. V2Ray/Tuic 已安装在宿主机并正常运行。
2. V2Ray/Tuic 配置中 **本地监听地址改为 `0.0.0.0`**,端口假设为 `10808`
在V2rayN GUI里需要打开如下配置
![[IMG-20251230094029556.png]]
3. Docker 网络 `n8n_default` 已存在(由 docker-compose 自动创建即可)
4. 宿主机防火墙允许 Docker 网桥访问代理端口:
```
sudo ufw allow from 172.18.0.0/16 to any port 10808
```
#### 2⃣ Dockerfile扩展官方 n8n 镜像,安装 curl/wget
创建 `Dockerfile`
``` bash
FROM n8nio/n8n:latest
USER root
# 安装 curl 和 wget
RUN apk update && apk add --no-cache curl wget
USER node
```
- 保持 n8n 默认用户 `node`,安全性高。
- 容器内可以直接使用 `curl`、`wget` 测试代理。
---
#### 3⃣ docker-compose.yml 示例
``` yaml
version: '3.8'
services:
n8n:
build: .
image: docker.n8n.io/n8nio/n8n
container_name: n8n
ports:
- "5678:5678" # 只绑定到本地,通过 Caddy 访问
volumes:
- n8n_data:/home/node/.n8n
environment:
- N8N_PROTOCOL=https
- N8N_HOST=n8n.ishenwei.online
- WEBHOOK_URL=https://n8n.ishenwei.online/
- N8N_TRUST_PROXY=true
- N8N_SECURE_COOKIE=true # 建议设为 true因为使用 HTTPS
- N8N_PROXY_HOPS=1
- ALL_PROXY=socks5://172.21.0.1:10808 #配置容器内网络代理
restart: unless-stopped
volumes:
n8n_data:
networks:
n8n_default:
external: true
```
说明:
- `ALL_PROXY` 指向宿主机 Docker 网桥 IP + Tuic SOCKS5 端口
- 容器内 HTTP/HTTPS 流量和 n8n 请求都会走 SOCKS5
- 端口 5678 映射宿主机,便于访问 n8n UI
> [!注意]
注意:`172.21.0.1` 需替换为以下命令输出的网桥 IPGateway
``` bash
docker network inspect n8n_default
```
---
#### 4⃣ 在容器内测试科学上网
进入容器:
```
docker exec -it n8n /bin/sh
```
测试:
```
# 测试 IP
curl --socks5 172.18.0.1:10808 https://ifconfig.me
# 或者使用全局代理环境变量
curl https://ifconfig.me
wget -qO- https://ifconfig.me
```
如果返回国外 IP说明代理生效。
---
#### 5⃣ 可选优化
- **Dockerfile 内设置环境变量**:可直接在镜像内定义 `ALL_PROXY`,启动容器无需手动设置。
- **安全防护**:宿主机防火墙限制仅 Docker 网桥访问 10808避免局域网被访问。
- **升级 n8n**:定期 rebuild 镜像即可。
## Reference
[[n8n configure telegram trigger|n8n configure telegram trigger]]