services: gitea: image: gitea/gitea:latest container_name: gitea restart: unless-stopped environment: - USER_UID=1000 - USER_GID=1000 # Подключаемся к существующему PostgreSQL - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=postgres:5432 # Имя контейнера PostgreSQL - GITEA__database__NAME=gitea # Будет создана автоматически - GITEA__database__USER=labuser - GITEA__database__PASSWD=${POSTGRES_PASSWORD} # Из .env файла (ВАЖНО!) - GITEA__database__SCHEMA=public # Настройки сервера # - GITEA__server__DOMAIN=192.168.1.200 # - GITEA__server__ROOT_URL=http://192.168.1.200:3000 # - GITEA__server__SSH_DOMAIN=192.168.1.200 # - GITEA__server__SSH_PORT=22 - GITEA__server__HTTP_ADDR=0.0.0.0 - GITEA__server__HTTP_PORT=3000 # Redis # 1. Для хранения сессий пользователей - GITEA__session__PROVIDER=redis - GITEA__session__PROVIDER_CONFIG=redis://redis:6379/0?pool_size=100&idle_timeout=180s # 2. Для кэширования (ускоряет работу интерфейса) - GITEA__cache__ENABLED=true - GITEA__cache__ADAPTER=redis - GITEA__cache__HOST=redis://redis:6379/1?pool_size=100&idle_timeout=180s # 3. Для очередей задач (асинхронные операции) - GITEA__queue__TYPE=redis - GITEA__queue__CONN_STR=redis://redis:6379/2?pool_size=100&idle_timeout=180s # Minio - GITEA__attachment__STORAGE_TYPE=${GITEA__attachment__STORAGE_TYPE} - GITEA__attachment__MINIO_ENDPOINT=${GITEA__attachment__MINIO_ENDPOINT} - GITEA__attachment__MINIO_ACCESS_KEY_ID=${GITEA__attachment__MINIO_ACCESS_KEY_ID} - GITEA__attachment__MINIO_SECRET_ACCESS_KEY=${GITEA__attachment__MINIO_SECRET_ACCESS_KEY} - GITEA__attachment__MINIO_BUCKET=${GITEA__attachment__MINIO_BUCKET} - GITEA__attachment__MINIO_BASE_PATH=${GITEA__attachment__MINIO_BASE_PATH} - GITEA__attachment__MINIO_USE_SSL=${GITEA__attachment__MINIO_USE_SSL} - GITEA__attachment__MINIO_INSECURE_SKIP_VERIFY=${GITEA__attachment__MINIO_INSECURE_SKIP_VERIFY} # --- LFS (если нужно) --- - GITEA__lfs__STORAGE_TYPE=${GITEA__lfs__STORAGE_TYPE} - GITEA__lfs__MINIO_ENDPOINT=${GITEA__lfs__MINIO_ENDPOINT} - GITEA__lfs__MINIO_ACCESS_KEY_ID=${GITEA__lfs__MINIO_ACCESS_KEY_ID} - GITEA__lfs__MINIO_SECRET_ACCESS_KEY=${GITEA__lfs__MINIO_SECRET_ACCESS_KEY} - GITEA__lfs__MINIO_BUCKET=${GITEA__lfs__MINIO_BUCKET} - GITEA__lfs__MINIO_BASE_PATH=${GITEA__lfs__MINIO_BASE_PATH} - GITEA__lfs__MINIO_USE_SSL=${GITEA__lfs__MINIO_USE_SSL} - GITEA__lfs__MINIO_INSECURE_SKIP_VERIFY=${GITEA__lfs__MINIO_INSECURE_SKIP_VERIFY} # Оптимизации - GITEA__repository__ROOT=/data/git/repositories - GITEA__repository__DETECTED_CHARSETS_ORDER=UTF-8,UTF-16BE,UTF-16LE # Безопасность #- GITEA__security__INSTALL_LOCK=true - GITEA__service__DISABLE_REGISTRATION=true # Отключаем публичную регистрацию - VIRTUAL_HOST=gitea.domain.ru - LETSENCRYPT_HOST=gitea.domain.ru - LETSENCRYPT_EMAIL=my@email.ru # Можно добавить, если требуется указать внутренний порт: - VIRTUAL_PORT=3000 networks: - "net" expose: - "3000" ports: - "3090:3000" # - "192.168.1.200:22:22" # Теперь SSH на стандартном порту! volumes: - gitea-data:/data # Добавляем конфиг для MinIO - /mnt/gitea/conf.d/minio-storage.ini:/etc/gitea/conf.d/minio-storage.ini:ro - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro deploy: resources: limits: cpus: '0.5' memory: 512M reservations: cpus: '0.25' memory: 256M healthcheck: test: ["CMD", "/usr/bin/wget", "--no-verbose", "--tries=1", "--spider", "http://localhost:3000"] interval: 30s timeout: 10s retries: 3 start_period: 40s volumes: gitea-data: driver: local driver_opts: type: none device: /mnt/gitea/data o: bind networks: net: external: true