# Gitea с PostgreSQL, Redis и Action Runner # Запуск: docker compose up -d services: # PostgreSQL база данных db: image: postgres:16-alpine container_name: gitea-db restart: always environment: - POSTGRES_DB=gitea - POSTGRES_USER=gitea - POSTGRES_PASSWORD=gitea-secret-2026-nixg.ru - PGDATA=/var/lib/postgresql/data volumes: - ./postgres:/var/lib/postgresql/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - gitea-net healthcheck: test: ["CMD-SHELL", "pg_isready -U gitea -d gitea"] interval: 10s timeout: 5s retries: 5 labels: - "caddy=off" # Redis для кэширования redis: image: redis:7-alpine container_name: gitea-redis restart: always command: ["redis-server", "--appendonly", "yes"] volumes: - ./redis:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - gitea-net healthcheck: test: ["CMD", "redis-cli", "ping"] interval: 10s timeout: 3s retries: 5 labels: - "caddy=off" # Gitea основной сервис gitea: image: docker.gitea.com/gitea:1.26.2 container_name: gitea restart: always environment: - USER_UID=1000 - USER_GID=1000 # База данных PostgreSQL - GITEA__database__DB_TYPE=postgres - GITEA__database__HOST=gitea-db:5432 - GITEA__database__NAME=gitea - GITEA__database__USER=gitea - GITEA__database__PASSWD=gitea-secret-2026-nixg.ru # Redis кэш - GITEA__cache__ENABLED=true - GITEA__cache__ADAPTER=redis - GITEA__cache__HOST=redis://gitea-redis:6379/0 # Session - GITEA__session__PROVIDER=redis - GITEA__session__PROVIDER_CONFIG=redis://gitea-redis:6379/0 # Сервер настройки - GITEA__server__DOMAIN=gitea.nixg.ru - GITEA__server__HTTP_PORT=3000 - GITEA__server__ROOT_URL=https://gitea.nixg.ru/ - GITEA__server__SSH_PORT=2222 - GITEA__server__SSH_DOMAIN=gitea.nixg.ru # Gitea Actions - GITEA__actions__ENABLED=true # Безопасность - GITEA__server__DISABLE_REGISTRATION=true - GITEA__server__REQUIRE_SIGNIN_VIEW=false - GITEA__service__ENABLE_NOTIFY_MAIL=false depends_on: db: condition: service_healthy redis: condition: service_healthy networks: - gitea-net volumes: - ./gitea:/data - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro ports: - "3000:3000" - "2222:22" healthcheck: test: ["CMD", "curl", "-f", "http://localhost:3000"] interval: 30s timeout: 10s retries: 3 labels: - "caddy=https://gitea.nixg.ru" - "caddy.reverse_proxy={{upstreams 3000}}" # Gitea Action Runner act-runner: image: gitea/act_runner:latest container_name: gitea-act-runner restart: always depends_on: - gitea environment: - GITEA_INSTANCE_URL=https://gitea.nixg.ru - GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_TOKEN} - GITEA_RUNNER_NAME=bigbox-runner - GITEA_RUNNER_LABELS=ubuntu-24.04:docker://node:20,ubuntu-24.04:docker://python:3.12,ubuntu-24.04:docker://golang:1.22 # Пропуск проверки SSL для самоподписанных сертификатов - GITEA_INSECURE_SKIP_VERIFY=true volumes: - ./runner:/data - /var/run/docker.sock:/var/run/docker.sock - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - gitea-net labels: - "caddy=off" networks: gitea-net: driver: bridge name: gitea-net