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

113 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Интеграция с 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`
2) Получите production сертификат:
- `letsencrypt-regru --obtain`
3) Если `npm_enabled=true`, сертификат автоматически появится в NPM.
4) В 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: приватный ключ
3) Сохраните и назначайте этот сертификат на Proxy Hosts.
## DNS записи для wildcard
Для проксирования поддоменов часто достаточно, чтобы DNS указывал на NPM:
- `example.com` → IP NPM
- `*.example.com` → IP NPM
Точная схема зависит от вашей инфраструктуры.
## Траблшутинг
- “не логинится” → проверьте `npm_host` (http/https), креды, доступность
- “сертификат не появился” → проверьте `npm_enabled`, логи скрипта
- staging сертификаты: не предназначены для production (браузер не доверяет)