From 7a349036c5d20683dd30dd30eceb2d14f6574aab Mon Sep 17 00:00:00 2001 From: Ravi Prasad Date: Sat, 19 Sep 2026 04:15:15 -0500 Subject: [PATCH] new services --- cloudflare/.env.example | 14 +++++++++++ cloudflare/docker-compose.yml | 26 ++++++++++++++++++++ dozzle-dockge/docker-compose.yml | 25 +++++++++++++++++++ it-tools/docker-compose.yml | 7 ++++++ n8n/.env.example | 12 ++++++++++ n8n/docker-compose.yml | 41 ++++++++++++++++++++++++++++++++ 6 files changed, 125 insertions(+) create mode 100644 cloudflare/.env.example create mode 100644 cloudflare/docker-compose.yml create mode 100644 dozzle-dockge/docker-compose.yml create mode 100644 it-tools/docker-compose.yml create mode 100644 n8n/.env.example create mode 100644 n8n/docker-compose.yml diff --git a/cloudflare/.env.example b/cloudflare/.env.example new file mode 100644 index 0000000..ad51efd --- /dev/null +++ b/cloudflare/.env.example @@ -0,0 +1,14 @@ +# Copy to .env and fill in before `docker compose up -d` +# Cloudflare API token with Zone:DNS:Edit + Zone:Zone:Read (favonia/cloudflare-ddns) +CLOUDFLARE_API_TOKEN= +# Comma-separated list, e.g. example.com,sub.example.com +DOMAINS= +PROXIED=true +UPDATE_CRON=*/5 * * * * + +# cloudflared-web UI (wisdomsky/cloudflared-web) +WEBUI_PORT=14333 +BASIC_AUTH_USER=admin +BASIC_AUTH_PASS=change-me + +TZ=UTC diff --git a/cloudflare/docker-compose.yml b/cloudflare/docker-compose.yml new file mode 100644 index 0000000..c2b5a94 --- /dev/null +++ b/cloudflare/docker-compose.yml @@ -0,0 +1,26 @@ +services: + cloudflare-ddns: + image: favonia/cloudflare-ddns:latest + container_name: cloudflare-ddns + restart: unless-stopped + network_mode: host + environment: + CLOUDFLARE_API_TOKEN: ${CLOUDFLARE_API_TOKEN:?set CLOUDFLARE_API_TOKEN in .env} + DOMAINS: ${DOMAINS:?set DOMAINS in .env} + PROXIED: ${PROXIED:-true} + UPDATE_CRON: ${UPDATE_CRON:-*/5 * * * *} + TZ: ${TZ:-UTC} + + cloudflared-web: + image: wisdomsky/cloudflared-web:latest + container_name: cloudflared-web + restart: unless-stopped + ports: + - '${WEBUI_PORT:-14333}:14333' + environment: + WEBUI_PORT: ${WEBUI_PORT:-14333} + BASIC_AUTH_USER: ${BASIC_AUTH_USER:-admin} + BASIC_AUTH_PASS: ${BASIC_AUTH_PASS:-} + TZ: ${TZ:-UTC} + volumes: + - /data/cloudflare/files/config:/config diff --git a/dozzle-dockge/docker-compose.yml b/dozzle-dockge/docker-compose.yml new file mode 100644 index 0000000..33b34ab --- /dev/null +++ b/dozzle-dockge/docker-compose.yml @@ -0,0 +1,25 @@ +services: + dozzle: + image: amir20/dozzle:latest + container_name: dozzle + restart: unless-stopped + ports: + - '9999:8080' + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + environment: + TZ: ${TZ:-UTC} + + dockge: + image: louislam/dockge:1 + container_name: dockge + restart: unless-stopped + ports: + - '5001:5001' + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - /data/dockge/files/data:/app/data + - /data/dockge/files/stacks:/opt/stacks + environment: + DOCKGE_STACKS_DIR: /opt/stacks + TZ: ${TZ:-UTC} diff --git a/it-tools/docker-compose.yml b/it-tools/docker-compose.yml new file mode 100644 index 0000000..d6bc2c8 --- /dev/null +++ b/it-tools/docker-compose.yml @@ -0,0 +1,7 @@ +services: + it-tools: + image: corentinth/it-tools:latest + container_name: it-tools + restart: unless-stopped + ports: + - '8080:80' diff --git a/n8n/.env.example b/n8n/.env.example new file mode 100644 index 0000000..ce37782 --- /dev/null +++ b/n8n/.env.example @@ -0,0 +1,12 @@ +# Copy to .env and fill in secrets before `docker compose up -d` +POSTGRES_USER=n8n +POSTGRES_PASSWORD=change-me +POSTGRES_DB=n8n + +# Public hostname / protocol used to access n8n (no port suffix needed when behind a reverse proxy) +N8N_HOST=localhost +N8N_PROTOCOL=http +N8N_PORT=5678 +WEBHOOK_URL=http://localhost:5678/ + +TZ=UTC diff --git a/n8n/docker-compose.yml b/n8n/docker-compose.yml new file mode 100644 index 0000000..92bedb1 --- /dev/null +++ b/n8n/docker-compose.yml @@ -0,0 +1,41 @@ +services: + postgres: + image: postgres:16 + container_name: n8n-postgres + restart: unless-stopped + environment: + POSTGRES_USER: ${POSTGRES_USER:-n8n} + POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env} + POSTGRES_DB: ${POSTGRES_DB:-n8n} + volumes: + - /data/n8n/postgres:/var/lib/postgresql/data + healthcheck: + test: ['CMD-SHELL', 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'] + interval: 10s + timeout: 5s + retries: 5 + + n8n: + image: n8nio/n8n:latest + container_name: n8n + restart: unless-stopped + ports: + - '${N8N_PORT:-5678}:5678' + environment: + DB_TYPE: postgresdb + DB_POSTGRESDB_HOST: postgres + DB_POSTGRESDB_PORT: '5432' + DB_POSTGRESDB_DATABASE: ${POSTGRES_DB:-n8n} + DB_POSTGRESDB_USER: ${POSTGRES_USER:-n8n} + DB_POSTGRESDB_PASSWORD: ${POSTGRES_PASSWORD:?set POSTGRES_PASSWORD in .env} + N8N_HOST: ${N8N_HOST:-localhost} + N8N_PORT: '5678' + N8N_PROTOCOL: ${N8N_PROTOCOL:-http} + WEBHOOK_URL: ${WEBHOOK_URL:-} + GENERIC_TIMEZONE: ${TZ:-UTC} + TZ: ${TZ:-UTC} + volumes: + - /data/n8n/files:/home/node/.n8n + depends_on: + postgres: + condition: service_healthy