init
This commit is contained in:
35
Dockerfile
Normal file
35
Dockerfile
Normal file
@@ -0,0 +1,35 @@
|
||||
FROM alpine:3.19 AS base
|
||||
|
||||
# Аргументы для настройки
|
||||
ARG N8N_VERSION=latest
|
||||
ARG SOCKS_IP=192.168.31.240
|
||||
|
||||
# Установка зависимостей и n8n в одном слое
|
||||
RUN apk add --no-cache \
|
||||
ffmpeg \
|
||||
curl \
|
||||
wget \
|
||||
iptables \
|
||||
redsocks \
|
||||
gnupg \
|
||||
netcat-openbsd \
|
||||
nodejs \
|
||||
npm \
|
||||
&& npm install -g n8n@${N8N_VERSION}
|
||||
&& rm -rf /var/cache/apk/*
|
||||
|
||||
# Создание пользователя и домашней директории
|
||||
RUN adduser -D -s /bin/sh node && mkdir -p /home/node/.n8n
|
||||
|
||||
# Копирование скрипта и установка прав
|
||||
COPY start-n8n.sh /start.sh
|
||||
RUN chmod +x /start.sh
|
||||
|
||||
# Настройка redsocks.conf с использованием аргумента
|
||||
RUN echo "base { log_debug = off; log_info = on; log = stderr; daemon = off; redirector = iptables; } redsocks { local_ip = 127.0.0.1; local_port = 12345; ip = ${SOCKS_IP}; port = 1080; type = socks5; }" > /etc/redsocks.conf
|
||||
|
||||
USER node
|
||||
WORKDIR /home/node
|
||||
EXPOSE 5678
|
||||
|
||||
ENTRYPOINT ["/start.sh"]
|
||||
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
@@ -0,0 +1,30 @@
|
||||
services:
|
||||
n8n:
|
||||
build:
|
||||
context: .
|
||||
args:
|
||||
- SOCKS_IP=192.168.31.240
|
||||
container_name: n8n
|
||||
environment:
|
||||
- GENERIC_TIMEZONE=Europe/Amsterdam
|
||||
- NODE_ENV=production
|
||||
- N8N_SECURE_COOKIE=false
|
||||
- N8N_TRUST_PROXY=true
|
||||
# - N8N_HOST=n8n.home
|
||||
- N8N_PORT=5678
|
||||
- N8N_PROTOCOL=http
|
||||
- WEBHOOK_URL=https://n8n.home/
|
||||
- N8N_DIAGNOSTICS_ENABLED=false
|
||||
- N8N_TELEMETRY_DISABLED=true
|
||||
- NODE_FUNCTION_ALLOW_EXTERNAL=*
|
||||
ports:
|
||||
- 5678:5678
|
||||
volumes:
|
||||
- n8n_data:/home/node/.n8n
|
||||
- /srv/downloads:/music
|
||||
restart: unless-stopped
|
||||
network_mode: "host"
|
||||
|
||||
volumes:
|
||||
n8n_data:
|
||||
name: n8n_data
|
||||
23
start-n8n.sh
Normal file
23
start-n8n.sh
Normal file
@@ -0,0 +1,23 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Wait for SOCKS proxy to be ready
|
||||
echo "Waiting for SOCKS proxy..."
|
||||
until nc -z socks 1080; do
|
||||
echo "SOCKS proxy not ready yet, waiting..."
|
||||
sleep 5
|
||||
done
|
||||
echo "SOCKS proxy is ready!"
|
||||
|
||||
# Start redsocks
|
||||
redsocks -c /etc/redsocks.conf &
|
||||
sleep 2
|
||||
|
||||
# Set up iptables rules (run as root)
|
||||
iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 -j RETURN 2>/dev/null || true
|
||||
iptables -t nat -A OUTPUT -p tcp -d 192.168.0.0/16 -j RETURN 2>/dev/null || true
|
||||
iptables -t nat -A OUTPUT -p tcp -d 10.0.0.0/8 -j RETURN 2>/dev/null || true
|
||||
iptables -t nat -A OUTPUT -p tcp -d 172.16.0.0/12 -j RETURN 2>/dev/null || true
|
||||
iptables -t nat -A OUTPUT -p tcp -j REDIRECT --to-ports 12345 2>/dev/null || true
|
||||
|
||||
# Start n8n
|
||||
exec su -c "n8n start" node
|
||||
Reference in New Issue
Block a user