Nextcloud на VPS: своё облако для файлов и команд
Полный гайд Nextcloud на VPS: Docker, PostgreSQL, Redis, OnlyOffice, бэкапы и hardening. Self-hosted альтернатива Google Drive и Dropbox.
Краткий ответ: Nextcloud — self-hosted облако: файлы, календарь, контакты, совместный доступ, OnlyOffice. На VPS 2–4 GB: Docker Compose + PostgreSQL + Redis + SSL + регулярные бэкапы.
Если данные клиентов, исходники или документы команды не должны лежать у Google/Microsoft — Nextcloud на VPS даёт контроль, GDPR-friendly setup и предсказуемую стоимость.
Зачем Nextcloud в 2026
| Сценарий | Почему Nextcloud |
|---|---|
| Фриланс / малый бизнес | Общие папки без абонплаты за TB |
| Dev-команда | Share конфигов, скриптов, runbook’ов |
| Семья | Фото/документы без iCloud lock-in |
| Compliance | Данные в вашем регионе (EU VPS) |
Альтернатива «просто MinIO S3» — Nextcloud даёт UI, ACL, клиенты desktop/mobile из коробки.
Архитектура production
Клиенты (WebDAV, app, sync)
↓
Nginx + SSL
↓
Nextcloud (PHP-FPM / Apache in container)
↓
PostgreSQL + Redis + /data volume
- PostgreSQL — метаданные (не SQLite в production)
- Redis — file locking, transactional memcache
- Object storage (опционально) — MinIO backend для больших объёмов
Требования к VPS
| Нагрузка | RAM | Диск |
|---|---|---|
| 1–5 пользователей | 2 GB | 40 GB SSD |
| 10–30 пользователей | 4 GB | 100 GB+ SSD |
| 50+ | 8 GB + tuning | NVMe, отдельный DB |
CPU: 2 vCPU минимум. Не ставьте Nextcloud на 512 MB — будет боль.
Docker Compose (production-ready)
services:
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: CHANGE_ME
volumes:
- ./postgres:/var/lib/postgresql/data
redis:
image: redis:7-alpine
restart: unless-stopped
app:
image: nextcloud:29-apache
restart: unless-stopped
ports:
- "127.0.0.1:8080:80"
environment:
POSTGRES_HOST: db
POSTGRES_DB: nextcloud
POSTGRES_USER: nextcloud
POSTGRES_PASSWORD: CHANGE_ME
REDIS_HOST: redis
NEXTCLOUD_TRUSTED_DOMAINS: cloud.example.com
OVERWRITEPROTOCOL: https
volumes:
- ./nextcloud:/var/www/html
depends_on:
- db
- redis
Reverse proxy — Nginx или Traefik.
Первоначальная настройка
- Откройте
https://cloud.example.com - Создайте admin (сильный пароль + 2FA позже)
- Settings → Overview — устраните все warnings (HTTPS, memory, cron)
- Включите Server-side encryption только если понимаете recovery (ключи!)
Cron и background jobs
Nextcloud требует cron каждые 5 минут:
docker compose exec -u www-data app php occ background:cron
Crontab на хосте:
*/5 * * * * cd /opt/nextcloud && docker compose exec -T -u www-data app php occ background:cron
Без cron — медленный UI и «зависшие» uploads.
OnlyOffice / Collabora
Редактирование docx/xlsx в браузере:
onlyoffice:
image: onlyoffice/documentserver
restart: unless-stopped
ports:
- "127.0.0.1:9980:80"
В Nextcloud: Apps → OnlyOffice → URL document server. RAM +1 GB минимум.
Desktop и mobile sync
- Windows/macOS/Linux — официальный Nextcloud client
- Android/iOS — Nextcloud app
- WebDAV —
https://cloud.example.com/remote.php/dav
Для больших файлов увеличьте лимиты Nginx:
client_max_body_size 10G;
proxy_read_timeout 3600;
SSO через Authentik
Если уже есть Authentik:
- OIDC provider в Authentik
- Nextcloud app «OpenID Connect Login»
- Redirect URI
https://cloud.example.com/apps/user_oidc/code
Один логин для wiki, git, cloud.
Бэкапы (обязательно)
3-2-1 правило — гайд:
# PostgreSQL
docker compose exec -T db pg_dump -U nextcloud nextcloud > nc-db-$(date +%F).sql
# Data
tar czf nc-data-$(date +%F).tar.gz ./nextcloud
Offsite — Restic → MinIO или S3.
Тестируйте restore раз в квартал. Backup без restore — иллюзия.
Hardening
- nftables/UFW — только 443 снаружи
- Fail2ban на Nginx auth
- Brute-force protection в Nextcloud settings
- Admin panel — IP allowlist или Tailscale
- Обновления:
docker compose pull && docker compose up -d
Типичные проблемы
| Симптом | Решение |
|---|---|
| «Maintenance mode» | occ maintenance:mode --off |
| Медленный список файлов | Redis + PostgreSQL, не SQLite |
| Upload 413 | client_max_body_size в Nginx |
| Trusted domain error | occ config:system:set trusted_domains |
| High CPU | cron не работает или antivirus scan |
docker compose exec -u www-data app php occ status
docker compose exec -u www-data app php occ check
Мониторинг
- Disk usage:
df -h, алерт при 85% - Uptime Kuma — HTTP check
- Prometheus node_exporter — RAM/disk
- Логи:
docker compose logs -f app
Стоимость vs SaaS
Dropbox Business 5 TB — десятки €/мес. VPS 4 GB + 200 GB NVMe — фиксированная цена, данные ваши. Окупается от ~5 активных пользователей.
VPS в EU — StormNet Cloud. Почасовая аренда для теста — server-na-chas.
Итог
Nextcloud на VPS — полноценное облако под вашим контролем. Docker + PostgreSQL + Redis + SSL + cron + бэкапы = production baseline. OnlyOffice и SSO — следующий уровень для команды.
Дальше: BookStack wiki для доков, Gitea для кода, Plausible для метрик сайта.
Рекомендуем прочитать
Частые вопросы
Nextcloud или MinIO для файлов на VPS?
Nextcloud — UI, sync-клиенты, sharing для людей. MinIO — S3 API для приложений. Часто используют оба: Nextcloud + MinIO backend.
Сколько RAM нужно Nextcloud на VPS?
Минимум 2 GB для малой команды, 4 GB для OnlyOffice и 10+ пользователей. SQLite только для тестов.






