288 lines
6.7 KiB
Markdown
288 lines
6.7 KiB
Markdown
# 📁 configure_nginx_manager Project Structure
|
|
|
|
## Main Scripts
|
|
|
|
### Python (Recommended)
|
|
- **letsencrypt_regru_api.py** (1,411 lines)
|
|
- Full-featured Python script
|
|
- Direct reg.ru API integration
|
|
- Nginx Proxy Manager integration
|
|
- Automatic certificate check and renewal
|
|
- Test self-signed certificate generation
|
|
- Wildcard domain support
|
|
|
|
### Bash
|
|
- **letsencrypt_regru_dns.sh**
|
|
- Bash script with certbot-dns-regru plugin
|
|
- Easy to use
|
|
- Minimal dependencies
|
|
|
|
### PowerShell
|
|
- **letsencrypt_regru.ps1**
|
|
- Windows version
|
|
- Similar to Bash script
|
|
|
|
### Testing
|
|
- **test_certificate.sh**
|
|
- Quick test certificate creation via OpenSSL
|
|
- Standalone operation without Python
|
|
- Wildcard domain support
|
|
|
|
## Automation
|
|
|
|
### Makefile
|
|
- **Makefile** (415 lines)
|
|
- `make install` - Complete installation and setup
|
|
- `make uninstall` - Clean removal
|
|
- `make status` - Check status
|
|
- `make test-cert` - Create test certificate
|
|
- `make obtain` - Get Let's Encrypt certificate
|
|
- `make renew` - Renew certificate
|
|
- `make logs` - View logs
|
|
- `make check-config` - Validate configuration
|
|
|
|
## Configuration
|
|
|
|
### config.json.example
|
|
Example configuration with all parameters:
|
|
- reg.ru API credentials
|
|
- Domain and email settings
|
|
- Renewal parameters (renewal_days)
|
|
- Nginx Proxy Manager settings
|
|
- Directory and log paths
|
|
|
|
## Documentation
|
|
|
|
### README.md (1,420+ lines)
|
|
Main documentation:
|
|
- Introduction and features
|
|
- Quick start
|
|
- Makefile installation
|
|
- Test certificate creation
|
|
- Requirements and dependencies
|
|
- Configuration and usage
|
|
- NPM integration
|
|
- Automatic check and renewal
|
|
- Automation via cron/systemd
|
|
- Troubleshooting
|
|
|
|
### README_EN.md (English version)
|
|
Complete English translation of main guide
|
|
|
|
### TESTING_GUIDE.md (370+ lines)
|
|
Testing guide:
|
|
- Why test certificates are needed
|
|
- Bypass Let's Encrypt limits (5 per week)
|
|
- Quick start with test certificates
|
|
- Method comparison
|
|
- Development usage
|
|
- Test automation
|
|
- Transition from test to production
|
|
- FAQ
|
|
- CI/CD and Docker examples
|
|
|
|
### TESTING_GUIDE_EN.md (English version)
|
|
Complete English translation of testing guide
|
|
|
|
### GITEA_SYNC.md
|
|
Gitea → GitHub synchronization:
|
|
- 4 sync methods (Git Hooks, GitHub Actions, Gitea Mirror, Double Remote)
|
|
- Step-by-step installation
|
|
- SSH and token setup
|
|
- Webhook integration
|
|
- Troubleshooting
|
|
- Method comparison
|
|
|
|
### GITEA_SYNC_EN.md (English version)
|
|
Complete English translation of sync guide
|
|
|
|
### CHEATSHEET.md
|
|
Quick reference:
|
|
- Main commands
|
|
- Development workflow
|
|
- Use case scenarios
|
|
- Common errors and solutions
|
|
- Checking and debugging
|
|
|
|
### CHEATSHEET_EN.md (English version)
|
|
Complete English translation of cheatsheet
|
|
|
|
### PROJECT_STRUCTURE.md (this file)
|
|
- All project files description
|
|
- Component overview
|
|
|
|
### PROJECT_STRUCTURE_EN.md (English version)
|
|
Complete English translation of structure
|
|
|
|
### DESCRIPTION.md
|
|
Project description:
|
|
- Russian description
|
|
- English description
|
|
- Quick start
|
|
- Features overview
|
|
|
|
### CHANGELOG.md
|
|
Change history:
|
|
- Versions and updates
|
|
- New features
|
|
- Bug fixes
|
|
- Roadmap
|
|
|
|
### CHANGELOG_EN.md (English version)
|
|
Complete English translation of changelog
|
|
|
|
## Git Integration
|
|
|
|
### .github/workflows/sync-from-gitea.yml
|
|
GitHub Actions for synchronization:
|
|
- Automatic check every hour
|
|
- Webhook trigger from Gitea
|
|
- Manual run
|
|
- Merge changes from Gitea
|
|
- Push to GitHub
|
|
|
|
### gitea-hooks/
|
|
Git hooks for Gitea server:
|
|
|
|
**post-receive**
|
|
- Automatic push to GitHub after commit
|
|
- Instant sync (< 1 second)
|
|
- Operation logging
|
|
- Tag synchronization
|
|
- SSH and HTTPS support
|
|
|
|
**README.md**
|
|
- Hook installation instructions
|
|
- Authentication setup
|
|
- Troubleshooting
|
|
|
|
**README_EN.md** (English version)
|
|
Complete English translation
|
|
|
|
## Additional Files
|
|
|
|
### Markdown Documents
|
|
- **Add Let's Encrypt Certificate для провайдера reg.ru.md**
|
|
- Initial instructions (Russian)
|
|
|
|
- **Создание и продление SSL сертификата.md**
|
|
- Additional process information (Russian)
|
|
|
|
## Features
|
|
|
|
### ✅ Core Features
|
|
- [x] Let's Encrypt certificates via reg.ru DNS API
|
|
- [x] Wildcard certificates (*.domain.com)
|
|
- [x] Automatic certificate renewal
|
|
- [x] DNS-01 validation
|
|
- [x] Nginx Proxy Manager integration
|
|
- [x] Automatic upload/update to NPM
|
|
|
|
### ✅ Advanced Features
|
|
- [x] Automatic expiration check
|
|
- [x] Configurable renewal threshold (renewal_days)
|
|
- [x] Systemd service + timer
|
|
- [x] Cron automation
|
|
- [x] Detailed logging
|
|
- [x] Configuration validation
|
|
|
|
### 🆕 Testing
|
|
- [x] Self-signed test certificate generation
|
|
- [x] Bypass Let's Encrypt limits (5/week)
|
|
- [x] Instant creation without DNS
|
|
- [x] Test certificate NPM integration
|
|
- [x] Full structure compatibility with Let's Encrypt
|
|
|
|
### 🔄 Repository Sync
|
|
- [x] Automatic Gitea → GitHub sync
|
|
- [x] Git Hooks (instant sync)
|
|
- [x] GitHub Actions (hourly check)
|
|
- [x] Webhook integration
|
|
- [x] SSH and HTTPS authentication
|
|
|
|
## Installation
|
|
|
|
### Quick Install
|
|
```bash
|
|
sudo make install
|
|
sudo nano /etc/letsencrypt/regru_config.json
|
|
sudo make test-cert # For testing
|
|
sudo make obtain # For production
|
|
```
|
|
|
|
### Post-Install Structure
|
|
```
|
|
/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
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Testing (no limits)
|
|
```bash
|
|
sudo make test-cert # Create test certificate
|
|
sudo make status # Check status
|
|
```
|
|
|
|
### Production
|
|
```bash
|
|
sudo make obtain # Get Let's Encrypt certificate
|
|
sudo make renew # Renew certificate
|
|
sudo make run # Automatic mode
|
|
```
|
|
|
|
### Monitoring
|
|
```bash
|
|
sudo make logs # View logs
|
|
sudo make status # Service status
|
|
sudo make check-config # Check configuration
|
|
```
|
|
|
|
## Technologies
|
|
|
|
- **Python 3.6+** - Main language
|
|
- **Certbot** - Let's Encrypt client
|
|
- **requests** - HTTP API requests
|
|
- **cryptography** - Test certificate generation
|
|
- **systemd** - Launch automation
|
|
- **cron** - Alternative automation
|
|
- **Make** - Installation management
|
|
- **OpenSSL** - Alternative certificate generation
|
|
|
|
## License
|
|
|
|
Open Source - Free to use
|
|
|
|
## Author
|
|
|
|
Фофанов Дмитрий @ 2025
|
|
|
|
## Support
|
|
|
|
See documentation:
|
|
- [README.md](README.md) / [README_EN.md](README_EN.md) - Main guide
|
|
- [TESTING_GUIDE.md](TESTING_GUIDE.md) / [TESTING_GUIDE_EN.md](TESTING_GUIDE_EN.md) - Testing guide
|
|
- [GITEA_SYNC.md](GITEA_SYNC.md) / [GITEA_SYNC_EN.md](GITEA_SYNC_EN.md) - Repository sync
|
|
|
|
---
|
|
|
|
**Version**: 2.1
|
|
**Date**: October 27, 2025
|
|
**Status**: ✅ Production Ready
|