mirror of
https://codeberg.org/Toasterson/solstice-ci.git
synced 2026-04-10 13:20:41 +00:00
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.
36 lines
1.5 KiB
Text
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
|