VPSРейтинг
ОблакоФевраль 2026 · 15 мин чтения

Nextcloud на VPS: личное облако вместо Google Drive

Nextcloud Hub 33 — open-source платформа для хранения файлов, синхронизации контактов и календарей, видеозвонков и совместной работы. Разворачивается на VPS с 2 ГБ RAM через Docker Compose. Данные — только на вашем сервере.

1. Что такое Nextcloud и зачем его хостить

Nextcloud — open-source платформа для личного облака. По функциям это аналог Google Drive + Google Calendar + Google Meet + Google Contacts, но данные хранятся на вашем сервере, а не на серверах американской корпорации.

Актуальная версия — Nextcloud Hub 33 (Winter 2026), вышедшая в феврале 2026. Основная идея релиза — цифровой суверенитет: независимость от внешних платформ и полный контроль над своими данными.

Данные у вас

Файлы физически хранятся на вашем VPS. Ни Google, ни Яндекс, ни кто-либо другой не имеет к ним доступа.

500+ приложений

Файлы, календарь, контакты, заметки, канбан, видеозвонки, почта, галерея фото — всё в одном интерфейсе.

Открытый код

AGPL-лицензия, 24 000+ звёзд на GitHub. Разрабатывается с 2016 года, регулярные аудиты безопасности.

Кому стоит разворачивать Nextcloud

Если у вас уже есть VPS — Nextcloud запускается рядом с другими сервисами. Особенно актуально для тех, кто уходит от Google/Яндекс или хочет хранить рабочие документы без передачи третьим сторонам.

2. Nextcloud vs Google Drive vs Яндекс Диск

ПараметрNextcloudGoogle DriveЯндекс Диск
Хранение данныхВаш сервер (РФ)Серверы Google (США)Серверы Яндекс (РФ)
Конфиденциальность✅ Полный контроль❌ Анализ данных⚠️ Данные в РФ
100 ГБ~200–400 ₽/мес (VPS)$2.99/мес139 ₽/мес
1 ТБ~500–1000 ₽/мес$9.99/мес399 ₽/мес
Онлайн-офис✅ OnlyOffice/Collabora✅ Google Docs✅ Встроенный
Мобильный клиент✅ iOS + Android
Десктоп-клиент✅ Win/Mac/Linux✅ Win/Mac✅ Win/Mac
CalDAV/CardDAV✅ Стандарт❌ Google-only
Видеозвонки✅ Talk (E2E)✅ Meet✅ Телемост
ОбъёмОграничен диском VPS15 ГБ бесплатно10 ГБ бесплатно
Lock-in❌ Нет✅ Экосистема Google✅ Экосистема Яндекс

Когда Google Drive выигрывает

Если вам нужна безотказная работа без администрирования сервера, глубокая интеграция с Gmail и встроенный Gemini AI — Google Drive проще. Nextcloud требует обслуживания: обновления, бэкапы, мониторинг. Это инвестиция времени.

3. Требования к серверу

2 ГБ RAM

Личное использование

  • 1–2 vCPU
  • 2 ГБ RAM
  • 20+ ГБ NVMe
  • 1–2 пользователя
4 ГБ RAM

Семья / небольшая команда

  • 2 vCPU
  • 4 ГБ RAM
  • 50+ ГБ NVMe
  • До 10 пользователей
6 ГБ RAM

С Nextcloud Office

  • 4 vCPU
  • 6+ ГБ RAM
  • 50+ ГБ NVMe
  • + OnlyOffice контейнер

Обязательны: публичный IP, домен (или поддомен), HTTPS — мобильные приложения Nextcloud не работают по чистому HTTP. Диск лучше NVMe: Nextcloud активно работает с миниатюрами и индексами.

4. Установка Docker

Если Docker ещё не установлен — официальный скрипт установит всё за одну команду.

Установка Docker Engine (Ubuntu 22.04 / 24.04)
curl -fsSL https://get.docker.com | sh

# Добавить в автозапуск
systemctl enable --now docker

# Проверить версию
docker --version
docker compose version

5. Docker Compose — PostgreSQL + Redis + Nextcloud

Развернём стек из трёх контейнеров: PostgreSQL (база данных), Redis (кэш и блокировки файлов) и Nextcloud (Apache + PHP встроен в образ). Nextcloud будет слушать на 127.0.0.1:8080 — наружу его проксирует Nginx на следующем шаге.

Шаг 1: рабочая директория

Создать директорию
mkdir -p ~/nextcloud && cd ~/nextcloud

Шаг 2: файл переменных .env

Замените значения на свои. Пароли генерируйте через openssl rand -base64 24:

~/nextcloud/.env
DOMAIN=cloud.example.com

# PostgreSQL
DB_PASSWORD=замените_на_надёжный_пароль

# Redis
REDIS_PASSWORD=замените_на_надёжный_пароль

# Администратор Nextcloud
NEXTCLOUD_ADMIN_USER=admin
NEXTCLOUD_ADMIN_PASSWORD=замените_на_надёжный_пароль

Шаг 3: docker-compose.yml

~/nextcloud/docker-compose.yml
services:
  db:
    image: postgres:16-alpine
    container_name: nc-db
    restart: unless-stopped
    volumes:
      - db_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    networks:
      - nc_net

  redis:
    image: redis:7-alpine
    container_name: nc-redis
    restart: unless-stopped
    command: redis-server --requirepass ${REDIS_PASSWORD}
    networks:
      - nc_net

  app:
    image: nextcloud:30-apache
    container_name: nc-app
    restart: unless-stopped
    depends_on:
      - db
      - redis
    ports:
      - "127.0.0.1:8080:80"
    volumes:
      - nextcloud_data:/var/www/html
    environment:
      POSTGRES_HOST: db
      POSTGRES_DB: nextcloud
      POSTGRES_USER: nextcloud
      POSTGRES_PASSWORD: ${DB_PASSWORD}
      REDIS_HOST: nc-redis
      REDIS_HOST_PASSWORD: ${REDIS_PASSWORD}
      NEXTCLOUD_ADMIN_USER: ${NEXTCLOUD_ADMIN_USER}
      NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD}
      NEXTCLOUD_TRUSTED_DOMAINS: ${DOMAIN}
      OVERWRITECLIURL: "https://${DOMAIN}"
      OVERWRITEPROTOCOL: https
      PHP_MEMORY_LIMIT: 512M
      PHP_UPLOAD_LIMIT: 10G
    networks:
      - nc_net

  cron:
    image: nextcloud:30-apache
    container_name: nc-cron
    restart: unless-stopped
    depends_on:
      - db
      - redis
    volumes:
      - nextcloud_data:/var/www/html
    entrypoint: /cron.sh
    networks:
      - nc_net

volumes:
  db_data:
  nextcloud_data:

networks:
  nc_net:

Зачем контейнер cron?

Nextcloud использует фоновые задачи (очистка корзины, генерация превью, уведомления). Отдельный контейнер cron запускает их каждые 5 минут — это официально рекомендуемый способ для Docker.

Шаг 4: запуск

Запустить стек
docker compose up -d

# Следить за инициализацией (первый запуск — 2–3 минуты)
docker compose logs -f app

# Проверить, что все контейнеры запущены
docker compose ps

При первом запуске Nextcloud автоматически создаст базу данных, применит все миграции и создаёт учётную запись администратора из переменных окружения. Дождитесь сообщения Apache/2.4.x configured -- resuming normal operations.

6. Nginx + SSL

HTTPS обязателен — мобильные клиенты Nextcloud откажутся работать без валидного сертификата.

Установка Nginx и Certbot

Установить Nginx и Let's Encrypt
apt install nginx certbot python3-certbot-nginx -y

Конфиг Nginx

/etc/nginx/sites-available/nextcloud
server {
    listen 80;
    server_name cloud.example.com;

    # Увеличить лимит размера загружаемых файлов
    client_max_body_size 10G;
    client_body_timeout 600s;

    location / {
        proxy_pass         http://127.0.0.1:8080;
        proxy_http_version 1.1;

        proxy_set_header Host              $host;
        proxy_set_header X-Real-IP         $remote_addr;
        proxy_set_header X-Forwarded-For   $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

        # WebSocket (Nextcloud Talk)
        proxy_set_header Upgrade    $http_upgrade;
        proxy_set_header Connection "upgrade";

        proxy_read_timeout  600s;
        proxy_send_timeout  600s;
    }
}
Активировать конфиг и получить SSL
ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

# Получить сертификат
certbot --nginx -d cloud.example.com

Certbot добавит HTTPS-блок и настроит автообновление сертификата. Откройте https://cloud.example.com — должен открыться интерфейс Nextcloud.

7. Первый вход и проверка кэша

Войдите на https://cloud.example.com под учётными данными из .env. После входа перейдите в Настройки → Администрирование → Обзор и проверьте список предупреждений.

Проверить статус Redis и OPcache

Проверить конфигурацию через occ
# Статус кэша
docker exec -u www-data nc-app php occ config:system:get memcache.local
docker exec -u www-data nc-app php occ config:system:get memcache.locking

# Список предупреждений системы
docker exec -u www-data nc-app php occ status

Если Redis подхватился из переменных окружения — в config/config.php уже должна быть запись memcache.locking. Если нет — добавьте вручную:

Добавить Redis-кэш вручную, если не подхватился автоматически
docker exec -u www-data nc-app php occ config:system:set memcache.local --value='\OC\Memcache\APCu'
docker exec -u www-data nc-app php occ config:system:set memcache.distributed --value='\OC\Memcache\Redis'
docker exec -u www-data nc-app php occ config:system:set memcache.locking --value='\OC\Memcache\Redis'

Исправить типичные предупреждения

Добавить недостающие индексы БД (после установки)
docker exec -u www-data nc-app php occ db:add-missing-indices
docker exec -u www-data nc-app php occ db:convert-filecache-bigint

Рекомендуемые приложения при первом входе

Nextcloud предложит установить набор базовых приложений. Минимальный набор: Calendar, Contacts, Notes. Talk (видеозвонки) установите отдельно, если нужен.

8. Мобильный клиент и десктоп

Мобильное приложение (iOS / Android)

  1. Установите приложение Nextcloud из App Store или Google Play
  2. На стартовом экране введите адрес сервера: https://cloud.example.com
  3. Войдите под учётными данными администратора (или нового пользователя)
  4. Включите автозагрузку фото: Настройки → Автозагрузка → выбрать папки

Для синхронизации контактов и календарей на Android нужно приложение DAVx5(есть в F-Droid бесплатно и Google Play за небольшую плату). На iOS Calendar и Contacts поддерживают CalDAV/CardDAV из коробки — добавьте аккаунт в Настройки → Почта → Аккаунты → Другой.

Десктоп-клиент (Windows / macOS / Linux)

  1. Скачайте Nextcloud Desktop с nextcloud.com/install/
  2. При первом входе укажите адрес вашего сервера
  3. Выберите папки для синхронизации (можно синхронизировать частично)

Десктоп-клиент работает в системном трее и синхронизирует изменения в реальном времени. Поддерживает Windows 10+, macOS 12.0+, все основные дистрибутивы Linux.

WebDAV-доступ без клиента

Подключите Nextcloud как сетевой диск без установки клиента.

Адрес для WebDAV
https://cloud.example.com/remote.php/dav/files/ВАШ_ЛОГИН/

Windows: «Подключить сетевой диск» → Веб-папка. macOS: Finder → Перейти → Подключиться к серверу.

9. Полезные приложения

Приложения устанавливаются через интерфейс: Приложения → поиск по названию → Установить. Ниже — наиболее полезные из 500+ доступных.

ПриложениеЧто делаетАналог
CalendarОбщий CalDAV-календарь, повторяющиеся событияGoogle Calendar
ContactsCardDAV-адресная книга, группыGoogle Contacts
TalkЗашифрованный чат, голос и видеозвонкиGoogle Meet
MemoriesГалерея фото с таймлайном и картойGoogle Photos
DeckKanban-доски для управления задачамиTrello
NotesЗаметки в Markdown с синхронизациейGoogle Keep
MailВеб-почтовый клиент (несколько IMAP)Gmail (веб)
CollectivesКоллективная wiki-база знанийNotion
FormsОпросы и анкеты без сбора данныхGoogle Forms
Nextcloud OfficeРедактирование .docx/.xlsx в браузереGoogle Docs

Nextcloud Office: OnlyOffice или Collabora?

OnlyOffice лучше совместим с форматами Microsoft Office (.docx, .xlsx, .pptx) — рекомендуется, если коллеги работают в MS Office. Collabora более открытый и лучше работает с ODF-форматами. Оба разворачиваются как отдельный Docker-контейнер и требуют ещё ~1 ГБ RAM.

10. Обновление и резервные копии

Обновление Nextcloud

Обновляйте последовательно — нельзя перепрыгивать через мажорные версии (например, с 30 сразу на 32). В docker-compose.yml обновляйте тег образа по одной версии за раз.

Процесс обновления через Docker
# 1. Включить режим обслуживания
docker exec -u www-data nc-app php occ maintenance:mode --on

# 2. Сделать бэкап БД (до обновления!)
docker exec nc-db pg_dump -U nextcloud nextcloud > ~/nextcloud-db-backup-$(date +%Y%m%d).sql

# 3. В docker-compose.yml обновить тег образа:
#    image: nextcloud:30-apache  →  image: nextcloud:31-apache
# Затем:
docker compose pull
docker compose down
docker compose up -d

# 4. Дождаться запуска, затем применить миграции
docker exec -u www-data nc-app php occ upgrade

# 5. Исправить индексы БД
docker exec -u www-data nc-app php occ db:add-missing-indices

# 6. Выключить режим обслуживания
docker exec -u www-data nc-app php occ maintenance:mode --off

Резервные копии

Для полного бэкапа нужны два компонента: дамп базы данных и файлы пользователей.

Ручной бэкап
# Включить maintenance mode (для консистентности)
docker exec -u www-data nc-app php occ maintenance:mode --on

# Бэкап БД
docker exec nc-db pg_dump -U nextcloud nextcloud | gzip > ~/backup-db-$(date +%Y%m%d).sql.gz

# Бэкап файлов (Docker volume)
docker run --rm   -v nextcloud_nextcloud_data:/data:ro   -v ~/backups:/backup   alpine tar -czf /backup/nextcloud-files-$(date +%Y%m%d).tar.gz -C /data .

# Выключить maintenance mode
docker exec -u www-data nc-app php occ maintenance:mode --off

Правило 3-2-1

Бэкап только на том же VPS — не считается. Настройте копирование на внешнее хранилище через rclone (Backblaze B2, любой S3-совместимый) или периодически скачивайте архивы на локальный компьютер. Для автоматизации добавьте команды в crontab.

Частые вопросы

Нужен VPS для Nextcloud? Сравните провайдеров

Рейтинг VPS-провайдеров →

Смотрите также