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 <noreply@anthropic.com>
This commit is contained in:
parent
18721c9487
commit
e876a4c967
|
|
@ -7,7 +7,6 @@
|
||||||
|
|
||||||
# Hub public URL (used for auth callbacks and runner communication)
|
# Hub public URL (used for auth callbacks and runner communication)
|
||||||
HUB_URL=https://hub.yourdomain.com
|
HUB_URL=https://hub.yourdomain.com
|
||||||
HUB_DOMAIN=hub.yourdomain.com
|
|
||||||
|
|
||||||
# Database password (generate a strong random password)
|
# Database password (generate a strong random password)
|
||||||
POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD_HERE
|
POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD_HERE
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -15,60 +15,37 @@ services:
|
||||||
timeout: 5s
|
timeout: 5s
|
||||||
retries: 5
|
retries: 5
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
networks:
|
|
||||||
- hub-internal
|
|
||||||
|
|
||||||
hub:
|
hub:
|
||||||
image: code.letsbe.solutions/letsbe/hub:${HUB_IMAGE_TAG:-master}
|
image: code.letsbe.solutions/letsbe/hub:${HUB_IMAGE_TAG:-master}
|
||||||
container_name: letsbe-hub-app
|
container_name: letsbe-hub-app
|
||||||
env_file: .env
|
env_file: .env
|
||||||
|
ports:
|
||||||
|
- "127.0.0.1:3000:3000"
|
||||||
environment:
|
environment:
|
||||||
# Database
|
|
||||||
DATABASE_URL: postgresql://${POSTGRES_USER:-letsbe_hub}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-letsbe_hub}
|
DATABASE_URL: postgresql://${POSTGRES_USER:-letsbe_hub}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB:-letsbe_hub}
|
||||||
# Auth
|
|
||||||
NEXTAUTH_URL: ${HUB_URL}
|
NEXTAUTH_URL: ${HUB_URL}
|
||||||
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
|
||||||
AUTH_TRUST_HOST: "true"
|
AUTH_TRUST_HOST: "true"
|
||||||
# Hub URL (for runner callbacks)
|
|
||||||
HUB_URL: ${HUB_URL}
|
HUB_URL: ${HUB_URL}
|
||||||
# Encryption keys
|
|
||||||
CREDENTIAL_ENCRYPTION_KEY: ${CREDENTIAL_ENCRYPTION_KEY}
|
CREDENTIAL_ENCRYPTION_KEY: ${CREDENTIAL_ENCRYPTION_KEY}
|
||||||
SETTINGS_ENCRYPTION_KEY: ${SETTINGS_ENCRYPTION_KEY}
|
SETTINGS_ENCRYPTION_KEY: ${SETTINGS_ENCRYPTION_KEY}
|
||||||
# Docker spawner config (for ansible runner)
|
|
||||||
DOCKER_REGISTRY_URL: ${DOCKER_REGISTRY_URL:-code.letsbe.solutions}
|
DOCKER_REGISTRY_URL: ${DOCKER_REGISTRY_URL:-code.letsbe.solutions}
|
||||||
DOCKER_IMAGE_NAME: ${DOCKER_IMAGE_NAME:-letsbe/ansible-runner}
|
DOCKER_IMAGE_NAME: ${DOCKER_IMAGE_NAME:-letsbe/ansible-runner}
|
||||||
DOCKER_IMAGE_TAG: ${DOCKER_IMAGE_TAG:-master}
|
DOCKER_IMAGE_TAG: ${DOCKER_IMAGE_TAG:-master}
|
||||||
DOCKER_MAX_CONCURRENT: ${DOCKER_MAX_CONCURRENT:-3}
|
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}
|
JOBS_HOST_DIR: ${JOBS_HOST_DIR:-/opt/letsbe-hub/jobs}
|
||||||
LOGS_HOST_DIR: ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs}
|
LOGS_HOST_DIR: ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs}
|
||||||
volumes:
|
volumes:
|
||||||
# Docker socket for spawning runner containers
|
|
||||||
- /var/run/docker.sock:/var/run/docker.sock
|
- /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
|
- ${JOBS_HOST_DIR:-/opt/letsbe-hub/jobs}:/app/jobs
|
||||||
- ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs}:/app/logs
|
- ${LOGS_HOST_DIR:-/opt/letsbe-hub/logs}:/app/logs
|
||||||
# Run as root to access Docker socket
|
|
||||||
user: "0:0"
|
user: "0:0"
|
||||||
depends_on:
|
depends_on:
|
||||||
db:
|
db:
|
||||||
condition: service_healthy
|
condition: service_healthy
|
||||||
restart: unless-stopped
|
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:
|
volumes:
|
||||||
hub-db-data:
|
hub-db-data:
|
||||||
name: letsbe-hub-db
|
name: letsbe-hub-db
|
||||||
|
|
||||||
networks:
|
|
||||||
hub-internal:
|
|
||||||
traefik:
|
|
||||||
external: true
|
|
||||||
|
|
|
||||||
|
|
@ -57,10 +57,6 @@ docker pull code.letsbe.solutions/letsbe/ansible-runner:${DOCKER_IMAGE_TAG:-mast
|
||||||
docker pull postgres:16-alpine
|
docker pull postgres:16-alpine
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
echo "4. Creating traefik network (if not exists)..."
|
|
||||||
docker network create traefik 2>/dev/null || true
|
|
||||||
echo ""
|
|
||||||
|
|
||||||
echo "=== Setup Complete ==="
|
echo "=== Setup Complete ==="
|
||||||
echo ""
|
echo ""
|
||||||
echo "Now run: docker compose up -d"
|
echo "Now run: docker compose up -d"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue