feat: Add production deployment stack
Some checks failed
Build and Push Docker Image / lint-and-typecheck (push) Successful in 1m28s
Build and Push Docker Image / build (push) Has been cancelled

- docker-compose.yml with Traefik integration
- docker-compose.simple.yml for direct port exposure
- .env.example with all configuration options
- setup.sh script for initial deployment

Usage:
  cd deploy/
  cp .env.example .env
  # Edit .env with your values
  ./setup.sh
  docker compose up -d

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-17 13:17:09 +01:00
parent 25a67ffea0
commit 411f7d4604
4 changed files with 241 additions and 0 deletions

44
deploy/.env.example Normal file
View File

@@ -0,0 +1,44 @@
# LetsBe Hub Production Configuration
# Copy this file to .env and fill in the values
# =============================================================================
# REQUIRED - Must be set before deployment
# =============================================================================
# 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
# NextAuth secret (generate with: openssl rand -base64 32)
NEXTAUTH_SECRET=CHANGE_ME_GENERATE_WITH_OPENSSL_RAND_BASE64_32
# Credential encryption key (generate with: openssl rand -hex 32)
CREDENTIAL_ENCRYPTION_KEY=CHANGE_ME_GENERATE_WITH_OPENSSL_RAND_HEX_32
# Settings encryption key (generate with: openssl rand -hex 32)
SETTINGS_ENCRYPTION_KEY=CHANGE_ME_GENERATE_WITH_OPENSSL_RAND_HEX_32
# =============================================================================
# OPTIONAL - Defaults are usually fine
# =============================================================================
# Database settings
POSTGRES_USER=letsbe_hub
POSTGRES_DB=letsbe_hub
# Hub image tag (default: master)
HUB_IMAGE_TAG=master
# Ansible Runner settings
DOCKER_REGISTRY_URL=code.letsbe.solutions
DOCKER_IMAGE_NAME=letsbe/ansible-runner
DOCKER_IMAGE_TAG=master
DOCKER_MAX_CONCURRENT=3
# Host paths for job configs (runner containers need access)
# These directories will be created automatically by Docker
JOBS_HOST_DIR=/opt/letsbe-hub/jobs
LOGS_HOST_DIR=/opt/letsbe-hub/logs