Лучшие альтернативы Nextcloud для self-hosting
Обзор легких альтернатив Nextcloud для синхронизации файлов, объектного хранилища и SFTP. Узнайте, как выбрать решение под ваши задачи и оценить реальные затраты на миграцию данных.
Какие альтернативы Nextcloud стоит размещать на собственном сервере?
Альтернативы Nextcloud, которые стоит использовать, — это те, что исключают функции, которыми вы никогда не пользовались. Nextcloud объединяет файловый сервер, календарь, адресную книгу, офисный пакет и платформу приложений в одном PHP-приложении, и вы платите за всё это при каждой загрузке страницы. Поэтому выбирайте замену, исходя из одной задачи, которая вам действительно нужна, а затем оцените стоимость переноса уже имеющихся файлов.
В этом руководстве варианты отсортированы по задачам: только синхронизация, синхронизация с более быстрым сервером, объектное хранилище с клиентским приложением или простой удаленный доступ к файлам. В каждом разделе указаны требования к серверу на небольшом VPS (virtual private server) и то, что произойдет с вашей текущей структурой папок. Если вы переходите с Dropbox или Google Drive, а не с уже установленного экземпляра Nextcloud, более широкий обзор альтернатив Dropbox для self-hosting лучше подойдет для начала.
Почему Nextcloud работает медленно на небольшом VPS
У низкой производительности есть конкретные причины. Их понимание поможет определить, решит ли проблему переезд на другой сервер.
Каждая загрузка страницы занимает PHP-воркер. Системные требования Nextcloud указывают объем памяти на один процесс: минимум 128 MB, рекомендуется 512 MB (по состоянию на август 2026 года). Это не общий объем памяти сервера. Пул из десяти воркеров — это существенная нагрузка для тарифа с 2 GB RAM, поэтому администраторы уменьшают pm.max_children в конфигурации пула PHP-FPM, после чего запросы выстраиваются в очередь к доступным воркерам. Интерфейс кажется медленным, хотя диск простаивает.
База данных растет пропорционально количеству файлов, а не их объему. Таблица кэша файлов, oc_filecache с префиксом по умолчанию, содержит по одной строке для каждого файла и папки во всех хранилищах, известных серверу. Фотоархив из 300 000 мелких файлов создает большую таблицу; 300 GB видео в 400 файлах — маленькую. Функции общего доступа, поиска и сканирования файлов обращаются к этой таблице.
sudo mysql nextcloud -e 'SELECT COUNT(*) FROM oc_filecache;'Количество записей, исчисляемое миллионами, объясняет медленное отображение списка файлов лучше, чем любой тест производительности диска. Если ваш экземпляр использует другой префикс таблиц или PostgreSQL, скорректируйте запрос.
Фоновые задачи конкурируют с веб-интерфейсом. Руководство Nextcloud рекомендует добавить в системный cron задачу, запускающую cron.php каждые пять минут. Генерация превью и сканирование файлов выполняются в это время на том же процессоре, который обслуживает ваш браузер.
Крупные обновления включают миграцию базы данных. Экземпляр переходит в режим обслуживания и отвечает на все запросы кодом Nextcloud is in maintenance mode, please try again later до завершения миграции. На небольшом VPS с большой таблицей oc_filecache этот период ожидания становится заметным.
Определитесь с выбором инструментов
- Синхронизация одной папки между вашими устройствами без веб-интерфейса: Syncthing.
- Синхронизация для группы пользователей с веб-интерфейсом, мобильными клиентами и общими ссылками: Seafile.
- Хранение больших объемов данных с низкими затратами и доступом через скрипты или инструменты резервного копирования: объектное хранилище и соответствующий клиент.
- Удаленное чтение и запись файлов без установки дополнительного серверного ПО: SFTP или WebDAV.
- Совместное редактирование документов в браузере или общий календарь: используйте Nextcloud или будьте готовы поддерживать два отдельных сервиса.
Syncthing: синхронизация файлов без серверного приложения
Syncthing хранит ваши файлы как обычные файлы. Здесь нет базы данных контента и веб-интерфейса, который обслуживает ваши документы. Каждое устройство, подключающееся к папке, содержит полную копию, а Syncthing поддерживает идентичность этих копий.
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthingsudo systemctl enable --now syncthing@$USER
sudo ss -lntp | grep 8384Строка, отображающая 127.0.0.1:8384, означает, что веб-интерфейс запущен и привязан только к localhost, что и требуется на публичном VPS. Получите к нему доступ через SSH-туннель: ssh -L 8384:127.0.0.1:8384 you@your-vps, затем откройте http://127.0.0.1:8384 на своем ноутбуке. Отсутствие слушающего процесса на порту 8384 означает, что сервис не смог запуститься, а journalctl -u syncthing@$USER -n 50 объясняет причину.
Ресурсы. Syncthing не публикует минимальные требования к оперативной памяти. Потребление ресурсов зависит от количества индексируемых файлов, а не от их общего объема, так как программа хранит запись индекса для каждого файла в каждой общей папке. Первое сканирование большой папки нагружает CPU: Syncthing вычисляет хеш для каждого файла, прежде чем сможет что-либо сравнить. Ожидайте, что первый проход займет некоторое время на общем vCPU, а потребление памяти будет расти пропорционально количеству файлов, а не гигабайтам.
Диск — основной расход. Здесь нет серверного хранения, так как Syncthing не является сервером. Папка объемом 200 GB, общая для VPS и ноутбука, требует 200 GB на обоих устройствах. Это противоположность Nextcloud, где сервер хранит всё, а клиенты выбирают, что синхронизировать. Используйте выборочную синхронизацию папок и receive only папку на VPS, если VPS предназначен для резервного копирования, а не для полноценного равноправного участия.
Миграция — причина выбора. Укажите Syncthing на уже существующее дерево каталогов. Здесь нет импорта, загрузки или конвертации. Добавьте папку на VPS, добавьте её на ноутбуке с тем же идентификатором папки (folder ID) и позвольте обеим сторонам синхронизироваться. Если при первом контакте один и тот же файл отличается на разных сторонах, Syncthing сохранит оба, переименовав один из них в filename.sync-conflict-20260809-142530-ABCD123.txt. Появление таких файлов при первой синхронизации — это нормально, а не ошибка.
От чего вы отказываетесь. Нет учетных записей, нет ссылок для общего доступа, которыми можно поделиться с другими людьми, и нет способа просматривать файлы через браузер на телефоне. Оригинальное приложение для Android больше не поддерживается самим проектом, его развивает форк сообщества, что важно, если мобильный доступ является приоритетом. Прямое сравнение Syncthing и Nextcloud подробно описывает все функциональные различия.
Seafile: быстрая синхронизация на облегченном сервере
Seafile разделяет нагрузку на две части. Python-приложение Seahub отвечает за интерфейс, а отдельный процесс на C обрабатывает трафик синхронизации. Передача файлов не проходит через веб-приложение, поэтому загрузка больших объемов данных остается быстрой, даже если кто-то активно работает с интерфейсом. Версия 13.0 была выпущена 5 января 2026 года.
sudo mkdir -p /opt/seafile
cd /opt/seafile
sudo wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
sudo wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/caddy.ymlОтредактируйте .env перед началом любых действий. В нем задаются SEAFILE_SERVER_HOSTNAME, INIT_SEAFILE_ADMIN_EMAIL, INIT_SEAFILE_ADMIN_PASSWORD, SEAFILE_MYSQL_DB_PASSWORD и JWT_PRIVATE_KEY, который должен представлять собой случайную строку длиной не менее 32 символов. Этот же файл указывает compose, какие из загруженных YAML-файлов следует использовать, чтобы все четыре загрузки работали как единый стек.
cd /opt/seafile
sudo docker compose up -d
sudo docker compose psКаждый контейнер должен находиться в состоянии выполнения. Если контейнер постоянно перезапускается, это почти всегда означает отсутствие значения в .env, а sudo docker compose logs seafile указывает, какой именно параметр отсутствует.
Ресурсы. Согласно документации Seafile, по состоянию на август 2026 года требуется не менее 2 ГБ оперативной памяти и 2-ядерный процессор с частотой выше 2 ГГц. Рассматривайте эти требования как минимум для всего стека, так как развертывание через Docker также запускает MariaDB, обратный прокси-сервер Caddy и редактор SeaDoc. Выделите 4 ГБ, если системой пользуются более одного-двух человек, либо исключите необязательные контейнеры.
Нюанс миграции заключается в формате хранения. Seafile не хранит ваши файлы в исходном виде. Он разбивает каждый файл на блоки в директории /opt/seafile-data и записывает структуру дерева в базу данных. Вы не можете просто указать Seafile на существующую папку, чтобы она отобразилась как библиотека, поэтому переезд означает полную загрузку всех ваших данных. Из-за такой архитектуры вы не сможете извлечь данные с помощью cp: восстановление выполняется через сервер, seaf-fsck для проверки целостности или через монтирование в режиме только для чтения seaf-fuse.
У rclone есть встроенный бэкенд для Seafile, который превращает процесс загрузки в одну возобновляемую команду вместо долгого перетаскивания файлов через браузер.
rclone config
rclone copy /srv/files seafile:MyLibrary --progressВ документации rclone указано, что протестирована работа с Seafile версий от 6.x до 9.x, поэтому сначала запустите его для одной небольшой папки и проверьте результат, прежде чем передавать терабайты данных.
Зашифрованные библиотеки — это функция, ради которой пользователи переходят на эту платформу. Пароль устанавливается на клиенте, а сервер хранит блоки, которые он не может прочитать. Важное предостережение: предварительный просмотр файла из зашифрованной библиотеки в браузере отправляет пароль на сервер для текущей сессии, поэтому просмотр в браузере и хранение с нулевым разглашением (zero-knowledge) не могут быть доступны одновременно. Сравнение Seafile и Nextcloud охватывает остальные различия в функциональности.
Объектное хранилище с клиентом синхронизации
Если ваша цель — дешевое хранение больших объемов данных с доступом из скриптов, разверните S3-совместимое объектное хранилище, а синхронизацию вынесите в отдельный инструмент. Вы получите надежность, версионность и протокол, который поддерживает любой инструмент резервного копирования. Вы не получите учетных записей пользователей в привычном для файлового сервера смысле или удобного файлового менеджера. В Self-hosted object storage with MinIO описана настройка серверной части.
rclone copy /srv/files s3remote:mybucket --progress
rclone check /srv/files s3remote:mybucketrclone check сравнивает обе стороны по размеру и хешу, выводя количество различающихся файлов. Любое значение, отличное от нуля, означает, что копия неполная, поэтому перед удалением исходных данных запустите copy еще раз. Учтите два момента: в объектном хранилище нет директорий, только префиксы ключей, поэтому пустые папки не сохраняются при копировании; увеличение --transfers вместе с размером чанка S3 приводит к росту потребления оперативной памяти в rclone, поэтому на VPS с 1 GB памяти оставьте оба параметра по умолчанию.
Использование обычного WebDAV или SFTP для удаленного доступа к файлам
Самая дешевая замена — это часто отсутствие каких-либо новых компонентов. Если на вашем VPS запущен OpenSSH, у вас уже есть файловый сервер. SFTP не требует дополнительного демона, базы данных, PHP или обновлений, которые могут привести к сбою в выходной день.
sftp you@your-vps
rclone mount sftpremote: ~/vps --vfs-cache-mode writesДля клиентов, поддерживающих протокол WebDAV, включая большинство файловых менеджеров на смартфонах, rclone может предоставлять доступ к тому же дереву каталогов.
sudo apt install apache2-utils
sudo htpasswd -c /etc/rclone/htpasswd you
rclone serve webdav --addr 127.0.0.1:8080 --htpasswd /etc/rclone/htpasswd /srv/filesПривяжите его к 127.0.0.1 и установите перед ним обратный прокси с TLS (transport layer security). Базовая аутентификация WebDAV отправляет пароль с каждым запросом, поэтому использование обычного HTTP в данном случае означает передачу пароля множество раз в минуту. Стоимость миграции равна нулю, так как файлы не перемещаются. Недостаток заключается в отсутствии синхронизации и офлайн-копий: при разрыве соединения файлы становятся недоступны для клиента до восстановления связи.
Чем заменить календари, контакты и редактирование документов
Отказ от Nextcloud требует определенных жертв, и важно понимать, каких именно. Календари и контакты работают по протоколам CalDAV и CardDAV (синхронизация календарей и контактов по HTTP), и Radicale является компактной заменой. Он хранит каждую коллекцию в виде файлов на диске и потребляет десятки мегабайт оперативной памяти.
sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232Пакет поставляет /usr/lib/systemd/system/radicale.service, а его конфигурация по умолчанию находится в /etc/radicale/config; сервис слушает порт localhost:5232. У Radicale нет интерфейса для редактирования событий, поэтому вы подключаете к нему телефон или настольный клиент и вносите изменения там.
Редактирование документов в браузере заменить сложнее. OnlyOffice Docs и Collabora Online — это движки для редактирования, а не хранилища: каждому из них требуется хост-приложение, которое хранит файлы и передает их на обработку. Если вы убираете Nextcloud, вам потребуется другой хост, например Seafile с собственным редактором SeaDoc. Сравнение OnlyOffice и Collabora поможет выбрать движок, когда вы определитесь с хостом для него.
Оставайтесь на Nextcloud, если верно хотя бы одно из следующих утверждений
- Несколько человек используют один календарь и одну адресную книгу в рамках тех же учетных записей, что и файлы.
- Вы редактируете офисные документы в браузере одновременно с другими пользователями в одном и том же файле.
- Вам требуются ссылки для общего доступа к отдельным файлам с ограничением по сроку действия и паролем, а также групповые права доступа.
- Ваши пользователи не обладают техническими навыками, и мобильные приложения — это основной инструмент их работы.
Для таких задач не существует более легкого решения, которое выполняло бы все эти функции, поэтому честным подходом будет исправление текущей установки, а не отказ от нее. Большинство медленно работающих экземпляров используют стандартный пул PHP-FPM без настроенного кэша памяти, о чем предупреждает страница администратора Nextcloud. Ограничение количества отслеживаемых файлов помогает больше, чем любое другое изменение, так как именно таблица файлового кэша разрастается со временем. В руководстве Установка Nextcloud на VPS с использованием Docker, TLS и резервным копированием описан способ настройки, позволяющий избежать большинства подобных проблем.
Реальная стоимость миграции: разбор вариантов
- Syncthing: импорт не требуется. Укажите путь к существующему дереву каталогов на обеих сторонах и позвольте системе синхронизироваться.
- SFTP или WebDAV поверх того же дерева: импорт не нужен, так как файлы остаются на своих местах.
- Объектное хранилище: требуется одно полное копирование по сети; процесс можно возобновить и автоматизировать скриптами, однако пустые папки при этом не сохраняются.
- Seafile: требуется полная загрузка в библиотеки, так как сервер хранит данные в виде блоков, а не отдельных файлов.
Какой бы вариант вы ни выбрали, сначала получите чистую копию данных из Nextcloud. Пользовательские файлы хранятся в каталоге data в исходном виде, по одной папке на пользователя, поэтому rsync этого дерева будет вашим источником. Перед копированием переведите экземпляр в режим обслуживания (maintenance mode), иначе вы скопируете файлы в процессе их записи.
sudo -u www-data php occ maintenance:mode --on
sudo rsync -a --info=progress2 /path/to/nextcloud/data/ /srv/files/
find /srv/files -type f | wc -lСравните полученное количество файлов с аналогичным find на исходном сервере. Несоответствие обычно означает, что из-за прав доступа rsync не удалось прочитать некоторые файлы; в процессе копирования утилита выведет соответствующие ошибки.
При копировании можно столкнуться с двумя проблемами. Файлы, доступные через функцию внешнего хранилища (external storage) Nextcloud, вообще не находятся в каталоге data, так как они лежат в удаленной системе, подключенной к Nextcloud. Кроме того, если когда-либо было включено серверное шифрование, файлы на диске представляют собой зашифрованный текст. В этом случае перед копированием необходимо выполнить occ encryption:decrypt-all, иначе вы перенесете папку с нечитаемыми данными. Проверьте оба этих условия, прежде чем отменять операцию.
FAQ
Существует ли альтернатива Nextcloud, которая сохраняет мою текущую структуру папок?
Syncthing, а также любая стандартная конфигурация SFTP или WebDAV. Syncthing индексирует указанную вами директорию и сохраняет те же имена и структуру на каждом устройстве, поэтому этап импорта или загрузки не требуется. Seafile и объектные хранилища требуют полной загрузки данных, так как ни одно из них не хранит файлы в виде обычных файлов в стандартной иерархии. Seafile разбивает файлы на блоки внутри своей директории данных, а объектные хранилища используют ключи вместо директорий.
Будет ли Seafile работать на VPS с 2 GB оперативной памяти?
Согласно документации, по состоянию на август 2026 года для Seafile требуется минимум 2 GB оперативной памяти и 2-ядерный процессор с частотой выше 2 GHz. Это минимально допустимые требования без запаса производительности, так как при развертывании через Docker также запускаются MariaDB, Caddy и редактор SeaDoc в отдельных контейнерах. Для одного пользователя это приемлемый вариант. Для семьи или небольшой команды увеличьте объем до 4 GB или исключите контейнер SeaDoc из стека, отказавшись от редактирования документов в браузере.
Почему веб-интерфейс Nextcloud работает медленно, хотя загрузка файлов происходит быстро?
Потому что эти два процесса выполняют разные задачи. Загрузка файла — это потоковая передача байтов с диска, тогда как загрузка страницы требует выполнения PHP, запросов к таблице кэша файлов и часто ожидания свободного процесса PHP-FPM. Подсчитайте количество строк в oc_filecache и проверьте pm.max_children в вашем пуле PHP-FPM, прежде чем винить дисковую подсистему. Таблица с миллионами строк и пул из пяти рабочих процессов создают именно такую картину производительности.
Могу ли я оставить Nextcloud для календарей, а файлы перенести в другое место?
Да, и зачастую это самое экономичное решение. Синхронизируйте большие папки с помощью Syncthing или Seafile, а Nextcloud оставьте для работы с CalDAV, CardDAV и редактирования документов в браузере. Поскольку база данных Nextcloud растет пропорционально количеству отслеживаемых файлов, удаление из нее больших деревьев каталогов вернет интерфейсу быстродействие. Удаляйте файлы через веб-интерфейс или occ, а не напрямую из директории данных на диске, иначе в базе данных останутся записи, указывающие на несуществующие файлы.