Памятка по развёртыванию веб-сервера для нескольких сайтов в Docker.

1. База

  • обновить систему, настроить SSH-ключи, отключить вход по паролю;
  • установить Docker и compose-плагин;
  • выделить под проекты отдельный каталог (например, /opt/stacks).

2. Реверс-прокси

Один контейнер nginx (или Traefik/NPM) принимает весь трафик и раздаёт его по доменам или портам. Для схемы «по портам» каждый сайт получает свой порт:

server {
    listen 801;
    server_name example.com;
    root /srv/sites/example/public;
}

3. Права и безопасность

  • файлы сайтов — отдельная группа с правами на чтение для контейнера;
  • server_tokens off; и лишние порты закрыты файрволом;
  • пароли и ключи — в .env, который не попадает в репозиторий.

4. Бэкапы

Минимум: cron + tar по конфигам и исходникам, ротация 7 дней. Проверяйте восстановление до того, как оно понадобится.