Этот проект содержит фронтенд приложение Tommy Horne с автоматизированным развертыванием на VPS сервере с nginx и SSL сертификатом.
tommy-horne-front/
├── index.html # Главная страница приложения
├── nginx.conf # Конфигурация nginx с HTTPS
├── deploy.py # Основной Python скрипт развертывания
├── quick_deploy.py # Упрощенный скрипт для быстрого развертывания
├── deploy.sh # Bash скрипт развертывания (legacy)
├── setup-ssl.sh # Скрипт настройки SSL сертификата
├── deploy_config.json # Конфигурационный файл
├── requirements.txt # Python зависимости
├── tommy-horne-front.service # Systemd сервис
├── README.md # Документация
└── [статические файлы] # CSS, JS, изображения и т.д.
Убедитесь, что у вас есть:
- VPS сервер с Ubuntu/Debian
- Домен, указывающий на IP сервера
- Доступ по SSH с правами root
# Клонируйте или загрузите проект на сервер
git clone <your-repo-url> /tmp/tommy-horne-front
cd /tmp/tommy-horne-front
# Или загрузите файлы через scp
scp -r . root@your-server-ip:/tmp/tommy-horne-front/# Перейдите в директорию проекта
cd /tmp/tommy-horne-front
# Запустите быстрый скрипт
sudo python3 quick_deploy.py --domain synaptrixtools.com --email your-email@example.com# Отредактируйте конфигурацию (опционально)
nano deploy_config.json
# Запустите основной скрипт
sudo python3 deploy.py --domain synaptrixtools.com --email your-email@example.comsudo python3 deploy.py
# Скрипт запросит домен и email# Сделайте скрипт исполняемым
chmod +x deploy.sh setup-ssl.sh
# Запустите развертывание
sudo ./deploy.sh --domain synaptrixtools.com --email your-email@example.com- Обновление системы - обновляет пакеты системы
- Установка зависимостей - устанавливает nginx, certbot и другие необходимые пакеты
- Создание структуры директорий - создает необходимые папки с правильными правами
- Резервное копирование - создает бэкап существующего развертывания
- Развертывание файлов - копирует файлы фронтенда в web-директорию
- Настройка nginx - конфигурирует nginx с HTTPS
- Настройка SSL - получает SSL сертификат от Let's Encrypt
- Настройка файрвола - открывает необходимые порты
- Настройка логирования - настраивает ротацию логов
- Создание сервиса - создает systemd сервис для автозапуска
- Мониторинг - настраивает базовый мониторинг
- Конфигурация - использует JSON конфигурацию для гибкой настройки
- Быстрое развертывание без дополнительных настроек
- Минимальная конфигурация
- Идеально для тестирования и простых развертываний
- Аналогичная функциональность Python версии
- Использует bash команды
- Менее гибкая конфигурация
Nginx настроен с:
- HTTP → HTTPS редиректом
- SSL/TLS с современными настройками безопасности
- Gzip сжатием
- Кэшированием статических файлов
- Безопасными заголовками
- CORS для шрифтов
Используется Let's Encrypt с автоматическим обновлением:
- Сертификат обновляется автоматически через cron
- Поддерживает wildcard домены
- Настроена проверка обновления
{
"domain": "synaptrixtools.com",
"email": "your-email@example.com",
"server_ip": "your-server-ip",
"ssl_enabled": true,
"firewall_enabled": true,
"monitoring_enabled": true,
"backup_enabled": true,
"rate_limiting": {
"api_rate": "10r/s",
"static_rate": "30r/s"
}
}# Основной скрипт с опциями
python3 deploy.py --help
# Быстрый скрипт
python3 quick_deploy.py --help
# Примеры использования
python3 deploy.py --domain synaptrixtools.com --email admin@example.com
python3 deploy.py --no-ssl --no-firewall
python3 quick_deploy.py --domain synaptrixtools.com --email admin@example.com --no-ssl# Статус сервиса
sudo systemctl status tommy-horne-front
# Запуск сервиса
sudo systemctl start tommy-horne-front
# Остановка сервиса
sudo systemctl stop tommy-horne-front
# Перезапуск сервиса
sudo systemctl restart tommy-horne-front
# Включение автозапуска
sudo systemctl enable tommy-horne-front
# Отключение автозапуска
sudo systemctl disable tommy-horne-front# Проверка конфигурации
sudo nginx -t
# Перезагрузка конфигурации
sudo systemctl reload nginx
# Перезапуск nginx
sudo systemctl restart nginx
# Статус nginx
sudo systemctl status nginx# Логи nginx
sudo journalctl -u nginx -f
# Логи приложения
sudo journalctl -u tommy-horne-front -f
# Логи доступа nginx
sudo tail -f /var/log/nginx/access.log
# Логи ошибок nginx
sudo tail -f /var/log/nginx/error.logСкрипт создает базовый мониторинг:
- Проверка доступности сайта каждые 5 минут
- Автоматический перезапуск nginx при проблемах
- Логирование в
/var/log/tommy-horne-front/
Автоматические бэкапы сохраняются в /var/backups/tommy-horne-front/:
- Создается перед каждым развертыванием
- Формат:
backup-YYYYMMDD-HHMMSS.tar.gz
# Проверка обновления (тестовый режим)
sudo certbot renew --dry-run
# Принудительное обновление
sudo certbot renew
# Проверка статуса сертификатов
sudo certbot certificatesНастроены следующие меры безопасности:
- UFW файрвол с открытыми портами 22, 80, 443
- Современные SSL/TLS настройки
- Безопасные HTTP заголовки
- Ограничение доступа к системным файлам
- Rate limiting для API
# Проверьте статус nginx
sudo systemctl status nginx
# Проверьте конфигурацию
sudo nginx -t
# Проверьте логи
sudo journalctl -u nginx -f# Проверьте сертификаты
sudo certbot certificates
# Обновите сертификат
sudo certbot renew
# Проверьте DNS
nslookup your-domain.com# Проверьте, что nginx запущен
sudo systemctl status nginx
# Проверьте права доступа к файлам
sudo chown -R www-data:www-data /var/www/tommy-horne-front- Обновите DNS записи
- Отредактируйте nginx конфигурацию
- Получите новый SSL сертификат
- Перезапустите nginx
Отредактируйте nginx.conf и настройте upstream для вашего API сервера.
При возникновении проблем:
- Проверьте логи
- Убедитесь, что DNS настроен правильно
- Проверьте статус всех сервисов
- Обратитесь к документации nginx и certbot
[Укажите вашу лицензию]