networks: gitea: external: false proxy: external: true services: server: image: docker.gitea.com/gitea:1.23 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=giteaasdf restart: unless-stopped networks: - gitea - proxy volumes: - ./data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro depends_on: - db db: container_name: gitea-db image: postgres:17 restart: unless-stopped environment: - POSTGRES_USER=gitea - POSTGRES_PASSWORD=giteaasdf - POSTGRES_DB=gitea networks: - gitea volumes: - ./postgres:/var/lib/postgresql/data healthcheck: test: ["CMD", "pg_isready", "-U", "gitea", "-d", "gitea"] interval: 10s timeout: 5s retries: 5 postgres-backup: container_name: gitea-db-backup networks: - gitea image: postgres:17 environment: PGHOST: db PGDATABASE: gitea PGUSER: gitea PGPASSWORD: giteaasdf BACKUP_NUM_KEEP: 7 BACKUP_FREQUENCY: 1d entrypoint: | bash -c 'bash -s < /dump/pg_backup_\`date +%d-%m-%Y"_"%H_%M_%S\`.dump (ls -t /dump/pg_backup_*.dump|head -n $$BACKUP_NUM_KEEP;ls /dump/pg_backup_*.dump)|sort|uniq -u|xargs rm -f -- 2>/dev/null || true sleep $$BACKUP_FREQUENCY done EOF' depends_on: postgres: condition: service_healthy restart: unless-stopped volumes: - /etc/localtime:/etc/localtime:ro - ./backup-db:/dump