Ultima attività 5 months ago

Contenedor docker + workers, conectando servicio externo de Postgres, Redis y Ollama

supervisx ha revisionato questo gist 5 months ago. Vai alla revisione

1 file changed, 19 insertions

Dockerfile(file creato)

@@ -0,0 +1,19 @@
1 + # n8nio/n8n:latest
2 + FROM n8nio/n8n:latest
3 +
4 + # install Python
5 + USER root
6 + RUN apk add --update \
7 + nano \
8 + tree \
9 + python3 \
10 + py3-pip \
11 + py3-setuptools && \
12 + ln -sf python3 /usr/bin/python
13 +
14 +
15 + # add to path
16 + ENV PATH="/home/node/.local/bin:$PATH"
17 +
18 + USER node
19 + ENV PYTHONUNBUFFERED=1

supervisx ha revisionato questo gist 5 months ago. Vai alla revisione

3 files changed, 160 insertions

compose.yml(file creato)

@@ -0,0 +1,126 @@
1 + name: n8n
2 +
3 + networks:
4 + n8n_network:
5 + name: n8n_network
6 + driver: bridge
7 +
8 + # n8n_global creada manualmente docker network create n8n_global para conectar otros servicios
9 + n8n_global:
10 + external: true
11 +
12 + x-shared-env: &shared-env
13 + DEBUG: "*"
14 + N8N_LOG_LEVEL: ${N8N_LOG_LEVEL}
15 + N8N_LOG_OUTPUT: ${N8N_LOG_OUTPUT}
16 + NODE_ENV: production
17 + N8N_ENCRYPTION_KEY: ${N8N_ENCRYPTION_KEY}
18 + WEBHOOK_URL: ${WEBHOOK_URL}
19 +
20 + DB_TYPE: postgresdb
21 + DB_POSTGRESDB_HOST: ${POSTGRES_HOST}
22 + DB_POSTGRESDB_PORT: ${POSTGRES_PORT}
23 + DB_POSTGRESDB_DATABASE: ${POSTGRES_DB}
24 + DB_POSTGRESDB_USER: ${POSTGRES_USER}
25 + DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD}
26 +
27 + N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS: "true"
28 +
29 + GENERIC_TIMEZONE: America/Caracas
30 + TZ: America/Caracas
31 +
32 + OLLAMA_HOST: ${OLLAMA_HOST}
33 +
34 + N8N_RUNNERS_ENABLED: "true"
35 + N8N_RUNNERS_MAX_CONCURRENCY: "10"
36 + N8N_RUNNERS_MODE: internal
37 +
38 + QUEUE_BULL_REDIS_HOST: ${REDIS_HOST}
39 + #QUEUE_BULL_REDIS_USERNAME: ""
40 + QUEUE_BULL_REDIS_PASSWORD: ${REDIS_PASSWORD}
41 + QUEUE_BULL_REDIS_PORT: ${REDIS_PORT}
42 + QUEUE_BULL_REDIS_TIMEOUT_THRESHOLD: "30000"
43 + QUEUE_HEALTH_CHECK_ACTIVE: "true"
44 + QUEUE_BULL_PREFIX: n8n_
45 +
46 + QUEUE_BULL_REDIS_DB: 1
47 +
48 +
49 + EXECUTIONS_MODE: queue
50 + EXECUTIONS_DATA_MODE: queue
51 +
52 + N8N_ENDPOINTS_WORKFLOW_ENABLED: "true"
53 + EXECUTIONS_DATA_PRUNE: "true"
54 + EXECUTIONS_DATA_MAX_AGE: "96"
55 + EXECUTIONS_DATA_PRUNE_MAX_COUNT: "400"
56 + N8N_FORMDATA_FILE_SIZE_MAX: "200"
57 + N8N_METRICS: "true"
58 + OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS: "true"
59 +
60 + x-shared-vol: &shared-vol
61 + - /var/run/docker.sock:/var/run/docker.sock:ro
62 + - ./data:/home/node/.n8n
63 + - ./local_backups:/home/local_backups:rw
64 + - ./shared/python-scripts:/shared-data/python-scripts
65 +
66 + services:
67 + n8n:
68 + restart: always
69 +
70 + extra_hosts:
71 + - "host.docker.internal:host-gateway"
72 +
73 + ports:
74 + - "5678:5678"
75 +
76 + user: "1000:1000"
77 +
78 + # build with Dockerfile
79 + image: n8n-python
80 + #image: n8nio/n8n:latest
81 +
82 + container_name: n8n
83 + env_file: .env
84 +
85 + volumes: *shared-vol
86 +
87 + environment:
88 + <<: *shared-env
89 + #QUEUE_BULL_REDIS_DB: 1
90 + N8N_PORT: 5678
91 + OFFLOAD_MANUAL_EXECUTIONS_TO_WORKERS: "true"
92 +
93 + networks:
94 + - n8n_network
95 + - n8n_global
96 +
97 +
98 +
99 + n8n-worker:
100 + restart: always
101 +
102 + extra_hosts:
103 + - "host.docker.internal:host-gateway"
104 +
105 + user: "1000:1000"
106 +
107 + # build with Dockerfile
108 + image: n8n-python
109 + #image: n8nio/n8n:latest
110 +
111 + #container_name: n8n-worker
112 + env_file: .env
113 + volumes: *shared-vol
114 + environment:
115 + <<: *shared-env
116 + N8N_WORKER_PROCESS: "true"
117 +
118 + command: worker
119 +
120 + deploy:
121 + mode: replicated
122 + replicas: 4
123 +
124 + networks:
125 + - n8n_network
126 + - n8n_global

n8n_python_update.sh(file creato)

@@ -0,0 +1,11 @@
1 + #!/bin/bash
2 + EXEC_DIR="$(dirname "$0")"
3 + echo "$(pwd)"
4 + echo "Executing -> ${BASH_SOURCE[0]}"
5 + echo -e "\n"
6 + echo "pull n8nio/n8n:latest"
7 + docker pull n8nio/n8n:latest
8 + echo -e "\n"
9 + echo "build -t n8n-python ."
10 + docker build -t n8n-python .
11 + echo -e "\n"

sample.env(file creato)

@@ -0,0 +1,23 @@
1 + N8N_ENCRYPTION_KEY=password_n8n_Encryption_key
2 +
3 + #POSTGRES_HOST=localhost
4 + POSTGRES_HOST=host.docker.internal
5 + POSTGRES_PORT=55432
6 + POSTGRES_DB=n8n
7 + POSTGRES_USER=n8n
8 + POSTGRES_PASSWORD=Password_Para_Postgress
9 +
10 + REDIS_PASSWORD=Password_Para_Redis
11 + REDIS_USERNAME=
12 + REDIS_PORT=56379
13 + REDIS_HOST=host.docker.internal
14 +
15 + N8N_LOG_LEVEL=error
16 + #N8N_LOG_LEVEL=warn
17 + N8N_LOG_OUTPUT=console, file
18 +
19 +
20 + #OLLAMA_HOST=host.docker.internal:12004
21 +
22 + WEBHOOK_URL=https://www.tu-servidor-aqui.com
23 +
Più nuovi Più vecchi