Синхронизация Wiki / Синхронизация Wiki (push) Successful in 2s
- Реализован новый рабочий процесс в `.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` для упрощения навигации по страницам вики.
2.5 KiB
2.5 KiB
Алгоритм получения и продления сертификата
Эта страница описывает реальный алгоритм работы скрипта (по документации и текущему коду).
Получение сертификата (production / staging)
Команды:
- production:
--obtain - staging:
--staging
Шаги:
- Проверка наличия certbot
- Формирование списка доменов для certbot:
- всегда:
<domain> - если
wildcard=true:*.<domain>
- всегда:
- Запуск
certbot certonly --manual --preferred-challenges dns - Certbot вызывает hook’и:
- auth-hook: добавляет TXT запись
_acme-challengeчерез API reg.ru - cleanup-hook: удаляет TXT запись
- auth-hook: добавляет TXT запись
- После успеха сертификаты появляются в
cert_dir/<domain>/:privkey.pem,cert.pem,chain.pem,fullchain.pem
- (опционально) синхронизация в NPM
- (опционально) перезагрузка веб-сервиса (nginx/apache)
Про TXT для поддоменов
Если вы выпускаете сертификат для поддомена вида pages.github.example.com, TXT должен создаваться в зоне зарегистрированного домена example.com как:
_acme-challenge.pages.github.example.com
Скрипт учитывает это, выбирая зарегистрированный домен по списку доменов в конфиге.
Продление сертификата
Команда:
--renew
Скрипт запускает certbot renew для конкретного --cert-name <domain> и использует те же hook’и (auth/cleanup) с корректным --config.
Авто-режим
Команда:
--auto
Логика по каждому домену из конфига:
- если сертификата нет → получить новый
- если срок меньше
renewal_days→ продлить - иначе → ничего не делать (опционально проверить наличие в NPM)
Возврат кода:
0— всё успешно1— были ошибки
Где смотреть логи
- Логи скрипта: путь
log_fileиз конфига - Логи certbot: обычно
/var/log/letsencrypt/letsencrypt.log - systemd:
journalctl -u letsencrypt-regru -f