Mikan 71ffcc89bf fix
2026-02-13 21:58:35 +03:00
2026-02-13 01:47:50 +03:00
2026-02-13 01:47:50 +03:00
fix
2026-02-13 21:58:35 +03:00
2026-02-13 01:47:50 +03:00
fix
2026-02-13 21:58:35 +03:00
fix
2026-02-13 21:58:35 +03:00
fix
2026-02-13 21:58:35 +03:00

Локальная сеть с доменами .mikan и HTTPS

Система для запуска сервисов в Docker с автоматическим HTTPS, локальными доменами (service.mikan, service.local) и возможностью расширения (Tailscale, публичные домены).

Требования

Быстрый старт

  1. Клонируй репозиторий

    git clone ... && cd local-dns
    
  2. Настрой домен (опционально)

    echo "LOCAL_DOMAIN=mikan" > .env
    

    Замени mikan на желаемый суффикс (например, home).

  3. Инициализируй CA и базовый сертификат

    ./scripts/01-init-ca.sh
    
    • Создаст доверенный корневой сертификат (ca/rootCA.pem)
    • Сгенерирует default.crt для nginx-proxy
  4. Установи корневой сертификат в систему
    Импортируй файл ca/rootCA.pem в хранилище доверенных корневых центров сертификации:

    • Linux:
      sudo cp ca/rootCA.pem /usr/local/share/ca-certificates/mkcert-local.crt
      sudo update-ca-certificates
      
    • Windows/macOS: двойной клик по файлу → «Доверять всегда» (macOS) или импорт в «Доверенные корневые центры» (Windows)
  5. Запусти инфраструктуру

    docker compose up -d
    
  6. Добавь сервис

    ./scripts/add-service.sh gitea
    

    Сервис будет доступен по:

    • https://gitea.mikan
    • https://gitea.local

    + может пригодиться:

    Add-Content -Path "C:\Windows\System32\drivers\etc\hosts" -Value "10.0.0.3 youtrack.mikan"
    
  7. Настрой сервис в Docker Compose
    Убедись, что в docker-compose.yml сервиса указано:

    services:
      gitea:
        environment:
          - VIRTUAL_HOST=gitea.mikan,gitea.local
          - VIRTUAL_PORT=3000  # порт внутри контейнера
        networks:
          - devnet
        dns: 10.0.0.2  # обязательно для резолвинга доменов из контейнеров
    

Важные замечания

DNS из контейнеров

Контейнеры не могут резолвить *.mikan без явного указания DNS:

dns: 10.0.0.2  # IP dnsmasq

Добавляй эту строку во все сервисы, которым нужен доступ к другим по домену.

Обновление сертификатов

При добавлении сервиса через add-service.sh:

  • Автоматически обновляется domains.txt
  • Генерируется новый default.crt
  • Перезагружается nginx-proxy

Пути

  • Сертификаты: nginx/certs/default.crt
  • Домены: domains.txt
  • Корневой CA: ca/rootCA.pem

Расширение

Tailscale

Добавь в docker-compose.yml сервис tailscale и объявляй дополнительные домены:

environment:
  - VIRTUAL_HOST=gitea.mikan,gitea.local,gitea.yourname.ts.net

Публичный домен

  1. Купи домен (например, example.com)
  2. В .env добавь:
    PUBLIC_DOMAIN=example.com
    
  3. В сервисах укажи:
    environment:
      - VIRTUAL_HOST=gitea.mikan,gitea.local,gitea.example.com
      - LETSENCRYPT_HOST=gitea.example.com
    
    Сертификат для example.com получит acme-companion.

Готово. Теперь все сервисы работают по HTTPS с валидными сертификатами.

Description
No description provided
Readme 51 KiB
Languages
Shell 97.2%
HTML 2.8%