services: gitea: container_name: gitea pull_policy: build build: context: . dockerfile: Dockerfile environment: - USER=git - USER_UID=1000 - USER_GID=1000 # Core settings - APP_NAME="DeafGain Gitea" - RUN_MODE=prod - WORK_PATH=/data/gitea # Database settings - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=${GITEA_DB_USER} - GITEA__database__PASSWD=${GITEA_DB_PASSWORD} # Server settings - GITEA__server__PROTOCOL=http - GITEA__server__DOMAIN=gitea.sigd.net - GITEA__server__ROOT_URL=https://gitea.sigd.net/ - GITEA__server__BEHIND_PROXY=true - GITEA__server__HTTP_PORT=3000 # Security settings - GITEA__security__SECRET_KEY=${GITEA_SECRET_KEY} - GITEA__security__INTERNAL_TOKEN=${GITEA_INTERNAL_TOKEN} # Repository settings - GITEA__repository__ROOT=/data/gitea/repositories - GITEA__repository__DEFAULT_PRIVATE=private - GITEA__repository__DEFAULT_BRANCH=main # Service settings - GITEA__service__REQUIRE_SIGNIN_VIEW=true # UI settings - GITEA__ui__DEFAULT_THEME=gitea-auto # Cache settings - GITEA__cache__ADAPTER=memory - GITEA__cache__INTERVAL=60 # Session settings - GITEA__session__PROVIDER=file - GITEA__session__PROVIDER_CONFIG=/data/gitea/sessions - GITEA__session__COOKIE_NAME=gitea_session - GITEA__session__COOKIE_SECURE=false - GITEA__session__DOMAIN=gitea.sigd.net - GITEA__service__DISABLE_REGISTRATION=true volumes: - /docker/gitea/data:/data - /docker/gitea/config:/etc/gitea - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" depends_on: db: condition: service_healthy restart: always networks: - gitea_network - caddy_network deploy: resources: limits: memory: 2G reservations: memory: 512M healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000/"] interval: 30s timeout: 10s retries: 3 start_period: 5s db: image: postgres:15-alpine container_name: gitea-db environment: - POSTGRES_USER=${GITEA_DB_USER} - POSTGRES_PASSWORD=${GITEA_DB_PASSWORD} - POSTGRES_DB=gitea volumes: - /docker/gitea/postgres:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U ${GITEA_DB_USER}"] interval: 10s timeout: 5s retries: 5 restart: always networks: - gitea_network deploy: resources: limits: memory: 1G reservations: memory: 256M networks: gitea_network: driver: bridge caddy_network: external: true