;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Gitea Configuration File ;; Generated by Ansible - DO NOT EDIT MANUALLY ;; This file is based on the official Gitea example configuration ;; https://github.com/go-gitea/gitea/blob/main/custom/conf/app.example.ini ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; General Settings ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; APP_NAME = Gitea: Git with a cup of tea RUN_MODE = prod ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Server Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [server] PROTOCOL = http DOMAIN = {{ gitea_domain }} HTTP_ADDR = 0.0.0.0 HTTP_PORT = 3000 ROOT_URL = https://{{ gitea_domain }}/ PUBLIC_URL_DETECTION = auto ;; Performance settings for handling concurrent requests LFS_START_SERVER = true LFS_CONTENT_PATH = data/lfs LFS_JWT_SECRET = ;; Increase timeouts for better stability under load READ_TIMEOUT = 60s WRITE_TIMEOUT = 60s ;; SSH Configuration ;; Note: SSH_LISTEN_PORT should match the port exposed in docker-compose.yml ;; If SSH is not needed, set DISABLE_SSH = true and START_SSH_SERVER = false DISABLE_SSH = false START_SSH_SERVER = false SSH_DOMAIN = {{ gitea_domain }} SSH_PORT = {{ ssh_port | default(2222) }} SSH_LISTEN_PORT = {{ ssh_listen_port | default(2222) }} ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Database Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [database] DB_TYPE = postgres HOST = postgres:5432 NAME = {{ postgres_db | default('gitea') }} USER = {{ postgres_user | default('gitea') }} PASSWD = {{ postgres_password | default('gitea_password') }} SSL_MODE = disable ;; Connection Pool Settings - Prevents "Connection reset by peer" errors ;; Increased limits for handling concurrent requests MAX_OPEN_CONNS = 200 MAX_IDLE_CONNS = 50 CONN_MAX_LIFETIME = 600 CONN_MAX_IDLE_TIME = 300 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Cache Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [cache] ENABLED = true ADAPTER = redis HOST = redis:6379 PASSWORD = {{ redis_password | default('gitea_redis_password') }} DB = 0 ;; Redis cache for better performance and persistence ;; Cache survives container restarts ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Session Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [session] PROVIDER = redis PROVIDER_CONFIG = network=tcp,addr=redis:6379,password={{ redis_password | default('gitea_redis_password') }},db=0,pool_size=100,idle_timeout=180 COOKIE_SECURE = true COOKIE_NAME = i_like_gitea GC_INTERVAL_TIME = 86400 SESSION_LIFE_TIME = 86400 ;; Redis sessions for better performance and scalability ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Queue Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [queue] TYPE = redis CONN_STR = redis://:{{ redis_password | default('gitea_redis_password') }}@redis:6379/0 ;; Redis queue for persistent job processing ;; Jobs survive container restarts ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Service Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [service] DISABLE_REGISTRATION = {{ disable_registration | default(true) | lower }} ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Actions Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [actions] ENABLED = true ;; Use "self" to use the current Gitea instance for actions (not GitHub) ;; Do NOT set DEFAULT_ACTIONS_URL to a custom URL - it's not supported ;; Leaving it unset or setting to "self" will use the current instance ;DEFAULT_ACTIONS_URL = self ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Security Configuration ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; [security] ;; Set INSTALL_LOCK to true to skip the initial setup page INSTALL_LOCK = true