Nextcloud — self-hosted платформа для зберігання файлів, календарів і контактів, яку можна розгорнути на власному VDS як альтернативу хмарним сервісам типу Google Drive. Усі дані залишаються на сервері, який орендує і адмініструє сам власник, а не стороння компанія.
Навіщо тримати Nextcloud на власному VDS
Головна причина перенесення файлової хмари на свій сервер — контроль над тим, де фізично лежать дані, і відсутність обмежень обсягу зберігання стороннім тарифом. Доступний обсяг диска обмежений лише диском самого VDS, а не планом підписки.
Nextcloud підходить для команди або родини, якій потрібні спільні файли, календар і контакти в одному місці. Для одного користувача, якому достатньо синхронізації пари папок, розгортати окремий сервер надмірно — простіше обійтися готовим хмарним сервісом.
Що потрібно на сервері для Nextcloud
Nextcloud розгортається через Docker — саме встановлення Docker на VDS описане у статті про налаштування Docker на VPS. Стандартний набір із контейнерів веб-сервера, PHP і бази даних піднімається однією командою Docker Compose.
За пам'яттю на кількох активних користувачів із увімкненими застосунками календаря і заміток комфортно працювати від 2 до 4 ГБ. Диск залежить лише від обсягу файлів, які будуть зберігатися, і його потрібно рахувати окремо під конкретне завдання.
Порівняння Nextcloud із хмарними сховищами
За базовими функціями зберігання файлів різниця між Nextcloud і готовою хмарою невелика, але є у тому, хто відповідає за інфраструктуру.
| Параметр | Хмарний сервіс | Nextcloud на власному VDS |
|---|---|---|
| Де зберігаються дані | на серверах провайдера хмари | на власному сервері |
| Ліміт обсягу зберігання | залежить від тарифу провайдера | залежить від диска VDS |
| Оновлення і резервні копії | робить провайдер | робить адміністратор сервера |
| Застосунки (календар, замітки, чат) | окремі сервіси | модулі всередині однієї системи |
Встановлення і налаштування домену
Файли і налаштування Nextcloud описуються в одному docker-compose.yml разом із контейнером бази даних.
# Запуск Nextcloud і MariaDB через Docker Compose
docker compose up -d
# За замовчуванням Nextcloud слухає порт 80, домен підключається через reverse proxy
Після запуску контейнерів залишається підключити домен і видати SSL-сертифікат, щоб відкривати Nextcloud за HTTPS на порту 443 — як це зробити через Nginx і Certbot, описано у статті про встановлення SSL на Nginx.
Що робити, якщо Nextcloud працює повільно або не відкривається
Більшість проблем із продуктивністю і доступністю зводиться до кількох перевірок.
- Перевірити системний журнал PHP — ліміти
upload_max_filesize(за замовчуванням 2 MB) іpost_max_size(за замовчуванням 8 MB) часто потрібно підняти вручну для завантаження великих файлів. - Переконатися, що фонові завдання запускаються системним cron кожні 5 хвилин, а не через веб-крон, який працює лише при відкритій сторінці.
- Перевірити вільне місце на диску — Nextcloud перестає приймати нові файли, коли диск заповнений майже повністю.
- Подивитися журнал застосунку в розділі «Адміністрування» — там видно помилки конкретних модулів.
- Налаштувати резервне копіювання даних у зовнішнє сховище — як підключити його через rclone, описано у статті про резервні копії VPS у хмарні сховища.
Часті питання
Чи потрібен окремий сервер лише для Nextcloud?
Ні, Nextcloud можна розмістити на тому самому VDS, де вже працюють інші контейнери, якщо ресурсів сервера достатньо і порти не конфліктують з іншими сервісами.
Що станеться з файлами, якщо VDS вийде з ладу?
Без окремого резервного копіювання файли будуть втрачені разом із диском сервера — саме тому резервну копію варто зберігати не на тому самому VDS, а в окремому сховищі.
Чи можна підключити до Nextcloud мобільні застосунки?
Так, у Nextcloud є офіційні застосунки для синхронізації файлів, календаря і контактів, які підключаються до сервера за тією самою адресою, що і веб-інтерфейс.