From e876a4c967316e3141fec9073e50e75834508cc0 Mon Sep 17 00:00:00 2001 From: Matt Date: Sat, 17 Jan 2026 13:51:07 +0100 Subject: [PATCH] chore: Remove Traefik from deploy stack (using Nginx) - Remove Traefik network and labels from docker-compose - Remove redundant docker-compose.simple.yml - Remove HUB_DOMAIN from .env.example - Remove traefik network creation from setup.sh Co-Authored-By: Claude Opus 4.5 --- deploy/.env.example | 1 - deploy/docker-compose.simple.yml | 54 -------------------------------- deploy/docker-compose.yml | 27 ++-------------- deploy/setup.sh | 4 --- 4 files changed, 2 insertions(+), 84 deletions(-) delete mode 100644 deploy/docker-compose.simple.yml diff --git a/deploy/.env.example b/deploy/.env.example index d4e4338..c91503b 100644 --- a/deploy/.env.example +++ b/deploy/.env.example @@ -7,7 +7,6 @@ # Hub public URL (used for auth callbacks and runner communication) HUB_URL=https://hub.yourdomain.com -HUB_DOMAIN=hub.yourdomain.com # Database password (generate a strong random password) POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD_HERE diff --git a/deploy/docker-compose.simple.yml b/deploy/docker-compose.simple.yml deleted file mode 100644 index 8d19ad1..0000000 --- a/deploy/docker-compose.simple.yml +++ /dev/null @@ -1,54 +0,0 @@ -# Simpler version without Traefik - exposes port 3000 directly -# Use this if you have your own reverse proxy or want direct access - -services: - db: - image: postgres:16-alpine - container_name: letsbe-hub-db - env_file: .env - environment: - POSTGRES_USER: ${POSTGRES_USER:-letsbe_hub} - POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} - POSTGRES_DB: ${POSTGRES_DB:-letsbe_hub} - volumes: - - hub-db-data:/var/lib/postgresql/data - healthcheck: - test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-letsbe_hub} -d ${POSTGRES_DB:-letsbe_hub}"] - interval: 5s - timeout: 5s - retries: 5 - restart: unless-stopped - - hub: - image: code.letsbe.solutions/letsbe/hub:${HUB_IMAGE_TAG:-master} - container_name: letsbe-hub-app - env_file: .env - ports: - - "127.0.0.1:3000:3000" # Only localhost, Nginx proxies to this - environment: - DATABASE_URL: postgresql://${POSTGRES_USER:-letsbe_hub}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-letsbe_hub} - NEXTAUTH_URL: ${HUB_URL} - NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} - AUTH_TRUST_HOST: "true" - HUB_URL: ${HUB_URL} - CREDENTIAL_ENCRYPTION_KEY: ${CREDENTIAL_ENCRYPTION_KEY} - SETTINGS_ENCRYPTION_KEY: ${SETTINGS_ENCRYPTION_KEY} - DOCKER_REGISTRY_URL: ${DOCKER_REGISTRY_URL:-code.letsbe.solutions} - DOCKER_IMAGE_NAME: ${DOCKER_IMAGE_NAME:-letsbe/ansible-runner} - DOCKER_IMAGE_TAG: ${DOCKER_IMAGE_TAG:-master} - DOCKER_MAX_CONCURRENT: ${DOCKER_MAX_CONCURRENT:-3} - JOBS_HOST_DIR: ${JOBS_HOST_DIR:-/opt/letsbe-hub/jobs} - LOGS_HOST_DIR: ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs} - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - ${JOBS_HOST_DIR:-/opt/letsbe-hub/jobs}:/app/jobs - - ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs}:/app/logs - user: "0:0" - depends_on: - db: - condition: service_healthy - restart: unless-stopped - -volumes: - hub-db-data: - name: letsbe-hub-db diff --git a/deploy/docker-compose.yml b/deploy/docker-compose.yml index 27ee963..49fa11d 100644 --- a/deploy/docker-compose.yml +++ b/deploy/docker-compose.yml @@ -15,60 +15,37 @@ services: timeout: 5s retries: 5 restart: unless-stopped - networks: - - hub-internal hub: image: code.letsbe.solutions/letsbe/hub:${HUB_IMAGE_TAG:-master} container_name: letsbe-hub-app env_file: .env + ports: + - "127.0.0.1:3000:3000" environment: - # Database DATABASE_URL: postgresql://${POSTGRES_USER:-letsbe_hub}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-letsbe_hub} - # Auth NEXTAUTH_URL: ${HUB_URL} NEXTAUTH_SECRET: ${NEXTAUTH_SECRET} AUTH_TRUST_HOST: "true" - # Hub URL (for runner callbacks) HUB_URL: ${HUB_URL} - # Encryption keys CREDENTIAL_ENCRYPTION_KEY: ${CREDENTIAL_ENCRYPTION_KEY} SETTINGS_ENCRYPTION_KEY: ${SETTINGS_ENCRYPTION_KEY} - # Docker spawner config (for ansible runner) DOCKER_REGISTRY_URL: ${DOCKER_REGISTRY_URL:-code.letsbe.solutions} DOCKER_IMAGE_NAME: ${DOCKER_IMAGE_NAME:-letsbe/ansible-runner} DOCKER_IMAGE_TAG: ${DOCKER_IMAGE_TAG:-master} DOCKER_MAX_CONCURRENT: ${DOCKER_MAX_CONCURRENT:-3} - # Host paths for job configs (runner containers need access) JOBS_HOST_DIR: ${JOBS_HOST_DIR:-/opt/letsbe-hub/jobs} LOGS_HOST_DIR: ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs} volumes: - # Docker socket for spawning runner containers - /var/run/docker.sock:/var/run/docker.sock - # Job configs (bind mount to host path so runners can access) - ${JOBS_HOST_DIR:-/opt/letsbe-hub/jobs}:/app/jobs - ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs}:/app/logs - # Run as root to access Docker socket user: "0:0" depends_on: db: condition: service_healthy restart: unless-stopped - networks: - - hub-internal - - traefik - labels: - - "traefik.enable=true" - - "traefik.http.routers.hub.rule=Host(`${HUB_DOMAIN}`)" - - "traefik.http.routers.hub.entrypoints=websecure" - - "traefik.http.routers.hub.tls.certresolver=letsencrypt" - - "traefik.http.services.hub.loadbalancer.server.port=3000" volumes: hub-db-data: name: letsbe-hub-db - -networks: - hub-internal: - traefik: - external: true diff --git a/deploy/setup.sh b/deploy/setup.sh index 69c425b..6b4e320 100644 --- a/deploy/setup.sh +++ b/deploy/setup.sh @@ -57,10 +57,6 @@ docker pull code.letsbe.solutions/letsbe/ansible-runner:${DOCKER_IMAGE_TAG:-mast docker pull postgres:16-alpine echo "" -echo "4. Creating traefik network (if not exists)..." -docker network create traefik 2>/dev/null || true -echo "" - echo "=== Setup Complete ===" echo "" echo "Now run: docker compose up -d"