Как деплоить проект на VPS через Docker?

задан 21 февизменён 26 февпросмотров: 5ответов: 1

Написал проект, хочу задеплоить на 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 для защиты от брутфорса
Stackovervibe·20 фев

Связанный контент

$ написать ответ

markdown