Files
configure_nginx_manager/PROJECT_STRUCTURE.md
Dmitriy Fofanov 2f89d9e169
Some checks failed
Sync from Gitea / sync (push) Has been cancelled
Добавлено подробное руководство по тестированию SSL-сертификатов и скрипты автоматизации.
- Добавлено подробное руководство по тестированию SSL-сертификатов с использованием самоподписанных сертификатов.
- Добавлены инструкции по созданию тестовых сертификатов с помощью Makefile, Python и Bash-скриптов.
- Добавлены сравнение методов и подробные инструкции по настройке, проверке и использованию в Nginx.
- Задокументированы этапы перехода от тестовых сертификатов к рабочим.
- Создано руководство по получению сертификатов Let's Encrypt с DNS-запросом для провайдера reg.ru.
- Разработано подробное руководство по настройке использования глобального SSL-сертификата в Nginx Proxy Manager.
- Предоставлены инструкции по созданию и обновлению wildcard-сертификатов в Nginx Proxy Manager.
- Добавлены скрипты автоматизации для создания и обновления SSL-сертификатов с помощью API reg.ru.
- Реализованы Git-хуки для Gitea для синхронизации изменений с GitHub после отправки.
- Улучшено логирование и обработка ошибок в Git-хуках для улучшения мониторинга и устранения неполадок.
2025-10-27 22:18:32 +03:00

9.2 KiB
Raw Blame History

📁 Структура проекта 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