# ------------------------------------------------------------------------------ # FILE: ansible/roles/gitea/templates/compose.yaml.j2 # DESCRIPTION: Gitea + PostgreSQL compose stack. Values come from role defaults. # Postgres stays on 17.x; a major bump needs dump + restore. # ------------------------------------------------------------------------------ services: gitea: image: docker.io/gitea/gitea:{{ gitea_version }} restart: unless-stopped environment: - USER_UID=1000 - USER_GID=1000 - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=gitea_db - GITEA__database__NAME={{ gitea_db_name }} - GITEA__database__USER={{ gitea_db_user }} - GITEA__database__PASSWD=${DATABASE_PASSWORD} - GITEA__server__SSH_PORT={{ gitea_ssh_port }} - GITEA__server__ROOT_URL={{ gitea_root_url }} - GITEA__server__DOMAIN={{ gitea_domain }} - GITEA__server__HTTP_PORT={{ gitea_http_port }} - GITEA__service__TRUSTED_PROXIES={{ gitea_trusted_proxies }} networks: - gitea_backend ports: - "{{ gitea_http_port }}:{{ gitea_http_port }}" - "{{ gitea_ssh_port }}:22" volumes: - gitea_data:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro depends_on: gitea_db: condition: service_healthy gitea_db: image: docker.io/library/postgres:{{ gitea_postgres_version }} restart: unless-stopped environment: - TZ={{ gitea_timezone }} - POSTGRES_USER={{ gitea_db_user }} - POSTGRES_PASSWORD=${DATABASE_PASSWORD} - POSTGRES_DB={{ gitea_db_name }} networks: - gitea_backend healthcheck: test: ["CMD-SHELL", "pg_isready -U {{ gitea_db_user }}"] start_period: 30s interval: 10s timeout: 10s retries: 5 volumes: - gitea_db:/var/lib/postgresql/data volumes: gitea_data: driver: local gitea_db: driver: local networks: gitea_backend: driver: bridge