solstice-ci/deploy/podman/.env.sample
Till Wegmueller 1c5dc338f5
Add Podman Compose deployment stack with Traefik and services integration
This commit introduces:
- A production-ready Podman Compose stack using Traefik as a reverse proxy with Let's Encrypt integration.
- Per-environment logical separation for Postgres, RabbitMQ, and MinIO services.
- New deployment utilities, including a `.env.sample` template, `compose.yml`, and setup scripts for MinIO and Postgres.
- Updates to `github-integration` HTTP server with basic webhook handling using `axum` and configurable paths.
- Adjustments to packaging tasks for better tarball generation via `git archive`.
- Expanded dependencies for `PKGBUILD` to support SQLite and PostgreSQL libraries.
- Containerfiles for orchestrator and integration services to enable Rust multi-stage builds without sccache.

This enables simplified and secure CI deployments with automatic routing, TLS, and volume persistence.
2025-11-08 20:21:57 +00:00

36 lines
1.5 KiB
Text

# Copy to .env and adjust values. This file is consumed by podman compose.
# Deployment environment: staging or prod
ENV=staging
# Base domain used for routing. External hostnames are *.svc.${DOMAIN} (no ENV in hostname)
DOMAIN=solstice-ci.org
# ACME email for Let's Encrypt registration
TRAEFIK_ACME_EMAIL=ops@solstice-ci.org
# Optional: set Let's Encrypt CA server (leave empty for production, set to staging for tests)
# For staging, uncomment:
# TRAEFIK_ACME_CASERVER=https://acme-staging-v02.api.letsencrypt.org/directory
# Admin credentials (override in real deployments via secret store)
POSTGRES_USER=solstice
POSTGRES_PASSWORD=change-me
# Databases are created by postgres-setup: solstice_staging and solstice_prod
# Services will connect to postgres database: solstice_${ENV}
POSTGRES_DB=solstice
# RabbitMQ uses a single broker with per-env vhosts: solstice-staging, solstice-prod
RABBITMQ_DEFAULT_USER=solstice
RABBITMQ_DEFAULT_PASS=change-me
MINIO_ROOT_USER=solstice
MINIO_ROOT_PASSWORD=change-me
# Buckets per env (created by minio-setup): solstice-logs-staging, solstice-logs-prod
# Optionally set to the env-specific bucket name (set in your shell, not here): e.g., solstice-logs-staging or solstice-logs-prod
# Leave empty to skip custom bucket creation in minio-setup
MINIO_BUCKET=
# Traefik dashboard basic auth user:password hash (htpasswd -nB admin)
# Example: admin:$2y$05$kN2K0... (bcrypt)
TRAEFIK_DASHBOARD_AUTH=
# Host ports to bind Traefik
TRAEFIK_HTTP_PORT=80
TRAEFIK_HTTPS_PORT=443