thecr3w-dev/infrastructure/docker/docker-compose.forgejo.yml

64 lines
1.7 KiB
YAML

version: '3.8'
networks:
proxy:
external: true
forgejo_internal:
driver: bridge
internal: true
volumes:
forgejo_data:
driver: local
forgejo_db_data:
driver: local
services:
forgejo-db:
image: postgres:16-alpine
container_name: forgejo-db
restart: unless-stopped
environment:
POSTGRES_DB: ${FORGEJO_DB_NAME:-forgejo}
POSTGRES_USER: ${FORGEJO_DB_USER:-forgejo}
POSTGRES_PASSWORD: ${FORGEJO_DB_PASS:-forgejo_secure_pass_2026}
volumes:
- forgejo_db_data:/var/lib/postgresql/data
networks:
- forgejo_internal
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${FORGEJO_DB_USER:-forgejo} -d ${FORGEJO_DB_NAME:-forgejo}"]
interval: 10s
timeout: 5s
retries: 5
forgejo:
image: codeberg.org/forgejo/forgejo:9.0-rootless
container_name: forgejo
restart: unless-stopped
depends_on:
forgejo-db:
condition: service_healthy
environment:
- USER_UID=1000
- USER_GID=1000
- FORGEJO__database__DB_TYPE=postgres
- FORGEJO__database__HOST=forgejo-db:5432
- FORGEJO__database__NAME=${FORGEJO_DB_NAME:-forgejo}
- FORGEJO__database__USER=${FORGEJO_DB_USER:-forgejo}
- FORGEJO__database__PASSWD=${FORGEJO_DB_PASS:-forgejo_secure_pass_2026}
- FORGEJO__server__DOMAIN=git.thecr3wnet.com
- FORGEJO__server__ROOT_URL=https://git.thecr3wnet.com/
- FORGEJO__server__HTTP_PORT=3000
- FORGEJO__packages__ENABLED=true
- FORGEJO__actions__ENABLED=true
volumes:
- forgejo_data:/var/lib/gitea
networks:
- proxy
- forgejo_internal
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/api/v1/version"]
interval: 15s
timeout: 5s
retries: 3