Подключение Nextcloud к Storage Server: место, квоты и общий доступ
Nextcloud приносит пользователей, квоты и общий доступ, Storage Server приносит место. Вместе получается собственное облако, для которого достаточно небольшого сервера, а терабайты лежат в другом месте.
Nextcloud умеет всё, чего не умеет Storage Server: управлять пользователями, выделять каждому свой объём, открывать доступ к папкам, создавать ссылки с паролем и датой истечения и отдавать файлы в браузер по HTTPS. А дорогим Nextcloud делает как раз место, потому что оно лежит на NVMe-SSD сервера.
Вместе это даёт схему, которая и закрепилась на практике: небольшой сервер для Nextcloud, файлы на Storage Server. В этой статье разобраны оба способа настройки, объяснено, какой из них когда лучше, и названы подводные камни, которые встречаются каждый раз.
Почему эта связка так хорошо подходит
| Nextcloud даёт | Storage Server даёт |
|---|---|
| учётные записи с паролем и двухфакторной проверкой | место, от 1 до 20 ТБ |
| квоты для каждого пользователя | снимки как второй уровень защиты |
| ссылки общего доступа с паролем и сроком | размещение отдельно от сервера |
| отдачу файлов по HTTPS со входом по логину | кратно меньшую стоимость за терабайт |
| версии файлов и корзину | 100 субаккаунтов под разные задачи |
Решающий момент для многих проектов: Storage Server не знает квоты на субаккаунт. Субаккаунт остаётся в своём каталоге, но может занять там весь тариф. Nextcloud решает именно это, потому что там каждый пользователь получает жёсткий лимит.
Два способа, и какой из них лучше
Способ A: Nextcloud обращается к хранилищу сам, через встроенный драйвер SMB или SFTP. В операционную систему вмешиваться не нужно.
Способ B: вы подключаете хранилище в операционной системе как каталог и настраиваете в Nextcloud внешнее хранилище типа «Локальный» на этот каталог.
Берите способ B, если у вас есть права root. Обход через файловую систему заметно быстрее драйвера SFTP в Nextcloud, особенно на множестве мелких файлов, и он лучше переживает сбои сети. Способ A нужен тогда, когда в операционной системе вы ничего менять не можете или не хотите.
Подготовка: отдельный субаккаунт
В личном кабинете создайте субаккаунт только для Nextcloud, с собственным стартовым каталогом, например /nextcloud. Разрешите ему только тот протокол, которым вы действительно пользуетесь. Проверьте заодно в «Настройках доступа», что Внешняя доступность включена, иначе сервер до хранилища не доберётся.
В примерах используются такие значения, замените их на свои:
| Параметр | Пример значения |
|---|---|
| Имя узла | u123456.storage.kernelhost.net |
| Субаккаунт | u123456-sub1 |
| Общий ресурс (SMB) | backup |
| Порт SMB | 445 |
| Порт SFTP | 23 |
Способ B: подключить и использовать как локальное хранилище
Сначала подключение. На Debian и Ubuntu:
apt install -y cifs-utils
mkdir -p /mnt/storage
printf 'username=u123456-sub1\npassword=ВАШ_ПАРОЛЬ\n' > /etc/samba/storage.cred
chmod 600 /etc/samba/storage.cred
Затем запись в /etc/fstab, чтобы подключение переживало перезагрузку:
//u123456.storage.kernelhost.net/backup /mnt/storage cifs credentials=/etc/samba/storage.cred,uid=www-data,gid=www-data,file_mode=0660,dir_mode=0770,seal,_netdev,nofail 0 0
Три важные опции: uid=www-data даёт веб-серверу право на запись, seal шифрует передачу средствами SMB 3, а _netdev вместе с nofail не дают серверу зависнуть при загрузке, если хранилище в этот момент не отвечает.
mount -a
sudo -u www-data touch /mnt/storage/test && echo "Доступ на запись в порядке"
После этого включите в Nextcloud приложение «External storage support» и впишите хранилище, либо в интерфейсе в разделе Администрирование, Внешние хранилища, либо в командной строке:
sudo -u www-data php occ app:enable files_external
sudo -u www-data php occ files_external:create Данные local null::null -c datadir=/mnt/storage
sudo -u www-data php occ files_external:list
Папка «Данные» теперь появляется у тех пользователей, которым вы её откроете. Доступ вы задаёте для каждого пользователя или для группы, чтобы не каждый видел всё.
Способ A: внешнее хранилище прямо в Nextcloud
Без прав root обойтись можно и без подключения в системе. Для SMB понадобится соответствующее расширение PHP:
apt install -y smbclient php-smbclient
systemctl restart php8.3-fpm
Потом в разделе Администрирование, Внешние хранилища создайте запись:
| Поле | Значение |
|---|---|
| Имя папки | Данные |
| Внешнее хранилище | SMB / CIFS |
| Хост | u123456.storage.kernelhost.net |
| Общий ресурс | backup |
| Удалённый подкаталог | nextcloud |
| Имя пользователя | u123456-sub1 |
| Пароль | пароль субаккаунта |
Для SFTP выберите вместо этого тип «SFTP», укажите в поле «Хост» u123456.storage.kernelhost.net, а в поле порта 23. Это самая частая причина ошибок на этом пути: Nextcloud предлагает 22, а наше хранилище слушает 23.
Как выдать квоты пользователям
Теперь часть, которая оправдывает всю схему. В разделе Администрирование, Пользователи вы задаёте объём для каждой учётной записи, например 50 ГБ. Или в командной строке:
sudo -u www-data php occ user:setting fotograf1 files quota "50 GB"
Nextcloud засчитывает в эту квоту версии файлов и корзину. Так и должно быть, но это часто удивляет: кто получил 50 ГБ и загрузил 50 ГБ, из-за старых версий быстро занимает больше, чем рассчитывал. Для учётных записей, которые больше заменяют файлы, чем добавляют, стоит ограничить срок хранения версий.
Ссылки общего доступа для своего сайта
Для Nextcloud внешнее хранилище это такая же папка, как любая другая, поэтому общий доступ работает без изменений. Ссылка с паролем и датой истечения создаётся в три щелчка, и файл при этом отдаёт Nextcloud, а не хранилище напрямую. Ваши данные доступа к хранилищу, таким образом, никогда не покидают сервер.
Это как раз тот кусок, которого Storage Server сам по себе не даёт. Кто держит сайт с зоной загрузок, получает управление пользователями, права и отдачу файлов в одном месте, причём программировать ничего не нужно. Как выглядит вариант без Nextcloud, описано в статье Storage Server для своего сайта.
Четыре подводных камня, которые встречаются каждый раз
- Каталогу данных на хранилище не место. Технически возможно, на практике рискованно: Nextcloud пишет туда ещё и файлы блокировок и промежуточные состояния, и короткий сбой сети парализует весь экземпляр. Как внешнее хранилище сбой затрагивает только одну папку.
- База данных остаётся локальной. Всегда. На хранилище место файлам, и ничему больше.
- Настройте Redis. Без кэша для блокировок файлов Nextcloud с внешним хранилищем заметно замедляется, потому что каждая блокировка идёт через базу данных.
- Порт 23, а не 22. Для SFTP Nextcloud предлагает 22. Наше хранилище слушает 23, а сообщение об ошибке подсказывает мало.
Какой сервер и какой тариф
Для самого Nextcloud достаточно небольшой машины. Файлы ведь лежат в другом месте, сервер только управляет: от нескольких человек до нескольких десятков активных пользователей хватает от 4 до 8 ГБ ОЗУ, если работает Redis и настроено фоновое задание. Инструкция по установке есть в статье Установка Nextcloud на собственном сервере.
С хранилищем выбор зависит от нужного места:
| Тариф | Место | Снимки | Цена |
|---|---|---|---|
| Storage-1 | 1 ТБ | 10 плюс 10 автоматических | 9,99 EUR |
| Storage-2 | 5 ТБ | 20 плюс 20 автоматических | 29,99 EUR |
| Storage-3 | 10 ТБ | 30 плюс 30 автоматических | 39,99 EUR |
| Storage-4 | 20 ТБ | 40 плюс 40 автоматических | 69,99 EUR |
Все Storage Server стоят в Германии, говорят на SMB, SFTP, WebDAV и не только, допускают до 100 субаккаунтов и приносят снимки с собой. Без платы за установку, PrePaid, без минимального срока. Растёт потребность в месте, вы переходите на тариф побольше, не трогая данные.
Частые вопросы
Почему не взять просто большой сервер с большим диском?
Что выбрать, SMB или SFTP?
Можно ли выделить каждому пользователю свой объём?
Можно ли положить данные прямо на хранилище, а не подключать его как внешнее?
Работают ли ссылки общего доступа для файлов на Storage Server?
Насколько это быстро?
Что будет, если хранилище на короткое время недоступно?
Нужна ли база данных на Storage Server?
Сколько пользователей выдержит небольшой сервер?
Сколько стоит такая связка?
2026 KernelHost GmbH. Все права защищены. Эта инструкция охраняется авторским правом. Публикация на других сайтах, в том числе частично или в изменённом виде, без нашего письменного согласия не разрешается. Цитирование с указанием источника и активной ссылкой мы приветствуем.

