version: "3" services: traefik: image: traefik:v2.9 container_name: traefik ports: - "80:80" - "443:443" command: - "--api.insecure=true" # Открытая панель управления Traefik, не рекомендуется для продакшена - "--providers.docker=true" # Включаем динамическое определение маршрутов на основе Docker контейнеров - "--entrypoints.web.address=:80" # HTTP (80 порт) - "--entrypoints.websecure.address=:443" # HTTPS (443 порт) - "--certificatesresolvers.myresolver.acme.httpchallenge=true" # Включаем HTTP challenge для Let's Encrypt - "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web" # Указываем HTTP endpoint для ACME - "--certificatesresolvers.myresolver.acme.email=gba404@gmail.com" # Ваш email для регистрации с Let's Encrypt - "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json" # Файл для хранения сертификатов volumes: - ./letsencrypt:/letsencrypt # Хранение сертификатов - /var/run/docker.sock:/var/run/docker.sock:ro # Доступ к Docker сокету gitea: image: gitea/gitea:latest container_name: gitea environment: - USER_UID=1000 - USER_GID=1000 - DB_TYPE=mysql - DB_HOST=db:3306 - DB_NAME=gitea - DB_USER=gitea - DB_PASSWD=gitea_pass - ROOT_URL=https://git.playgba.ru labels: - "traefik.enable=true" - "traefik.http.routers.gitea.rule=Host(`git.playgba.ru`)" # Определение маршрута на основе домена - "traefik.http.routers.gitea.entrypoints=websecure" # Используем HTTPS - "traefik.http.routers.gitea.tls.certresolver=myresolver" # Указываем резолвер для получения сертификатов - "traefik.http.services.gitea.loadbalancer.server.port=3000" # Порт, на который проксируется запрос db: image: mysql:8.0 container_name: gitea_db environment: - MYSQL_ROOT_PASSWORD=8148 - MYSQL_DATABASE=gitea - MYSQL_USER=gitea - MYSQL_PASSWORD=1488 volumes: - ./mysql:/var/lib/mysql