4
Project_Structure
dfgit-actions[bot] edited this page 2026-02-25 07:55:32 +03:00
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.

Структура проекта

Ключевые файлы:

  • letsencrypt_regru_api.py — основной Python скрипт (API reg.ru + certbot + NPM)
  • letsencrypt_regru.sh — установщик и менеджер установки
  • Makefile — команды установки/обслуживания/сборки
  • config.json.example — пример конфигурации
  • systemd/ — unit файлы для автозапуска/таймера
  • wiki/ — актуальная документация (страницы Wiki)

Скрипты:

  • letsencrypt_regru_dns.sh — bash вариант через плагин certbot-dns-regru
  • letsencrypt_regru.ps1 — PowerShell версия
  • test_certificate.sh — автономная генерация тестовых сертификатов через OpenSSL

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

  • README.md — основное руководство
  • wiki/* — дополнительные гайды (тестирование, сборка, синхронизация и т.д.)

Автоматизация

  • systemd timer обычно запускает --auto по расписанию (по умолчанию каждые 12 часов)
  • после успешного обновления может выполняться reload веб-сервиса

Appendix (migrated from docs/PROJECT_STRUCTURE.md)

📁 Структура проекта configure_nginx_manager

Основные скрипты

Python (Рекомендуется)

  • letsencrypt_regru_api.py (1,411 строк)
    • Полнофункциональный Python скрипт
    • Прямая работа с API reg.ru
    • Интеграция с Nginx Proxy Manager
    • Автоматическая проверка и обновление сертификатов
    • Генерация тестовых самоподписанных сертификатов
    • Поддержка wildcard доменов

Bash

  • letsencrypt_regru_dns.sh
    • Bash скрипт с certbot-dns-regru плагином
    • Простота использования
    • Минимальные зависимости

PowerShell

  • letsencrypt_regru.ps1
    • Windows версия
    • Аналогична Bash скрипту

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

  • test_certificate.sh
    • Быстрое создание тестовых сертификатов через OpenSSL
    • Автономная работа без Python
    • Поддержка wildcard доменов

Автоматизация

Makefile

  • Makefile (415 строк)
    • make install - Полная установка и настройка
    • make uninstall - Чистое удаление
    • make status - Проверка состояния
    • make test-cert - Создание тестового сертификата
    • make obtain - Получение Let's Encrypt сертификата
    • make renew - Обновление сертификата
    • make logs - Просмотр логов
    • make check-config - Валидация конфигурации

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

config.json.example

Пример конфигурации со всеми параметрами:

  • Учетные данные reg.ru API
  • Настройки домена и email
  • Параметры обновления (renewal_days)
  • Настройки Nginx Proxy Manager
  • Пути к директориям и логам

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

README.md (1,420+ строк)

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

  • Введение и возможности
  • Быстрый старт
  • Установка через Makefile
  • Создание тестовых сертификатов
  • Требования и установка зависимостей
  • Настройка и использование
  • Интеграция с NPM
  • Автоматическая проверка и обновление
  • Автоматизация через cron/systemd
  • Устранение неполадок

TESTING_GUIDE.md (370+ строк)

Руководство по тестированию:

  • Зачем нужны тестовые сертификаты
  • Обход лимитов Let's Encrypt (5 в неделю)
  • Быстрый старт с тестовыми сертификатами
  • Сравнение методов создания
  • Использование в разработке
  • Автоматизация тестирования
  • Переход с тестовых на production
  • Частые вопросы
  • Примеры для CI/CD и Docker

GITEA_SYNC.md

Синхронизация Gitea → GitHub:

  • 4 метода синхронизации (Git Hooks, GitHub Actions, Gitea Mirror, Double Remote)
  • Пошаговые инструкции установки
  • Настройка SSH и токенов
  • Webhook интеграция
  • Устранение проблем
  • Сравнение методов

CHEATSHEET.md

Быстрая шпаргалка:

  • Основные команды
  • Workflow разработки
  • Сценарии использования
  • Частые ошибки и решения
  • Проверка и отладка

PROJECT_STRUCTURE.md (этот файл)

  • Описание всех файлов проекта
  • Краткая характеристика каждого компонента

CHANGELOG.md

История изменений:

  • Версии и обновления
  • Новые возможности
  • Исправления
  • Roadmap

Интеграция с Git

.github/workflows/sync-from-gitea.yml

GitHub Actions для синхронизации:

  • Автоматическая проверка каждый час
  • Webhook триггер от Gitea
  • Ручной запуск
  • Merge изменений из Gitea
  • Push в GitHub

gitea-hooks/

Git hooks для Gitea сервера:

post-receive

  • Автоматический push в GitHub после commit
  • Мгновенная синхронизация (< 1 секунды)
  • Логирование операций
  • Синхронизация тегов
  • Поддержка SSH и HTTPS

README.md

  • Инструкции по установке hook
  • Настройка аутентификации
  • Устранение проблем

Вспомогательные файлы

Markdown документы

  • Add Let's Encrypt Certificate для провайдера reg.ru.md

    • Первоначальные инструкции
  • Создание и продление SSL сертификата (md)

    • Дополнительная информация о процессе

Возможности

Основные

  • Создание Let's Encrypt сертификатов через reg.ru DNS API
  • Wildcard сертификаты (*.domain.com)
  • Автоматическое обновление сертификатов
  • DNS-01 валидация
  • Интеграция с Nginx Proxy Manager
  • Автоматическая загрузка/обновление в NPM

Продвинутые

  • Автоматическая проверка срока действия
  • Настраиваемый порог обновления (renewal_days)
  • Systemd service + timer
  • Cron автоматизация
  • Подробное логирование
  • Валидация конфигурации

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

  • Генерация самоподписанных тестовых сертификатов
  • Обход лимитов Let's Encrypt (5/неделю)
  • Мгновенное создание без DNS
  • Интеграция тестовых сертификатов с NPM
  • Полная совместимость структуры с Let's Encrypt

🔄 Синхронизация репозиториев

  • Автоматическая синхронизация Gitea → GitHub
  • Git Hooks (мгновенная синхронизация)
  • GitHub Actions (проверка каждый час)
  • Webhook интеграция
  • SSH и HTTPS аутентификация

Установка

Быстрая установка

sudo make install
sudo nano /etc/letsencrypt/regru_config.json
sudo make test-cert  # Для тестирования
sudo make obtain     # Для production

Структура после установки

/opt/letsencrypt-regru/
├── letsencrypt_regru_api.py

/etc/letsencrypt/
├── regru_config.json
└── live/
    └── example.com/
        ├── privkey.pem
        ├── cert.pem
        ├── fullchain.pem
        └── chain.pem

/etc/systemd/system/
├── letsencrypt-regru.service
└── letsencrypt-regru.timer

/var/log/letsencrypt/
└── letsencrypt_regru.log

Использование

Тестирование (без лимитов)

sudo make test-cert              # Создать тестовый сертификат
sudo make status                 # Проверить статус

Production

sudo make obtain                 # Получить Let's Encrypt сертификат
sudo make renew                  # Обновить сертификат
sudo make run                    # Автоматический режим

Мониторинг

sudo make logs                   # Просмотр логов
sudo make status                 # Статус служб
sudo make check-config           # Проверка конфигурации

Технологии

  • Python 3.6+ - Основной язык
  • Certbot - Let's Encrypt клиент
  • requests - HTTP запросы к API
  • cryptography - Генерация тестовых сертификатов
  • systemd - Автоматизация запуска
  • cron - Альтернативная автоматизация
  • Make - Управление установкой
  • OpenSSL - Альтернативная генерация сертификатов

Лицензия

Open Source - свободное использование

Автор

Фофанов Дмитрий @ 2025

Поддержка

См. документацию:

  • README.md - Основное руководство
  • TESTING_GUIDE.md - Руководство по тестированию

Версия: 2.1
Дата: 27 октября 2025
Статус: Production Ready