6
Commands
dfgit-actions[bot] edited this page 2026-02-25 07:55:32 +03:00
This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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.

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

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