Docker/Compose/N8N
N8N » Volume
|
N8N » Volume | |
|---|---|
ssh -qt -i ~/.ssh/cid.chorke.org_ed25519 chorke@linode-aa.public.ip bash
cat <<'EXE'| sudo bash
mkdir -p /{etc,var}/n8n.shahed.biz/
mkdir -p /etc/n8n.shahed.biz/caddy/
mkdir -p /var/n8n.shahed.biz/{n8n,postgres,caddy/{conf,data,files}}
chown -R 1000:1000 /var/n8n.shahed.biz/{n8n,caddy,postgres}/
EXE
|
|
N8N » Secret
|
N8N » Secret | |
|---|---|
makepasswd --chars 16 --count 5 --crypt-md5
:'
gLn5tbVIdzY0K3AJ $1$vUMUSy9W$XdzoyzZ/8pYghRbGWSeIg0
yx9SrGc7vsyvbnQU $1$3A7k24lk$.8tqpJaYeJzyy8PZqzp3h0
ypBAMGHp1j8QJKU7 $1$P.ugq.Lv$roVoXJR1dFZ0e.GxjfjiF1
LCMnxYWVWgJ0AVA1 $1$dPoj6SuY$AEJMcY96R11tb4WP1njdk.
26IThiQhPxQSSed1 $1$3FHdqT0J$sm0ZxPCKBwKj2jaZsU1t.1
'
|
|
N8N » Caddyfile
|
N8N » Caddyfile | |
|---|---|
cat <<'INI' | sudo tee /etc/n8n.shahed.biz/caddy/Caddyfile >/dev/null
n8n.shahed.biz {
reverse_proxy n8n:5678 {
flush_interval -1
}
}
INI
|
|
|
|
N8N » Environment
|
N8N » Environment | |
|---|---|
cat <<'ENV' | sudo tee /etc/n8n.shahed.biz/.env >/dev/null
N8N_DB_PASSWORD=gLn5tbVIdzY0K3AJ
N8N_DB_USER=shahed_n8n
N8N_DB_NAME=shahed_n8n
N8N_FQDN=n8n.shahed.biz
N8N_RUNNERS_ENABLED=true
N8N_TIMEZONE=Asia/Kuala_Lumpur
N8N_CONF_DIR=/etc/n8n.shahed.biz/
N8N_DATA_DIR=/var/n8n.shahed.biz/
N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
ENV
sudo chmod 600 /etc/n8n.shahed.biz/.env
|
|
N8N » Docker » Compose
|
N8N » Docker » Compose | |
|---|---|
cat <<'YML' | sudo tee /etc/n8n.shahed.biz/docker-compose.yml >/dev/null
---
services:
caddy:
image: caddy:latest
restart: unless-stopped
ports:
- 80:80
- 443:443
expose:
- 80
- 443
volumes:
- caddy_file:/etc/caddy/Caddyfile
- caddy_files_dir:/files
- caddy_data_dir:/data
- caddy_conf_dir:/conf
postgres:
image: postgres:15
container_name: n8n_postgres
restart: unless-stopped
environment:
- POSTGRES_PASSWORD=${N8N_DB_PASSWORD}
- POSTGRES_USER=${N8N_DB_USER}
- POSTGRES_DB=${N8N_DB_NAME}
volumes:
- pgsql_data_dir:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U n8n"]
interval: 10s
timeout: 5s
retries: 5
n8n:
image: docker.n8n.io/n8nio/n8n
restart: always
ports:
- 127.0.0.1:5678:5678
environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_USER=${N8N_DB_USER}
- DB_POSTGRESDB_DATABASE=${N8N_DB_NAME}
- DB_POSTGRESDB_PASSWORD=${N8N_DB_PASSWORD}
- N8N_PORT=5678
- N8N_HOST=${N8N_FQDN}
- N8N_RUNNERS_ENABLED=${N8N_RUNNERS_ENABLED}
- N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=${N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS}
- GENERIC_TIMEZONE=${N8N_TIMEZONE}
- WEBHOOK_URL=https://${N8N_FQDN}/
- NODE_ENV=production
volumes:
- n8n_data_dir:/home/node/.n8n
- caddy_files_dir:/files
volumes:
n8n_data_dir:
driver: local
driver_opts:
device: ${N8N_DATA_DIR}/n8n/
type: none
o: bind
pgsql_data_dir:
driver: local
driver_opts:
device: ${N8N_DATA_DIR}/postgres/
type: none
o: bind
caddy_conf_dir:
driver: local
driver_opts:
device: ${N8N_DATA_DIR}/caddy/conf/
type: none
o: bind
caddy_data_dir:
driver: local
driver_opts:
device: ${N8N_DATA_DIR}/caddy/data/
type: none
o: bind
caddy_files_dir:
driver: local
driver_opts:
device: ${N8N_DATA_DIR}/caddy/files/
type: none
o: bind
caddy_file:
driver: local
driver_opts:
device: ${N8N_CONF_DIR}/caddy/Caddyfile
type: none
o: bind
networks:
n8n:
external: false
YML
|
|
N8N » Docker » Manage
|
N8N » Docker » Compose » Manage | |
|---|---|
ssh -qt -i ~/.ssh/cid.chorke.org_ed25519 chorke@linode-aa.public.ip bash
sudo su
systemctl disable --now nginx
cd /etc/n8n.shahed.biz/
systemctl status nginx
docker compose down
docker compose up -d
docker compose logs -ft
xdg-open https://www.cdn77.com/tls-test/result?domain=n8n.shahed.biz
xdg-open https://n8n.shahed.biz
|
|
N8N » Console » Login
|
N8N » Console » Login | |
|---|---|
---
Page: https://n8n.shahed.biz
user: tool.tech@chorke.org
pass: ypBAMGHp1j8QJKU7
|
|
References
|
References | ||
|---|---|---|