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 Яндекс Диск
| Параметр | Nextcloud | Google 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 | ✅ Телемост |
| Объём | Ограничен диском VPS | 15 ГБ бесплатно | 10 ГБ бесплатно |
| Lock-in | ❌ Нет | ✅ Экосистема Google | ✅ Экосистема Яндекс |
Когда Google Drive выигрывает
Если вам нужна безотказная работа без администрирования сервера, глубокая интеграция с Gmail и встроенный Gemini AI — Google Drive проще. Nextcloud требует обслуживания: обновления, бэкапы, мониторинг. Это инвестиция времени.
3. Требования к серверу
Личное использование
- — 1–2 vCPU
- — 2 ГБ RAM
- — 20+ ГБ NVMe
- — 1–2 пользователя
Семья / небольшая команда
- — 2 vCPU
- — 4 ГБ RAM
- — 50+ ГБ NVMe
- — До 10 пользователей
С Nextcloud Office
- — 4 vCPU
- — 6+ ГБ RAM
- — 50+ ГБ NVMe
- — + OnlyOffice контейнер
Обязательны: публичный IP, домен (или поддомен), HTTPS — мобильные приложения Nextcloud не работают по чистому HTTP. Диск лучше NVMe: Nextcloud активно работает с миниатюрами и индексами.
4. Установка Docker
Если Docker ещё не установлен — официальный скрипт установит всё за одну команду.
curl -fsSL https://get.docker.com | sh
# Добавить в автозапуск
systemctl enable --now docker
# Проверить версию
docker --version
docker compose version5. 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:
DOMAIN=cloud.example.com
# PostgreSQL
DB_PASSWORD=замените_на_надёжный_пароль
# Redis
REDIS_PASSWORD=замените_на_надёжный_пароль
# Администратор Nextcloud
NEXTCLOUD_ADMIN_USER=admin
NEXTCLOUD_ADMIN_PASSWORD=замените_на_надёжный_парольШаг 3: 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
apt install nginx certbot python3-certbot-nginx -yКонфиг Nginx
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;
}
}ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
# Получить сертификат
certbot --nginx -d cloud.example.comCertbot добавит HTTPS-блок и настроит автообновление сертификата. Откройте https://cloud.example.com — должен открыться интерфейс Nextcloud.
7. Первый вход и проверка кэша
Войдите на https://cloud.example.com под учётными данными из .env. После входа перейдите в Настройки → Администрирование → Обзор и проверьте список предупреждений.
Проверить статус Redis и OPcache
# Статус кэша
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. Если нет — добавьте вручную:
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)
- Установите приложение Nextcloud из App Store или Google Play
- На стартовом экране введите адрес сервера:
https://cloud.example.com - Войдите под учётными данными администратора (или нового пользователя)
- Включите автозагрузку фото: Настройки → Автозагрузка → выбрать папки
Для синхронизации контактов и календарей на Android нужно приложение DAVx5(есть в F-Droid бесплатно и Google Play за небольшую плату). На iOS Calendar и Contacts поддерживают CalDAV/CardDAV из коробки — добавьте аккаунт в Настройки → Почта → Аккаунты → Другой.
Десктоп-клиент (Windows / macOS / Linux)
- Скачайте Nextcloud Desktop с nextcloud.com/install/
- При первом входе укажите адрес вашего сервера
- Выберите папки для синхронизации (можно синхронизировать частично)
Десктоп-клиент работает в системном трее и синхронизирует изменения в реальном времени. Поддерживает Windows 10+, macOS 12.0+, все основные дистрибутивы Linux.
WebDAV-доступ без клиента
Подключите Nextcloud как сетевой диск без установки клиента.
https://cloud.example.com/remote.php/dav/files/ВАШ_ЛОГИН/Windows: «Подключить сетевой диск» → Веб-папка. macOS: Finder → Перейти → Подключиться к серверу.
9. Полезные приложения
Приложения устанавливаются через интерфейс: Приложения → поиск по названию → Установить. Ниже — наиболее полезные из 500+ доступных.
| Приложение | Что делает | Аналог |
|---|---|---|
| Calendar | Общий CalDAV-календарь, повторяющиеся события | Google Calendar |
| Contacts | CardDAV-адресная книга, группы | Google Contacts |
| Talk | Зашифрованный чат, голос и видеозвонки | Google Meet |
| Memories | Галерея фото с таймлайном и картой | Google Photos |
| Deck | Kanban-доски для управления задачами | Trello |
| Notes | Заметки в Markdown с синхронизацией | Google Keep |
| Веб-почтовый клиент (несколько 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 обновляйте тег образа по одной версии за раз.
# 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.