Nextcloud на своём сервере
Nextcloud — одна из немногих вещей, которые реально заменяют Google Drive или Dropbox для небольшой команды или личного использования, не превращаясь при этом в бесконечную возню. Это не «поставил и забыл навсегда», но при правильной начальной настройке и регулярных бэкапах работает стабильно годами. Ниже — то, как я обычно поднимаю его на Ubuntu и на что обращаю внимание, чтобы потом не чинить в панике.
Ресурсы и ожидания
Минимально рабочая конфигурация — 2 ГБ RAM и 2 vCPU. На 1 ГБ Nextcloud будет запускаться, но веб-интерфейс станет заметно тормозным, а фоновые задачи (превью, индексация, антивирус если включите) будут страдать. Для 5–10 активных пользователей комфортно 4 ГБ. Диск зависит от объёма данных: сама установка занимает мало, основное — пользовательские файлы. SSD желателен, особенно если много мелких файлов.
Важный момент: Nextcloud не любит, когда на сервере одновременно крутится ещё куча тяжёлых сервисов. Если планируете держать там же базы, ботов и мониторинг — закладывайте запас по памяти.
Базовая установка на Ubuntu
Я предпочитаю классический стек: Apache или Nginx + MariaDB + PHP. Docker тоже возможен и часто проще для обновлений, но нативная установка даёт больше контроля и меньше сюрпризов с правами. Ниже — вариант с Apache.
apt update
apt install -y apache2 mariadb-server \
php php-mysql php-gd php-curl php-zip php-xml php-mbstring \
php-intl php-bcmath php-gmp php-imagick php-apcu libapache2-mod-php
Создаём базу и пользователя:
mysql -u root
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY 'очень_сильный_пароль';
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Скачиваем Nextcloud (берите актуальную версию с официального сайта):
cd /var/www
wget https://download.nextcloud.com/server/releases/latest.tar.bz2
tar -xjf latest.tar.bz2
chown -R www-data:www-data nextcloud
chmod -R 750 nextcloud
Настраиваем виртуальный хост. Пример для Apache:
ServerName cloud.example.com
DocumentRoot /var/www/nextcloud
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
Включаем необходимые модули и перезапускаем:
a2enmod rewrite headers env dir mime
systemctl restart apache2
Дальше заходите по IP или домену, указываете данные базы, создаёте админа. После этого сразу ставьте HTTPS через certbot — Nextcloud без шифрования использовать не стоит.
Что настроить сразу после установки
Лимиты загрузки. По умолчанию PHP режет большие файлы. В /etc/php/8.x/apache2/php.ini (версия может отличаться):
upload_max_filesize = 2G
post_max_size = 2G
memory_limit = 512M
max_execution_time = 3600
В Nextcloud в config/config.php можно дополнительно поднять max_chunk_size. После правок — перезапуск Apache.
Крон. Nextcloud рекомендует системный cron вместо AJAX. Добавляем в crontab пользователя www-data:
*/5 * * * * php -f /var/www/nextcloud/cron.php
И в конфиге указываем 'cron' => 'cron'. Без этого фоновые задачи (уведомления, превью, очистка) работают плохо.
Кэш. APCu уже ставили. В config.php:
'memcache.local' => '\\OC\\Memcache\\APCu',
Это заметно ускоряет интерфейс.
Доверенные домены и прокси. Если сидите за reverse proxy или у вас несколько доменов — пропишите их в trusted_domains и при необходимости overwriteprotocol, overwritehost.
Бэкапы — самое важное
Без бэкапов Nextcloud бессмысленен. Нужно сохранять две вещи: базу данных и директорию данных (обычно /var/www/nextcloud/data или отдельный путь, который вы указали). Конфиг тоже стоит бэкапить, но он маленький.
Простой вариант — скрипт по cron:
- mysqldump базы
- rsync или tar директории data
- хранение нескольких версий (например, 7 ежедневных + 4 еженедельных)
Храните бэкапы не на том же диске и желательно не на том же сервере. Восстановление проверяйте хотя бы раз в несколько месяцев — многие узнают, что бэкап битый, только когда уже поздно.
Server-side encryption в Nextcloud существует, но я его почти никогда не включаю на небольших инсталляциях. Восстановление после сбоя с включённым шифрованием превращается в отдельный квест. Если данные чувствительные — лучше шифровать диск на уровне LUKS или просто контролировать физический доступ к серверу.
Типичные проблемы
Ошибки прав. Почти всегда www-data не владеет файлами или не может писать в data. chown -R www-data:www-data и проверка occ команд от этого пользователя решают большинство случаев.
Белый экран или 500 после обновления. Смотрите логи Apache и nextcloud/data/nextcloud.log. Часто виноваты несовместимые приложения или нехватка памяти PHP.
Медленная работа с большим количеством файлов. Включайте превью выборочно, не индексируйте всё подряд, следите за размером базы. Для очень больших объёмов иногда имеет смысл вынести data на отдельный диск.
Проблемы с внешним доступом. Проверьте trusted_domains, сертификат, и что reverse proxy правильно передаёт заголовки (X-Forwarded-For, X-Forwarded-Proto).
Обновления
Nextcloud обновляется относительно безболезненно, если не ставить мажорные версии в первый день и делать бэкап перед обновлением. Веб-интерфейс умеет обновляться сам, но я предпочитаю через occ upgrade после скачивания новой версии — так больше контроля. Приложения тоже стоит обновлять, но проверять совместимость.
На практике стабильная схема: раз в месяц смотреть уведомления, бэкап, обновление в нерабочее время, проверка основных функций.
Когда Nextcloud оправдан
Небольшая команда (до 10–15 человек), личные и рабочие документы, фото, которые не хочется отдавать большому облаку, синхронизация между устройствами через официальные клиенты. Для публичной раздачи больших файлов или высоконагруженного хранилища лучше смотреть в сторону MinIO, SeaweedFS или просто nginx с авторизацией. Для одного человека иногда хватает Syncthing, но Nextcloud удобнее, когда нужен веб-доступ и шаринг по ссылкам.
Если нужно поднять Nextcloud под ключ — с доменом, сертификатом, базовой настройкой бэкапов и ограничением доступа — это обычная задача. Главное заранее понимать объём данных и кто будет им пользоваться.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.
После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.