Nextcloud на своём сервере

файлы · LAMP · бэкапы

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:

Храните бэкапы не на том же диске и желательно не на том же сервере. Восстановление проверяйте хотя бы раз в несколько месяцев — многие узнают, что бэкап битый, только когда уже поздно.

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 под ключ — с доменом, сертификатом, базовой настройкой бэкапов и ограничением доступа — это обычная задача. Главное заранее понимать объём данных и кто будет им пользоваться.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

После настройки проверяю автозапуск, доступность логов одной командой и наличие короткой заметки с основными командами. Бэкапы, если используются, должны восстанавливаться. Обновления делаю при возможности проверить результат. Минимальная рабочая конфигурация обычно достаточна для небольших задач и проще в поддержке.

← Все статьи