networks: gitea: external: false services: server: image: docker.gitea.com/gitea:1.27.3 container_name: gitea restart: always environment: # Container user (match to owner of the ./gitea host volume) - USER_UID=${USER_UID} - USER_GID=${USER_GID} # Database connection - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=${POSTGRES_DB} - GITEA__database__USER=${POSTGRES_USER} - GITEA__database__PASSWD=${POSTGRES_PASSWORD} # Server / general settings - GITEA__server__DOMAIN=${GITEA_DOMAIN} - GITEA__server__ROOT_URL=${GITEA_ROOT_URL} - GITEA__server__SSH_DOMAIN=${GITEA_DOMAIN} - GITEA__server__SSH_PORT=${GITEA_SSH_HOST_PORT} # Security secrets (generate these — see notes) - GITEA__security__SECRET_KEY=${GITEA_SECRET_KEY} - GITEA__security__INTERNAL_TOKEN=${GITEA_INTERNAL_TOKEN} networks: - gitea volumes: - ./gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "${GITEA_HTTP_HOST_PORT}:3000" - "${GITEA_SSH_HOST_PORT}:22" depends_on: - db db: image: docker.io/library/postgres:14 container_name: gitea-db restart: always environment: - POSTGRES_USER=${POSTGRES_USER} - POSTGRES_PASSWORD=${POSTGRES_PASSWORD} - POSTGRES_DB=${POSTGRES_DB} networks: - gitea volumes: - ./postgres:/var/lib/postgresql/data