services: gitea: image: gitea/gitea:${GITEA_VERSION} container_name: gitea environment: - TZ=${TZ} - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=postgres:5432 - GITEA__database__NAME=${POSTGRES_DB} - GITEA__database__USER=${POSTGRES_USER} - GITEA__database__PASSWD=${POSTGRES_PASSWORD} - GITEA__lfs__START_SERVER=${GITEA__lfs__START_SERVER} - GITEA__lfs__PATH=${GITEA__lfs__PATH} - GITEA__service__DISABLE_REGISTRATION=${GITEA__service__DISABLE_REGISTRATION} - GITEA__server__SSH_PORT=${GITEA__server__SSH_PORT} - GITEA__server__ROOT_URL=${ROOT_URL} - GITEA__server__DOMAIN=${DOMAIN} - GITEA__server__SSH_DOMAIN=${DOMAIN} restart: always volumes: - ./data:/data ports: - "${HTTP_PORT}:3000" - "${SSH_PORT}:22" depends_on: postgres: condition: service_healthy postgres: image: postgres:${POSTGRES_VERSION} container_name: postgres environment: POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} restart: always volumes: - ./data/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "${POSTGRES_USER}"] interval: 5s timeout: 3s retries: 5 caddy: image: caddy:2 container_name: caddy profiles: - caddy environment: - DOMAIN=${DOMAIN} restart: always ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile:ro - ./caddy_data:/data - ./caddy_config:/config depends_on: - gitea networks: default: driver: bridge