Back to apps
ChibyooShell — SSH & Server Monitor

Last updated: сентябрь 1, 2026

Docker Compose: 10 сервисов которые должны быть на каждом домашнем сервере

Мета-описание: Собрали 10 лучших Docker-сервисов для домашнего сервера: от мониторинга и хранилища до менеджера паролей и локального AI. Готовые docker-compose.yml конфиги для каждого.


Домашний сервер из старого ноутбука или дешёвого VPS давно перестал быть уделом энтузиастов. Сегодня достаточно Docker и пары часов чтобы развернуть полноценную инфраструктуру — облачное хранилище, мониторинг, менеджер паролей, медиасервер и даже локальный AI. Всё это без подписок, без слежки и с полным контролем над данными.

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


Что нужно для старта

Минимальные требования для запуска большинства сервисов из этого списка:

  • CPU: 2 ядра (4 лучше)
  • RAM: 4 ГБ (8 ГБ если планируете Ollama)
  • Диск: SSD от 60 ГБ под систему, HDD под данные
  • ОС: Ubuntu 22.04 LTS или Debian 12
  • Docker + Docker Compose v2

Установка Docker на Ubuntu одной командой:

curl -fsSL https://get.docker.com | sh

Все конфиги ниже написаны для Docker Compose v2 (команда docker compose без дефиса). Если у вас старая версия — обновите.

Не хотите собирать конфиг вручную? Docker Compose Generator на этом сайте соберёт готовый файл за секунду — выбираете нужные сервисы и скачиваете.


1. Portainer — управление Docker через браузер

Если вы только начинаете с Docker или хотите управлять контейнерами без терминала — Portainer незаменим. Это веб-интерфейс который показывает все контейнеры, образы, volumes и сети. Можно запускать, останавливать, смотреть логи и даже открывать терминал внутри контейнера — прямо в браузере.

services:
  portainer:
    image: portainer/portainer-ce:latest
    restart: unless-stopped
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

volumes:
  portainer_data:

После запуска: http://ваш-сервер:9000

Portainer особенно полезен в связке с ChibyooShell — когда вы на iPhone и нужно быстро перезапустить контейнер, не открывая ноутбук.


2. Uptime Kuma — мониторинг доступности

Uptime Kuma — лёгкий self-hosted аналог UptimeRobot. Мониторит сайты, API-эндпоинты, TCP-порты и даже Docker-контейнеры. Отправляет уведомления в Telegram, Slack, Email когда что-то падает. Интерфейс красивый и информативный — хочется смотреть.

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    restart: unless-stopped
    ports:
      - "3001:3001"
    volumes:
      - kuma_data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock

volumes:
  kuma_data:

После запуска: http://ваш-сервер:3001

Настройте мониторинг своих сайтов, API и самого сервера — и Uptime Kuma будет стучать в Telegram при любых проблемах. Это тот сервис который работает тихо пока всё хорошо, и громко когда что-то сломалось.


3. Grafana + Prometheus — метрики сервера в реальном времени

Если Uptime Kuma отвечает на вопрос «работает или нет», то Grafana отвечает на вопрос «как работает». CPU, RAM, диск, сеть — всё в красивых графиках с историей. Prometheus собирает метрики, Grafana их визуализирует.

services:
  prometheus:
    image: prom/prometheus:latest
    restart: unless-stopped
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml:ro
      - prometheus_data:/prometheus

  grafana:
    image: grafana/grafana:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - GF_SECURITY_ADMIN_USER=${GRAFANA_USER}
      - GF_SECURITY_ADMIN_PASSWORD=${GRAFANA_PASSWORD}
    volumes:
      - grafana_data:/var/lib/grafana

volumes:
  prometheus_data:
  grafana_data:

Создайте файл prometheus/prometheus.yml:

global:
  scrape_interval: 15s

scrape_configs:
  - job_name: 'node'
    static_configs:
      - targets: ['node-exporter:9100']

Добавьте Node Exporter для метрик самого сервера — это отдельный контейнер который Prometheus будет опрашивать. В Grafana импортируйте дашборд #1860 — готовый Node Exporter Full, он охватывает всё что нужно.


4. Nextcloud — своё облако без Google Drive

Nextcloud — полноценная замена Google Drive, Dropbox и даже частично Google Docs. Файлы хранятся на вашем сервере, синхронизируются на все устройства через нативные клиенты. Есть совместное редактирование документов, календарь, контакты, галерея фотографий и ещё сотня плагинов.

services:
  nextcloud:
    image: nextcloud:28-apache
    restart: unless-stopped
    ports:
      - "8080:80"
    environment:
      - NEXTCLOUD_ADMIN_USER=${NC_ADMIN}
      - NEXTCLOUD_ADMIN_PASSWORD=${NC_PASSWORD}
    volumes:
      - nextcloud_data:/var/www/html
    depends_on:
      - nextcloud-db

  nextcloud-db:
    image: mariadb:11
    restart: unless-stopped
    environment:
      - MARIADB_ROOT_PASSWORD=${DB_ROOT_PASS}
      - MARIADB_DATABASE=nextcloud
      - MARIADB_USER=nextcloud
      - MARIADB_PASSWORD=${DB_PASS}
    volumes:
      - nextcloud_db:/var/lib/mysql

volumes:
  nextcloud_data:
  nextcloud_db:

Nextcloud требует чуть больше настройки чем остальные сервисы из списка — особенно если хотите HTTPS и внешний доступ. Но оно того стоит: 50+ ГБ фотографий с телефона, документы, заметки — всё под вашим контролем.


5. Vaultwarden — менеджер паролей

Vaultwarden — это неофициальная реализация сервера Bitwarden на Rust. Потребляет в десятки раз меньше ресурсов чем оригинал, при этом совместима со всеми официальными клиентами Bitwarden: расширение для браузера, приложение на iOS и Android, десктопный клиент.

services:
  vaultwarden:
    image: vaultwarden/server:latest
    restart: unless-stopped
    ports:
      - "8083:80"
    environment:
      - WEBSOCKET_ENABLED=true
      - SIGNUPS_ALLOWED=false
    volumes:
      - vaultwarden_data:/data

volumes:
  vaultwarden_data:

SIGNUPS_ALLOWED=false — обязательно после того как создадите свой аккаунт. Иначе кто угодно сможет зарегистрироваться на вашем сервере.

Важно: Vaultwarden требует HTTPS для нормальной работы клиентов. Настройте обратный прокси с SSL — Caddy или Nginx + Let's Encrypt.


6. Jellyfin — медиасервер

Jellyfin — открытая альтернатива Plex и Emby. Организует вашу коллекцию фильмов, сериалов и музыки, автоматически скачивает обложки и метаданные, транскодирует видео на лету под любое устройство. Работает через браузер, есть нативные клиенты для всех платформ.

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    restart: unless-stopped
    ports:
      - "8096:8096"
    volumes:
      - jellyfin_config:/config
      - jellyfin_cache:/cache
      - ./media:/media:ro

volumes:
  jellyfin_config:
  jellyfin_cache:

Положите фильмы в папку ./media/movies, сериалы в ./media/shows — Jellyfin подхватит структуру автоматически. Для аппаратного ускорения транскодинга на Intel/AMD добавьте devices: [/dev/dri:/dev/dri] в конфиг контейнера.


7. Gitea — свой GitHub

Gitea — лёгкий self-hosted Git сервис. Репозитории, pull requests, issues, CI/CD через Gitea Actions — всё как на GitHub, только на вашем сервере. Потребляет смешное количество ресурсов: 256 МБ RAM вполне хватает.

services:
  gitea:
    image: gitea/gitea:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
      - "2222:22"
    environment:
      - GITEA__database__DB_TYPE=sqlite3
    volumes:
      - gitea_data:/data

volumes:
  gitea_data:

SQLite достаточно для личного использования. Если планируете командную работу — переключайтесь на PostgreSQL.

Порт 2222 нужен для SSH-доступа к репозиториям (git clone ssh://git@ваш-сервер:2222/user/repo.git). Если стандартный порт 22 занят — оставьте маппинг на 2222.


8. SearXNG — приватный поиск

SearXNG — метапоисковик который агрегирует результаты из Google, Bing, DuckDuckGo и десятков других источников, не сохраняя историю и не показывая рекламу. Ставите на свой сервер и получаете личный поисковик.

services:
  searxng:
    image: searxng/searxng:latest
    restart: unless-stopped
    ports:
      - "8084:8080"
    volumes:
      - ./searxng:/etc/searxng:rw
    environment:
      - SEARXNG_SECRET=${SEARXNG_SECRET}

Создайте папку searxng и файл searxng/settings.yml с базовой конфигурацией — официальная документация SearXNG подробно описывает все опции. После запуска поставьте его как поисковик по умолчанию в браузере.


9. Ollama + Open WebUI — локальный ChatGPT

Это комбо полностью меняет подход к работе с AI. Ollama запускает языковые модели локально — Llama 3, Mistral, Qwen, DeepSeek и десятки других. Open WebUI даёт удобный чат-интерфейс как у ChatGPT, только все данные остаются на вашем сервере.

services:
  ollama:
    image: ollama/ollama
    restart: unless-stopped
    ports:
      - "11434:11434"
    volumes:
      - ollama_data:/root/.ollama
    # Раскомментируйте если есть NVIDIA GPU:
    # deploy:
    #   resources:
    #     reservations:
    #       devices:
    #         - driver: nvidia
    #           count: all
    #           capabilities: [gpu]

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    restart: unless-stopped
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
    volumes:
      - openwebui_data:/app/backend/data
    depends_on:
      - ollama

volumes:
  ollama_data:
  openwebui_data:

После запуска зайдите в Open WebUI и скачайте модель: Settings → Models → Pull a model. Для начала — llama3.1:8b (5 ГБ, работает даже на CPU, медленно) или mistral:7b.

Перед запуском проверьте сколько RAM и VRAM нужно для выбранной модели — AI Hardware Calculator посчитает точные требования.


10. n8n — автоматизация без кода

n8n — визуальный редактор автоматизаций. Соединяете сервисы через блоки и стрелки: «когда в Telegram пришло сообщение — сохрани в Google Sheets — отправь уведомление в Slack». Поддерживает 400+ интеграций, включает AI-узлы для работы с языковыми моделями.

services:
  n8n:
    image: n8nio/n8n:latest
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - N8N_BASIC_AUTH_ACTIVE=true
      - N8N_BASIC_AUTH_USER=${N8N_USER}
      - N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD}
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:

После запуска: http://ваш-сервер:5678

Хорошая отправная точка — автоматизация резервных копий: n8n следит за папкой, при появлении нового файла упаковывает и отправляет в S3-совместимое хранилище (MinIO на том же сервере подойдёт).


Как всё это запустить вместе

Не обязательно запускать все десять сервисов сразу — начните с трёх-четырёх и добавляйте по мере необходимости. Рекомендуемый стартовый набор:

Минимальный (4 ГБ RAM): Portainer + Uptime Kuma + Vaultwarden

Средний (8 ГБ RAM): добавляете Nextcloud + Gitea + SearXNG

Полный (16+ ГБ RAM): добавляете Ollama + Grafana + Jellyfin + n8n

Для генерации готового docker-compose.yml под любую комбинацию сервисов используйте Docker Compose Generator — выбираете нужные сервисы, настраиваете параметры и скачиваете готовый файл с .env и инструкцией по запуску.


Безопасность: что важно настроить сразу

Несколько вещей которые нельзя откладывать:

Закройте порты от интернета. Все сервисы должны быть доступны только через обратный прокси с HTTPS. Caddy справляется с этим в несколько строк конфига и автоматически получает SSL-сертификат от Let's Encrypt.

Используйте сильные пароли в .env. Значения по умолчанию типа changeme — это не шутка, меняйте их перед первым запуском.

Регулярные бэкапы volumes. Данные Docker volumes живут в /var/lib/docker/volumes/. Настройте автоматическое копирование — хотя бы раз в день на внешний диск или в облако.

Firewall. Разрешите снаружи только 80, 443 и SSH. Всё остальное — только с localhost или через VPN.


Управление сервером с телефона

Когда инфраструктура запущена, удобно иметь мобильный доступ — особенно чтобы перезапустить упавший контейнер не открывая ноутбук. ChibyooShell решает именно это: SSH-терминал, мониторинг CPU/RAM/диска в реальном времени и управление Docker-контейнерами прямо с iPhone. Настройте один раз — и все десять сервисов под контролем из кармана.