first sync
Some checks are pending
Deployment Verification / deploy-and-test (push) Waiting to run

This commit is contained in:
Hubert Cornet 2025-02-11 20:35:24 +01:00
parent fb74a44c79
commit 7a83f6a12a
3 changed files with 83 additions and 22 deletions

7
.env
View File

@ -1 +1,6 @@
# Template # Postgre Variables
POSTGRES_IMAGE_TAG=postgres:15.6-alpine
POSTGRE_DB_NAME=n8n_db
POSTGRE_DB_USER=n8n_user
POSTGRE_DB_PASSWORD=P@ssword!Here!123456
POSTGRE_DB_DATA=/var/lib/postgresql/data/n8n

View File

@ -2,41 +2,84 @@
networks: networks:
traefik_front_network: traefik_front_network:
external: true external: true
back_network_: back_network_n8n:
driver: bridge driver: bridge
attachable: true attachable: true
#### SERVICES #### SERVICES
services: services:
### hello_world ### n8n
hello_world: n8n:
container_name: gitea-app container_name: n8n-app
hostname: gitea-app hostname: n8n-app
image: hello-world image: docker.n8n.io/n8nio/n8n:latest
environment: environment:
- DB_TYPE=postgresdb
- DB_POSTGRESDB_HOST=postgres
- DB_POSTGRESDB_PORT=5432
- DB_POSTGRESDB_DATABASE=${POSTGRE_DB_NAME}
- DB_POSTGRESDB_USER=${POSTGRE_DB_USER}
- DB_POSTGRESDB_PASSWORD=${POSTGRE_DB_PASSWORD}
- N8N_HOST=tips-of-mine.com
- N8N_PORT=5678
- N8N_PROTOCOL=http
- NODE_ENV=production
- WEBHOOK_URL=https://n8n.tips-of-mine.com/
- "TZ=Europe/Paris"
restart: always restart: always
networks: networks:
# - back_network_gitea - back_network_n8n
- traefik_front_network - traefik_front_network
volumes: volumes:
- n8n:/home/node/.n8n
depends_on:
postgres:
condition: service_healthy
labels: labels:
- "com.centurylinklabs.watchtower.enable=true"
- "traefik.enable=true" - "traefik.enable=true"
- "traefik.docker.network=traefik_front_network" - "traefik.docker.network=traefik_front_network"
# HTTP # HTTP
- "traefik.http.routers.hello-world-http.rule=Host(`hello-world.tips-of-mine.com`)" - "traefik.http.routers.n8n-http.rule=Host(`n8n.tips-of-mine.com`)"
- "traefik.http.routers.hello-world-http.entrypoints=http" - "traefik.http.routers.n8n-http.entrypoints=http"
- "traefik.http.routers.hello-world-http.priority=49" - "traefik.http.routers.n8n-http.priority=49"
# HTTPS # HTTPS
- "traefik.http.routers.hello-world-https.rule=Host(`hello-world.tips-of-mine.com`)" - "traefik.http.routers.n8n-https.rule=Host(`n8n.tips-of-mine.com`)"
- "traefik.http.routers.hello-world-https.entrypoints=https" - "traefik.http.routers.n8n-https.entrypoints=https"
- "traefik.http.routers.hello-world-https.tls=true" - "traefik.http.routers.n8n-https.tls=true"
- "traefik.http.routers.hello-world-https.priority=50" - "traefik.http.routers.n8n-https.priority=50"
- "traefik.http.routers.gitea.service=gitea-https-service" - "traefik.http.routers.n8n.service=n8n-https-service"
# Middleware # Middleware
# Service # Service
# - "traefik.http.services.gitea-https-service.loadbalancer.server.port=3000" - "traefik.http.services.n8n-https-service.loadbalancer.server.port=5678"
# - "traefik.http.services.gitea-https-service.loadbalancer.server.scheme=https" # - "traefik.http.services.n8n-https-service.loadbalancer.server.scheme=https"
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.hostname=gitea.traefik.me" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.hostname=n8n.tips-of-mine.com"
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.method=foobar" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.method=foobar"
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.timeout=10" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.timeout=10"
# - "traefik.http.services.gitea-https-service.loadbalancer.healthcheck.interval=30" # - "traefik.http.services.n8n-https-service.loadbalancer.healthcheck.interval=30"
### postgres
postgres:
container_name: n8n-postgres
hostname: n8n-postgres
image: ${POSTGRES_IMAGE_TAG}
environment:
PGDATA: ${POSTGRE_DB_DATA}
POSTGRES_DB: ${POSTGRE_DB_NAME}
POSTGRES_PASSWORD: ${POSTGRE_DB_PASSWORD}
POSTGRES_USER: ${POSTGRE_DB_USER}
TZ: Europe/Paris
restart: unless-stopped
networks:
- back_network_n8n
volumes:
- ./data:/var/lib/postgresql/data:rw
- ./init-data.sh:/docker-entrypoint-initdb.d/init-data.sh
healthcheck:
test: [ "CMD", "pg_isready", "-q", "-d", "${POSTGRE_DB_NAME}", "-U", "${POSTGRE_DB_USER}" ]
interval: 10s
timeout: 5s
retries: 3
start_period: 60s
labels:
- "com.centurylinklabs.watchtower.enable=true"

13
init-data.sh Normal file
View File

@ -0,0 +1,13 @@
#!/bin/bash
set -e;
if [ -n "${POSTGRE_DB_PASSWORD:-}" ] && [ -n "${POSTGRE_DB_PASSWORD:-}" ]; then
psql -v ON_ERROR_STOP=1 --username "$POSTGRE_DB_USER" --dbname "$POSTGRE_DB_NAME" <<-EOSQL
CREATE USER ${POSTGRE_DB_PASSWORD} WITH PASSWORD '${POSTGRE_DB_PASSWORD}';
GRANT ALL PRIVILEGES ON DATABASE ${POSTGRE_DB_NAME} TO ${POSTGRE_DB_PASSWORD};
GRANT CREATE ON SCHEMA public TO ${POSTGRE_DB_PASSWORD};
EOSQL
else
echo "SETUP INFO: No Environment variables given!"
fi