version: '3.8' services: gitea: image: gitea/gitea:1.21.4 container_name: gitea environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea - GITEA__server__DOMAIN=git.arti24.eu - GITEA__server__SSH_DOMAIN=git.arti24.eu - GITEA__server__ROOT_URL=https://git.arti24.eu - GITEA__server__DISABLE_SSH=false - GITEA__service__DISABLE_REGISTRATION=true restart: unless-stopped volumes: - ./data/gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro - ./backups:/backups ports: - "3000:3000" - "2222:22" networks: - gitea_network depends_on: db: condition: service_healthy db: image: postgres:15-alpine container_name: gitea_db environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea - POSTGRES_DB=gitea - PGUSER=gitea healthcheck: test: ["CMD-SHELL", "pg_isready -U gitea"] interval: 5s timeout: 5s retries: 5 volumes: - ./data/postgres:/var/lib/postgresql/data - ./backups/db:/backups restart: unless-stopped networks: - gitea_network caddy: image: caddy:2-alpine container_name: gitea_caddy ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - ./data/caddy:/data - ./data/caddy_config:/config restart: unless-stopped networks: - gitea_network networks: gitea_network: driver: bridge