Files
configure_nginx_manager/docs/INSTALL_GUIDE.md
Dmitriy Fofanov 7c929bb5dc Обновлено руководство по использованию letsencrypt_regru.sh: добавлены шаги для автоматической установки и настройки приложения, а также улучшена структура документации.
Добавлен новый файл INSTALL_GUIDE.md с подробным описанием установки и использования.
Обновлен скрипт letsencrypt_regru.sh: добавлены функции для установки зависимостей, создания конфигурации и настройки systemd сервиса.
Созданы файлы systemd для автоматического обновления сертификатов: letsencrypt-regru.service и letsencrypt-regru.timer.
Обновлен файл README.md с новыми разделами и улучшенной структурой.
2025-10-28 10:25:10 +03:00

349 lines
10 KiB
Markdown
Raw Blame History

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.sh
**Автор:** Фофанов Дмитрий
**Дата:** 28.10.2025
## Описание
`letsencrypt_regru.sh` - это автоматический установщик для Let's Encrypt Manager с интеграцией reg.ru и Nginx Proxy Manager.
Скрипт автоматизирует:
- Установку всех системных зависимостей
- Создание виртуального окружения Python
- Установку Python библиотек (requests, cryptography, certbot)
- Интерактивную настройку конфигурации
- Создание и настройку systemd сервисов
- Настройку автоматического обновления сертификатов
## Требования
- Linux (Debian/Ubuntu, CentOS/RHEL/Fedora)
- Root доступ (sudo)
- Минимум 512MB RAM
- Минимум 1GB свободного места на диске
- Интернет соединение
## Быстрая установка
```bash
# 1. Скачайте репозиторий
git clone https://github.com/YOUR_USERNAME/configure_nginx_manager.git
cd configure_nginx_manager
# 2. Дайте права на выполнение
chmod +x letsencrypt_regru.sh
# 3. Запустите установку
sudo ./letsencrypt_regru.sh
```
## Интерактивная настройка
Во время установки скрипт спросит:
1. **Домен** - ваш основной домен (например, `example.com`)
2. **Email** - для уведомлений Let's Encrypt
3. **Учетные данные reg.ru:**
- Имя пользователя
- Пароль
4. **Wildcard сертификат** - создавать ли `*.example.com` (рекомендуется: Да)
5. **Интеграция с NPM** (опционально):
- Адрес NPM (например, `http://192.168.10.14:81`)
- Email для входа в NPM
- Пароль NPM
## Структура после установки
```
/opt/letsencrypt-regru/ # Приложение
├── letsencrypt_regru_api.py # Основной скрипт
├── venv/ # Виртуальное окружение Python
└── docs/ # Документация
/etc/letsencrypt-regru/ # Конфигурация
└── config.json # Настройки (credentials, домен, NPM)
/var/log/letsencrypt-regru/ # Логи
└── letsencrypt_regru.log
/etc/letsencrypt/live/ # Сертификаты Let's Encrypt
└── example.com/
├── privkey.pem
├── cert.pem
├── chain.pem
└── fullchain.pem
/etc/systemd/system/ # Systemd сервисы
├── letsencrypt-regru.service # Сервис обновления
└── letsencrypt-regru.timer # Таймер (каждые 12 часов)
/usr/local/bin/
└── letsencrypt-regru # Глобальная команда
```
## Использование команды letsencrypt-regru
После установки доступна удобная команда:
```bash
# Проверить срок действия текущего сертификата
letsencrypt-regru --check
# Получить новый сертификат Let's Encrypt
letsencrypt-regru --obtain
# Обновить существующий сертификат
letsencrypt-regru --renew
# Автоматически проверить и обновить при необходимости
letsencrypt-regru --auto
# Создать тестовый самоподписанный сертификат
letsencrypt-regru --test-cert
# Показать справку
letsencrypt-regru --help
```
## Автоматическое обновление
Установщик настраивает systemd timer для автоматической проверки:
```bash
# Проверить статус таймера
systemctl status letsencrypt-regru.timer
# Когда следующий запуск
systemctl list-timers letsencrypt-regru.timer
# Посмотреть историю запусков
journalctl -u letsencrypt-regru
# Следить за логами в реальном времени
journalctl -u letsencrypt-regru -f
```
### Настройки таймера
По умолчанию:
- Первый запуск: через 15 минут после загрузки системы
- Периодичность: каждые 12 часов
- Случайная задержка: до 1 часа (чтобы не создавать нагрузку)
Изменить можно в `/etc/systemd/system/letsencrypt-regru.timer`.
## Редактирование конфигурации
```bash
# Открыть конфигурацию в редакторе
sudo nano /etc/letsencrypt-regru/config.json
# После изменений перезапустите таймер
sudo systemctl restart letsencrypt-regru.timer
```
### Пример config.json
```json
{
"regru_username": "your_username",
"regru_password": "your_password",
"domain": "example.com",
"wildcard": true,
"email": "admin@example.com",
"cert_dir": "/etc/letsencrypt/live",
"log_file": "/var/log/letsencrypt-regru/letsencrypt_regru.log",
"dns_propagation_wait": 60,
"dns_check_attempts": 10,
"dns_check_interval": 10,
"renewal_days": 30,
"npm_enabled": true,
"npm_host": "http://192.168.10.14:81",
"npm_email": "admin@npm.local",
"npm_password": "secure_password"
}
```
## Обновление приложения
```bash
# Скачайте последнюю версию
cd configure_nginx_manager
git pull
# Запустите обновление
sudo ./letsencrypt_regru.sh update
```
Обновление:
- Остановит таймер
- Обновит скрипт
- Обновит Python зависимости
- Перезапустит таймер
## Удаление
```bash
# Полное удаление приложения
sudo ./letsencrypt_regru.sh uninstall
```
Скрипт удалит:
- Приложение из `/opt/letsencrypt-regru/`
- Systemd сервисы
- Глобальную команду
Сертификаты в `/etc/letsencrypt/live/` сохраняются!
Опционально можно удалить:
- Конфигурацию `/etc/letsencrypt-regru/`
- Логи `/var/log/letsencrypt-regru/`
## Просмотр логов
```bash
# Логи systemd (рекомендуется)
journalctl -u letsencrypt-regru -f
# Файл лога
tail -f /var/log/letsencrypt-regru/letsencrypt_regru.log
# Последние 100 строк
tail -n 100 /var/log/letsencrypt-regru/letsencrypt_regru.log
```
## Устранение проблем
### Проверка установки
```bash
# Проверить наличие команды
which letsencrypt-regru
# Проверить Python окружение
ls -la /opt/letsencrypt-regru/venv/
# Проверить systemd сервисы
systemctl list-unit-files | grep letsencrypt-regru
```
### Ошибки при установке
**Ошибка: "Permission denied"**
```bash
# Запустите с sudo
sudo ./letsencrypt_regru.sh
```
**Ошибка: "Package not found"**
```bash
# Обновите списки пакетов
sudo apt-get update # Debian/Ubuntu
sudo yum update # CentOS/RHEL
```
**Ошибка: "Python module not found"**
```bash
# Переустановите виртуальное окружение
sudo rm -rf /opt/letsencrypt-regru/venv
sudo ./letsencrypt_regru.sh
```
### Проблемы с сертификатами
**Сертификат не создается**
```bash
# Проверьте логи
tail -n 50 /var/log/letsencrypt-regru/letsencrypt_regru.log
# Проверьте конфигурацию
cat /etc/letsencrypt-regru/config.json
# Попробуйте вручную
letsencrypt-regru --obtain -v
```
**DNS не обновляется**
```bash
# Увеличьте время ожидания в config.json
"dns_propagation_wait": 120,
"dns_check_attempts": 20
```
### Проблемы с NPM
**Не загружается в NPM**
```bash
# Проверьте доступность NPM
curl http://192.168.10.14:81
# Проверьте учетные данные в config.json
# Попробуйте вручную
letsencrypt-regru --test-cert -v
```
## Поддерживаемые ОС
✅ Debian 10, 11, 12
✅ Ubuntu 20.04, 22.04, 24.04
✅ CentOS 7, 8
✅ RHEL 7, 8, 9
✅ Fedora 35+
## Дополнительные возможности
### Тестовый сертификат
Для тестирования без лимитов Let's Encrypt:
```bash
letsencrypt-regru --test-cert
```
Создаст самоподписанный сертификат на 90 дней.
### Ручной запуск обновления
```bash
# Запустить сервис вручную
sudo systemctl start letsencrypt-regru.service
# Посмотреть статус
systemctl status letsencrypt-regru.service
```
### Изменить периодичность проверки
Отредактируйте `/etc/systemd/system/letsencrypt-regru.timer`:
```ini
[Timer]
# Каждые 6 часов вместо 12
OnUnitActiveSec=6h
```
Затем:
```bash
sudo systemctl daemon-reload
sudo systemctl restart letsencrypt-regru.timer
```
## Безопасность
- Конфигурация с паролями имеет права `600` (только root)
- Приватные ключи сертификатов имеют права `600`
- Все операции выполняются от root
- Логи доступны только root
## Поддержка
- GitHub Issues: https://github.com/YOUR_USERNAME/configure_nginx_manager/issues
- Документация: `/opt/letsencrypt-regru/docs/`
- Email: admin@dfv24.com
---
**Разработано:** Фофанов Дмитрий
**Дата:** 28.10.2025
**Версия:** 2.0