Справочник

Шпаргалка: команды и паттерны

Вещи, которые повторяются буквально в каждой статье сайта — вместо того чтобы искать их заново в конкретном гайде. Обновляется по мере появления новых статей.

Структура каталогов на NAS

Паттерн, который используется во всех статьях сайта без исключений — один каталог на сервис в /volume1/docker/, с чётким разделением конфигурации, данных и (при необходимости) бэкапов внутри:

структура каталогов
/volume1/docker/<имя-сервиса>/
├── data/           # то, что действительно нужно бэкапить
├── config/         # конфигурация приложения
└── backups/        # локальные архивы (опционально)

Подробнее — в разделах подготовки каталогов в статьях про Vaultwarden, Nextcloud и Immich.

Основные команды Docker Compose

ssh · admin@nas
docker compose up -d              # запустить стек в фоне
docker compose down               # остановить и удалить контейнеры (тома остаются)
docker compose logs -f <service>  # логи конкретного сервиса в реальном времени
docker compose pull <service>     # подтянуть новый образ
docker compose exec <service> sh  # зайти внутрь контейнера
docker exec -it <container> bash  # то же самое, но по имени контейнера напрямую

Снимок состояния стека без веб-интерфейса

ssh · admin@nas
docker stats --no-stream --format \
  "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

Подробный разбор мониторинга и Dozzle — в статье про сетевой high-load.

Сетевые режимы: когда какой

РежимКогда использоватьПример из статей
bridge (по умолчанию)простой сервис, один порт наружубольшинство контейнеров сайта
macvlanнужен собственный IP в локальной сетиhigh-load, AdGuard Home
hostнужно автообнаружение устройств (mDNS/SSDP) или доступ к сетевому стеку хостаHome Assistant, fail2ban

Частые переменные окружения

ПеременнаяСмысл
TZчасовой пояс контейнера, влияет на метки времени в логах и расписаниях
PUID / PGIDпод каким системным пользователем/группой контейнер пишет файлы на том
LOG_LEVELуровень детализации логов — полезно временно повышать при отладке

Скелет бэкап-скрипта

Один и тот же каркас — снять дамп/архив, положить с меткой времени, вычистить старое — повторяется в статьях про Vaultwarden, Nextcloud, Home Assistant и Immich:

backup-skeleton.sh
#!/bin/bash
STAMP=$(date +%Y%m%d-%H%M)
DEST=/volume1/docker/<сервис>/backups
mkdir -p "$DEST"

# 1. снять дамп базы (если есть) или архив конфигурации
# 2. сохранить с меткой времени в $DEST
# 3. вычистить архивы старше 14 дней:
find "$DEST" -name "*-2*.gz" -mtime +14 -delete

Полную стратегию вокруг этих скриптов — уровни копий, шифрование, тестирование восстановления — смотрите в статье про правило 3-2-1.

Базовый чек-лист безопасности

Полные версии — в статьях про харденинг DSM и fail2ban.

Эта страница не заменяет сами статьи — она для того, чтобы не листать заново развёрнутый гайд ради одной команды, которую вы уже видели раньше.