version: '3' services: gitea: image: gitea/gitea:latest container_name: gitea environment: - 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=10.4.0.206 - GITEA__server__ROOT_URL=http://10.4.0.206:3000/ - GITEA__server__HTTP_PORT=3000 # Security settings # - GITEA__security__INSTALL_LOCK=true - 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__DISABLE_REGISTRATION=true - 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=memory - GITEA__session__COOKIE_SECURE=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 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