docker-compose.yml
Rama main · réplica de lectura del repositorio original.
services:
postgres:
image: postgres:18-alpine
environment:
POSTGRES_USER: cloudzilla
POSTGRES_PASSWORD: cloudzilla
POSTGRES_DB: cloudzilla
ports:
- "5432:5432"
volumes:
- postgres_data:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U cloudzilla"]
interval: 5s
timeout: 5s
retries: 5
cloudzilla:
build: .
image: cloudzilla-app:latest
ports:
- "8080:8080"
- "2222:2222"
volumes:
- cloudzilla_data:/data
environment:
CZ_DATABASE_DRIVER: postgres
CZ_DATABASE_DSN: postgres://cloudzilla:cloudzilla@postgres:5432/cloudzilla?sslmode=disable
CZ_GIT_REPOS_ROOT: /data/git-repos
CZ_GIT_SSH_HOST_KEY: /data/cloudzilla_host_key
CZ_STORAGE_LOCAL_ROOT: /data/storage
CZ_AUTH_JWT_SECRET: change-me-in-production
CZ_AUTH_JWT_EXPIRY: 24h
CZ_SERVER_PORT: 8080
CZ_GIT_SSH_PORT: 2222
depends_on:
postgres:
condition: service_healthy
restart: unless-stopped
# Local S3 endpoint for storage.backend: s3, started with --profile s3.
# Point the app at it with CZ_STORAGE_BACKEND=s3 CZ_STORAGE_S3_ENDPOINT=http://localhost:7070
# CZ_STORAGE_S3_BUCKET=cloudzilla CZ_STORAGE_S3_PATH_STYLE=true and the keys below.
versitygw:
image: versity/versitygw:latest
profiles: ["s3"]
# The posix backend serves each top-level directory as a bucket.
entrypoint:
["/bin/sh", "-c", "mkdir -p /data/cloudzilla && exec versitygw --port :7070 posix /data"]
environment:
ROOT_ACCESS_KEY: cloudzilla-dev
ROOT_SECRET_KEY: cloudzilla-dev-secret
ports:
- "7070:7070"
volumes:
- versitygw_data:/data
restart: unless-stopped
volumes:
postgres_data:
cloudzilla_data:
versitygw_data: