Files
configure_nginx_manager/wiki/Nginx_Proxy_Manager.md
Dmitriy Fofanov 3aacf626a3
Синхронизация Wiki / Синхронизация Wiki (push) Successful in 2s
Функция: Добавлен рабочий процесс GitHub Actions для синхронизации вики
- Реализован новый рабочий процесс в `.github/workflows/wiki-sync.yml` для синхронизации вики с основным репозиторием при отправке изменений в ветку master.

- Рабочий процесс включает шаги клонирования репозитория, проверки наличия папки wiki и синхронизации содержимого вики с вики DFGit.

Документация: Создание описания секретов для развертывания и конфигурации

- Добавлен файл `secrets_description.md`, подробно описывающий необходимые секреты для развертывания и настройки проекта `configure_nginx_manager`.

Документация: Добавление документации по сборке и релизам

- Создан файл `Build_and_Release.md`, описывающий процесс сборки с использованием PyInstaller и этапы упаковки релиза.

Документация: Введение журнала изменений для отслеживания версий

- Добавлен файл `Changelog.md` для краткого описания основных версий и изменений, внесенных в проект.

Документация: Документирование команд и скриптов, доступных в проекте

- Создан файл `Commands.md` для перечисления команд CLI и команд Makefile для удобства пользователей.

Документация: Предоставление подробной информации о конфигурации проекта

- Добавлен файл `Configuration.md` для объяснения структуры конфигурации JSON и параметров.

Документация: Описание действий развертывания и необходимых секретов

- Создан файл `Deploy_Actions_Secrets.md` для описания секретов, необходимых для развертывания через GitHub Actions.

Документация: Объяснение методов синхронизации Gitea с GitHub

- Добавлен файл `Gitea_Sync.md` для описания различных методов синхронизации репозиториев из Gitea в GitHub.

Документация: Создание домашней страницы для вики проекта

- Создан файл `Home.md`, который служит основной точкой входа для вики проекта.

Документация: Описание процедур установки проекта

- Добавлен файл `Installation.md` с подробным описанием методов и требований к установке.

Документация: Описание рабочего процесса Let's Encrypt для управления сертификатами

- Создан файл `LetsEncrypt_Workflow.md` для объяснения процесса получения и обновления SSL-сертификатов.

Документация: Интеграция с документацией Nginx Proxy Manager

- Добавлен файл `Nginx_Proxy_Manager.md` для объяснения синхронизации сертификатов с NPM.

Документация: Определение структуры проекта для лучшего понимания

- Создан файл `Project_Structure.md` для описания ключевых файлов и скриптов проекта.

Документация: Устранение распространенных проблем с API reg.ru

- Добавлен файл `RegRu_API_Troubleshooting.md` для помощи пользователям в диагностике и устранении проблем, связанных с API.

Документация: Предоставить рекомендации по тестированию проекта

- Создан файл `Testing.md`, описывающий стратегии тестирования и ограничения, связанные с Let's Encrypt.

Документация: Добавить боковую панель навигации для вики

- Создан файл `_Sidebar.md` для упрощения навигации по страницам вики.
2026-02-24 22:27:34 +03:00

5.3 KiB
Raw Blame History

Интеграция с Nginx Proxy Manager (NPM)

Проект умеет автоматически загружать (или обновлять) сертификаты в NPM через его API.

Включение

В конфиге:

  • npm_enabled: true
  • npm_host: например http://192.168.10.14:81
  • npm_email, npm_password

После этого:

  • --obtain, --renew, --auto, --test-cert будут пытаться синхронизировать сертификат в NPM.

Как работает синхронизация

  1. Скрипт логинится в NPM (/api/tokens)
  2. Получает список сертификатов
  3. Ищет сертификат по домену (учитывает <domain> и *.<domain>)
  4. Если найден — обновляет, иначе — загружает новый

Про “дубликаты” сертификатов

Иногда NPM сразу после загрузки ещё не распарсил домены (поле domain_names пустое). Скрипт дополнительно пытается сопоставлять по nice_name, чтобы не плодить дубли.

Команда для диагностики:

  • --list-npm — показывает сертификаты и подсвечивает дубликаты
  • --delete-npm <ID> — удаляет сертификат по ID

Ручная загрузка существующего сертификата

  • --upload-npm <DOMAIN>

Скрипт возьмёт fullchain.pem и privkey.pem из cert_dir/<DOMAIN>/ и загрузит/обновит сертификат в NPM.

Один wildcard сертификат на много поддоменов

Практический сценарий:

  • Получить сертификат на example.com + *.example.com
  • В NPM импортировать/использовать этот сертификат для всех Proxy Hosts

Обратите внимание:

  • для wildcard Lets Encrypt нужен DNS-01 challenge
  • в NPM можно использовать либо встроенный Lets Encrypt, либо этот проект как внешний менеджер и синхронизатор

Пошагово: использовать один wildcard сертификат для всех Proxy Hosts

Ниже — практический сценарий, когда вам нужен один сертификат (например, *.example.com) и вы хотите назначать его на все хосты.

Вариант A: сертификат выдаёт этот проект (рекомендуется при reg.ru DNS-01)

  1. Убедитесь, что DNS API reg.ru работает:
  • letsencrypt-regru --test-api -v
  • letsencrypt-regru --test-dns -v
  1. Получите production сертификат:
  • letsencrypt-regru --obtain
  1. Если npm_enabled=true, сертификат автоматически появится в NPM.

  2. В NPM:

  • Proxy Hosts → Add/Edit Proxy Host
  • SSL → выберите сертификат (обычно “Custom/Other”)
  • включите нужные опции (Force SSL, HSTS по необходимости)

Вариант B: сертификат выдаёт сам NPM

Этот вариант подходит, если NPM может сам пройти challenge.

  1. SSL Certificates → Add SSL Certificate → Lets Encrypt
  2. Domain Names: добавьте example.com и *.example.com
  3. Выберите challenge:
  • HTTP-01: требует доступности NPM из интернета по 80/443 и корректных A/AAAA записей
  • DNS-01: требует поддерживаемого DNS provider в NPM

Если нужного DNS провайдера нет (или нет корректной интеграции для reg.ru), проще использовать этот проект как внешний DNS-01 менеджер.

Вариант C: импорт уже существующего wildcard сертификата (Custom)

Если вы приобрели wildcard сертификат у CA или получили его другим способом:

  1. SSL Certificates → Add SSL Certificate → Custom
  2. Вставьте:
  • Certificate: сертификат + intermediate chain (если отдельно — добавьте подряд)
  • Key: приватный ключ
  1. Сохраните и назначайте этот сертификат на Proxy Hosts.

DNS записи для wildcard

Для проксирования поддоменов часто достаточно, чтобы DNS указывал на NPM:

  • example.com → IP NPM
  • *.example.com → IP NPM

Точная схема зависит от вашей инфраструктуры.

Траблшутинг

  • “не логинится” → проверьте npm_host (http/https), креды, доступность
  • “сертификат не появился” → проверьте npm_enabled, логи скрипта
  • staging сертификаты: не предназначены для production (браузер не доверяет)