Files
configure_nginx_manager/wiki/Commands.md
Dmitriy Fofanov 08cf094827 Обновление документации по устранению неполадок и тестированию API RegRu
- Улучшена структура и содержание руководства по устранению неполадок API RegRu для большей ясности и согласованности.

- Документация по тестированию улучшена за счет подробных инструкций и сравнения методов тестирования.

- Улучшено форматирование и читаемость обоих документов.

- Обновлена ​​боковая навигация для лучшего доступа к разделам документации.
2026-02-25 14:41:57 +03:00

16 KiB
Raw Blame History

Команды и сценарии

CLI: letsencrypt-regru

Основные режимы:

  • --check — проверить срок действия и тип (staging/production)
  • --info — показать расширенную информацию по сертификату
  • --obtain — принудительно получить production сертификат
  • --renew — обновить существующий сертификат
  • --auto — авто-режим: создать/обновить по необходимости

Тесты/диагностика:

  • --staging — тестовый сертификат LE staging (без лимитов)
  • --test-cert — самоподписанный тестовый сертификат (мгновенно, без интернета)
  • --test-api — проверка API reg.ru (IP, баланс)
  • --test-dns — полный цикл DNS TXT add → ожидание → nslookup → cleanup

Служебные (вызывает certbot):

  • --auth-hook
  • --cleanup-hook

Дополнительно:

  • -c/--config <file> — путь к конфигу
  • -v/--verbose — подробные логи
  • --force-cleanup — очистка lock файлов certbot

Мультидоменный режим

Если в конфиге указан domains[], команды --check/--info/--staging/--obtain/--renew/--auto/--test-* будут выполняться по всем доменам.

Makefile

Часто используемые команды:

  • make install / make uninstall
  • make test-cert
  • make obtain
  • make renew
  • make run (аналог --auto)
  • make status
  • make logs

CI / Wiki (workflow dispatch)

Эти команды не выполняют деплой/синк локально — они делают API запрос в Actions на gitea.example.com и запускают соответствующий workflow.

  • make wiki-sync — запустить синхронизацию wiki/ в Wiki репозитория
  • make ci-release TAG=vX.Y.Z (или make ci-release VERSION=X.Y.Z) — запустить релизный workflow
  • make deploy-service (опционально REF=branch_or_tag) — запустить деплойный workflow

wiki-sync также запускается автоматически при push в master, если изменились файлы в wiki/**.

Нужно задать токен (любой из):

  • DFGIT_TOKEN (предпочтительно)
  • GIT_TOKEN
  • GITEA_TOKEN
  • GITEA_ACCESS_TOKEN

Примеры:

# Windows PowerShell
$env:DFGIT_TOKEN = "<token>"; make wiki-sync
$env:DFGIT_TOKEN = "<token>"; make ci-release TAG=v1.2.3
$env:DFGIT_TOKEN = "<token>"; make deploy-service
$env:DFGIT_TOKEN = "<token>"; make deploy-service REF=master
# Linux/macOS
DFGIT_TOKEN="<token>" make wiki-sync
DFGIT_TOKEN="<token>" make ci-release TAG=v1.2.3
DFGIT_TOKEN="<token>" make deploy-service
DFGIT_TOKEN="<token>" make deploy-service REF=master

Примечания:

  • Базовый URL задаётся переменной DFGIT_URL (по умолчанию https://gitea.example.com).
  • Репозиторий задаётся DFGIT_REPO (по умолчанию your_username/configure_nginx_manager).
  • Для Linux/macOS требуется установленный curl.

Типовой workflow (рекомендуется)

  1. Подготовка
  • letsencrypt-regru --test-api -v
  • letsencrypt-regru --test-dns -v
  1. Тестирование без лимитов
  • letsencrypt-regru --staging или letsencrypt-regru --test-cert
  1. Production
  • letsencrypt-regru --obtain
  1. Автопродление
  • systemd timer или cron → letsencrypt-regru --auto

Если используете NPM — см. Nginx_Proxy_Manager.


Appendix (migrated from docs/CHEATSHEET.md)

Шпаргалка по SSL сертификатам

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

Установка за 3 команды

sudo make install
sudo nano /etc/letsencrypt/regru_config.json  # Заполнить данные
sudo make test-cert                            # Тест

🧪 Тестирование (БЕЗ лимитов Let's Encrypt)

## Создать тестовый сертификат (неограниченно)
sudo make test-cert

## Проверить статус
sudo make status

## Просмотреть логи
sudo make logs

Когда использовать:

  • ⚠️ Let's Encrypt: макс. 5 сертификатов/неделю
  • Тестовые: НЕОГРАНИЧЕННО
  • Создание: 1-2 секунды vs 2-5 минут

🔒 Production (Let's Encrypt)

## Получить настоящий сертификат
sudo make obtain

## Автоматический режим (проверка + обновление)
sudo make run

## Принудительное обновление
sudo make renew

📋 Основные команды

Команды letsencrypt-regru

Команда Описание Лимиты Использование
--check Проверить срок действия - Мониторинг
--obtain Получить новый сертификат ⚠️ 5/неделю Первое создание
--renew Обновить существующий ⚠️ 5/неделю Продление
--auto Авто-проверка и обновление ⚠️ 5/неделю Cron/systemd
--test-cert Тестовый сертификат Нет Разработка
--test-api Проверить API reg.ru - Диагностика
--test-dns Тест создания DNS записи - Проверка перед SSL
--help Справка - Помощь
-v Подробный вывод - Отладка

Команды Makefile

Команда Описание Эквивалент
make test-cert Тестовый сертификат letsencrypt-regru --test-cert
make obtain Let's Encrypt новый letsencrypt-regru --obtain
make renew Обновить существующий letsencrypt-regru --renew
make run Авто-режим letsencrypt-regru --auto
make status Статус системы -
make logs Показать логи journalctl -u letsencrypt-regru
make check-config Проверить конфигурацию -

Команды letsencrypt_regru.sh

Команда Описание
sudo bash letsencrypt_regru.sh install Установить приложение
sudo bash letsencrypt_regru.sh update Обновить приложение
sudo bash letsencrypt_regru.sh uninstall Удалить приложение

📝 Конфигурация

Минимальная (тестирование)

{
    "domain": "test.example.com",
    "wildcard": true,
    "cert_dir": "/etc/letsencrypt/live"
}

Полная (production + NPM)

{
    "regru_username": "myuser",
    "regru_password": "mypassword",
    "domain": "example.com",
    "wildcard": true,
    "email": "admin@example.com",
    "renewal_days": 30,
    "npm_enabled": true,
    "npm_host": "https://npm.example.com",
    "npm_email": "admin@example.com",
    "npm_password": "npm_password"
}

🔄 Workflow

Разработка → Production

## 1. Разработка (тестовые сертификаты)
sudo make test-cert              # Создать тестовый
## Тестировать приложение...

## 2. Production (Let's Encrypt)
sudo rm -rf /etc/letsencrypt/live/example.com/  # Удалить тест
sudo make obtain                 # Создать production

📁 Важные пути

## Конфигурация
/etc/letsencrypt/regru_config.json

## Сертификаты
/etc/letsencrypt/live/example.com/
├── privkey.pem      # Приватный ключ
├── cert.pem         # Сертификат
├── fullchain.pem    # Полная цепочка (для nginx)
└── chain.pem        # CA цепочка

## Скрипты
/opt/letsencrypt-regru/letsencrypt_regru_api.py

## Логи
/var/log/letsencrypt_regru.log

🔍 Проверка

## Проверить конфигурацию
sudo make check-config

## Проверить сертификат
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -text -noout

## Проверить срок действия
openssl x509 -in /etc/letsencrypt/live/example.com/cert.pem -noout -dates

## Проверить systemd
sudo systemctl status letsencrypt-regru.timer
sudo systemctl list-timers letsencrypt-regru.timer

## Проверить cron
sudo crontab -l | grep letsencrypt

🐛 Отладка

## Подробные логи
sudo make logs

## Тестовый запуск с подробностями
sudo python3 /opt/letsencrypt-regru/letsencrypt_regru_api.py \
    -c /etc/letsencrypt/regru_config.json --check -v

## Логи certbot
sudo tail -f /var/log/letsencrypt/letsencrypt.log

## Логи systemd
sudo journalctl -u letsencrypt-regru.service -f

⚠️ Частые ошибки

Let's Encrypt: Rate limit exceeded

## РЕШЕНИЕ: Используйте тестовые сертификаты
sudo make test-cert

NPM: Certificate not found

## РЕШЕНИЕ: Проверьте настройки NPM
sudo make check-config

## Проверьте подключение
curl -k https://npm.example.com

Permission denied

## РЕШЕНИЕ: Запускайте с sudo
sudo make test-cert

🎯 Сценарии использования

Локальная разработка

sudo make test-cert
## Открыть https://localhost (игнорировать предупреждение)

CI/CD тестирование

## В pipeline
sudo make test-cert
## Запустить тесты...
sudo make status

Staging окружение

sudo make test-cert  # Или
sudo make obtain     # Если есть домен

Production окружение

sudo make install
sudo make obtain
## Автоматическое обновление через cron/systemd

📚 Документация

  • README.md - Полное руководство (1420+ строк)
  • TESTING_GUIDE.md - Тестирование (370+ строк)
  • PROJECT_STRUCTURE.md - Структура проекта
  • CHEATSHEET.md - Эта шпаргалка

🆘 Быстрая помощь

## Показать все команды
make help

## Проверить установку
sudo make status

## Полная переустановка
sudo make uninstall
sudo make install

💡 Советы

  1. Всегда начинайте с тестовых сертификатов - избегайте лимитов
  2. Проверяйте конфигурацию - make check-config
  3. Мониторьте логи - make logs
  4. Автоматизируйте - systemd/cron уже настроены
  5. Храните бэкапы конфигурации

Версия: 2.1
Обновлено: 27.10.2025


Appendix (migrated from docs/MAKEFILE_COMMANDS.md)

Makefile Commands - Quick Reference

📋 Категории команд

🛠️ Установка и развертывание

make install              # Полная установка приложения
make uninstall           # Удаление приложения
make status              # Проверка статуса установки
make check-config        # Проверка конфигурации

🔨 Сборка исполняемых файлов

make build               # Собрать для текущей ОС
make build-linux         # Собрать для Linux
make build-windows       # Собрать для Windows
make build-all           # Собрать для всех платформ

📦 Создание пакетов

make package-linux       # Создать tar.gz для Linux
make package-windows     # Создать zip для Windows
make release             # Полный цикл релиза

🧪 Тестирование

make test-run            # Тестовый запуск скрипта
make test-cert           # Создать тестовый сертификат
make test-build          # Протестировать собранный файл

🚀 Запуск операций

make run                 # Автоматическая проверка и обновление
make obtain              # Получить новый сертификат
make renew               # Обновить существующий сертификат

📊 Мониторинг

make logs                # Показать логи
make status              # Статус служб

🧹 Очистка

make clean               # Очистить временные файлы Python
make clean-build         # Очистить артефакты сборки

Информация

make help                # Показать справку
make build-info          # Информация о среде сборки

🎯 Типовые сценарии

Первоначальная установка

sudo make install
sudo make check-config
sudo make test-run

Сборка релиза для GitHub

make clean-build
make release
## Файлы будут в dist/

Создание тестового окружения

sudo make install
sudo make test-cert
sudo make status

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

sudo make run
sudo make logs

Удаление приложения

sudo make uninstall

📝 Переменные окружения

Основные переменные определены в Makefile:

INSTALL_DIR = /opt/letsencrypt-regru
CONFIG_FILE = /etc/letsencrypt/regru_config.json
LOG_FILE = /var/log/letsencrypt_regru.log
SERVICE_NAME = letsencrypt-regru
PYTHON = python3

🔐 Требуемые права

Требуют sudo:

  • make install
  • make uninstall
  • make run
  • make obtain
  • make renew
  • make test-run
  • make test-cert

Не требуют sudo:

  • make build*
  • make package*
  • make clean*
  • make help
  • make build-info

💡 Полезные комбинации

## Полная переустановка
sudo make uninstall && sudo make install

## Сборка и тестирование
make build && make test-build

## Очистка и релиз
make clean-build && make release

## Проверка после установки
sudo make status && sudo make test-run && sudo make logs