Как деплоить проект на VPS через Docker?
Написал проект, хочу задеплоить на VPS. Слышал, что Docker + Nginx + SSL — это стандартный стек. Как это всё связать вместе?
> Пока нет комментариев
1 ответ
В Vibe Framework деплой — это Фаза 0 нового проекта. Стандартный стек: Docker + Nginx reverse proxy + Let's Encrypt SSL + GitHub Actions CI/CD.
Шаг 1: Docker-compose
Описываешь сервисы в docker-compose.yml: app, postgres, redis. Каждый сервис — отдельный контейнер. env_file: .env для секретов, volumes для персистентных данных.
Шаг 2: Nginx как reverse proxy
Nginx стоит «впереди» Docker и проксирует запросы на контейнер. Конфиг в /etc/nginx/sites-available/: proxy_pass http://localhost:PORT, заголовки X-Real-IP, X-Forwarded-For, X-Forwarded-Proto.
Шаг 3: SSL через certbot
# После настройки DNS A-записи:
certbot --nginx -d project.example.com
# Автообновление уже настроено через systemd timerШаг 4: CI/CD через GitHub Actions
Workflow на push в main: actions/checkout -> SSH на VPS через appleboy/ssh-action -> git pull && docker compose up -d --build. Секреты (VPS_HOST, VPS_SSH_KEY) хранятся в GitHub Secrets.
Безопасность VPS
- Создай пользователя
deploy(не root!) - SSH только по ключу,
PasswordAuthentication no - UFW: deny incoming, allow ssh/80/443
- fail2ban для защиты от брутфорса