· 17 мин чтения

Nextcloud: собственное облако для компании на своём сервере

Меня зовут Семёнов Евгений Сергеевич, директор АйТи Фреш. За 15+ лет в ИТ-аутсорсинге я ставил Nextcloud в десятках компаний — от юридических контор на 12 человек до производственных холдингов на 300 сотрудников. И каждый раз вижу, как руководители устают платить за Яндекс.Диск и параллельно бояться, что переписка с клиентом окажется в чужом облаке. Self-hosted Nextcloud решает обе задачи сразу: файлы хранятся на железе в дата-центре МТС, доступ — по корпоративным логинам AD, а онлайн-редактор не хуже Google Docs.

Почему именно Nextcloud, а не альтернативы

Self-hosted облако сейчас — это не новшество, а типовое требование среднего бизнеса. На рынке есть Seafile, ownCloud, Pydio, но Nextcloud выигрывает по трём параметрам. Во-первых, сообщество: 400+ приложений в маркетплейсе, регулярные обновления безопасности. Во-вторых, клиенты под Windows, macOS, iOS, Android, Linux — нет «колченого» приложения на одной из платформ. В-третьих, интеграции: AD/LDAP, SAML SSO, ONLYOFFICE, антивирус, внешнее хранилище S3.

У нас на практике Nextcloud закрывает шесть основных сценариев:

Подбор железа и оценка нагрузки

Самая частая ошибка — поставить Nextcloud на слабую VPS с 2 ГБ RAM и удивляться, что синхронизация тормозит. Я всегда исхожу из того, что облако будет расти: сегодня 50 пользователей и 200 ГБ, через два года — 500 ГБ и 70 пользователей. Для корпоратива на 50–80 человек рекомендую:

КомпонентМинимумРекомендую
CPU4 vCPU8 ядер Xeon/EPYC (я ставлю Dell Xeon Platinum 8280)
RAM8 ГБ16–32 ГБ
Системный диск80 ГБ SSD120 ГБ NVMe
Диск под данные500 ГБ2–4 ТБ NVMe + HDD-архив
Канал100 Мбит1–10 Гбит (в дата-центре у нас 40G Mellanox)
ОСUbuntu 22.04 LTSUbuntu 24.04 LTS

Отдельно про хранение: держать всё на NVMe — дорого и избыточно. Я разделяю hot-data (последние 90 дней) на NVMe, а холодные архивы перекладываю на HDD через external storage. Это экономит десятки тысяч на SSD.

Установка базового стека

Ставлю всё нативно в Ubuntu, без Docker. Docker для Nextcloud — это плюс-минус, но на практике обновления и траблшутинг на голой системе быстрее. Стек: Nginx, PHP-FPM 8.3, PostgreSQL 16, Redis 7. Никакого Apache.

apt update && apt install -y nginx postgresql postgresql-contrib redis-server \
  php8.3-fpm php8.3-pgsql php8.3-curl php8.3-gd php8.3-mbstring \
  php8.3-intl php8.3-bcmath php8.3-gmp php8.3-imagick php8.3-xml \
  php8.3-zip php8.3-opcache php8.3-redis unzip wget

Создаём БД:

sudo -u postgres psql <<'SQL'
CREATE USER nc_user WITH PASSWORD 'ОченьДлинныйПароль2025';
CREATE DATABASE nextcloud OWNER nc_user ENCODING 'UTF8';
GRANT ALL PRIVILEGES ON DATABASE nextcloud TO nc_user;
SQL

Скачиваем и распаковываем дистрибутив:

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
mkdir -p /srv/nextcloud-data
chown -R www-data:www-data /srv/nextcloud-data
chmod 750 /srv/nextcloud-data

Конфигурация Nginx с HTTPS

Сертификат получаем через Let's Encrypt или внутренний PKI — зависит от того, доступен ли сервер снаружи. Для внешнего доступа — certbot, для внутреннего — сертификат от AD CS, выпущенный на имя cloud.corp.example.ru.

server {
  listen 443 ssl http2;
  server_name cloud.example.ru;
  root /var/www/nextcloud;
  client_max_body_size 10G;
  fastcgi_buffers 64 4K;

  ssl_certificate /etc/letsencrypt/live/cloud.example.ru/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/cloud.example.ru/privkey.pem;
  ssl_protocols TLSv1.2 TLSv1.3;

  add_header Strict-Transport-Security "max-age=31536000" always;
  add_header X-Content-Type-Options nosniff;
  add_header X-Frame-Options SAMEORIGIN;

  location = /.well-known/carddav { return 301 /remote.php/dav; }
  location = /.well-known/caldav  { return 301 /remote.php/dav; }

  location / { rewrite ^ /index.php; }
  location ~ \.php(?:$|/) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    try_files $fastcgi_script_name =404;
    include fastcgi_params;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    fastcgi_param PATH_INFO $fastcgi_path_info;
    fastcgi_pass unix:/run/php/php8.3-fpm.sock;
  }
}

Запуск установщика и первичная настройка

После запуска nginx идём браузером на https://cloud.example.ru. Установщик спросит логин/пароль админа, параметры БД и путь к данным. Вместо веб-мастера я всегда ставлю через occ — быстрее и воспроизводимо.

sudo -u www-data php /var/www/nextcloud/occ maintenance:install \
  --database "pgsql" --database-name "nextcloud" \
  --database-user "nc_user" --database-pass "ОченьДлинныйПароль2025" \
  --admin-user "admin" --admin-pass "ЕщёДлиннее2025!" \
  --data-dir "/srv/nextcloud-data"

sudo -u www-data php /var/www/nextcloud/occ config:system:set \
  trusted_domains 1 --value=cloud.example.ru

Подключаем Redis для кэша и блокировок — без него вы получите ошибки «file is locked» при параллельной загрузке с двух устройств:

sudo -u www-data php occ config:system:set memcache.local --value='\OC\Memcache\APCu'
sudo -u www-data php occ config:system:set memcache.locking --value='\OC\Memcache\Redis'
sudo -u www-data php occ config:system:set redis host --value='/run/redis/redis.sock'
sudo -u www-data php occ config:system:set redis port --value=0

Интеграция с Active Directory

Чтобы сотрудники ходили не под отдельными учётками, а доменными — ставим приложение LDAP user and group backend. В веб-интерфейсе указываем хост контроллера домена (ldap://dc01.corp.example.ru), Base DN (OU=Users,DC=corp,DC=example,DC=ru), логин сервисной учётки и пароль. Фильтр пользователей:

(&(objectclass=user)(memberof=CN=Nextcloud_Users,OU=Groups,DC=corp,DC=example,DC=ru))

Такой подход даёт гибкость: добавил сотрудника в AD-группу — получил доступ. Убрал — пользователь исчезает из Nextcloud. Никаких ручных заведений/удалений.

ONLYOFFICE и совместная работа

Для онлайн-редактирования документов я ставлю ONLYOFFICE Document Server в Docker на отдельную виртуалку или на тот же сервер, если ресурс позволяет. Рекомендую отдельную — потому что он жрёт CPU при каждом открытии тяжёлого xlsx.

docker run -d --restart=always --name onlyoffice \
  -p 8080:80 \
  -e JWT_ENABLED=true \
  -e JWT_SECRET=СлучайныйСекрет123 \
  -v /srv/oo/data:/var/www/onlyoffice/Data \
  onlyoffice/documentserver:latest

Дальше в Nextcloud ставим приложение ONLYOFFICE, указываем URL http://oo.internal:8080 и тот же JWT-секрет. Сотрудники открывают .docx прямо в браузере и работают одновременно, как в Google Docs — только файл остаётся на вашем диске.

Реальный кейс: облако для строительной компании

В июне 2025 ко мне обратилась строительная компания из Москвы, 68 сотрудников, два офиса и три площадки. Проблема: прорабы получали от клиентов АКТы и чертежи в WhatsApp, половина файлов терялась. Яндекс.Диск корпоративный был, но в нём не было авторизации AD, и бухгалтерия отказывалась класть туда исходники договоров.

За 8 рабочих дней мы развернули Nextcloud на сервере в дата-центре МТС: Dell с Xeon Platinum 8280, 64 ГБ RAM, 4 ТБ NVMe + 16 ТБ HDD на холодный архив, 40G Mellanox в up-link. Сделали пять общих папок по отделам, 3 уровня прав, подключили AD через LDAPS, поставили ONLYOFFICE на отдельной виртуалке. Мобильные приложения на 68 iPhone и Android сотрудников настроил наш инженер за 2 рабочих дня.

Через месяц: 340 ГБ рабочих файлов, среднесуточно 1 200 загрузок/скачиваний, 12 общих ссылок в сторону подрядчиков. Стоимость проекта — 95 000 руб. разовая настройка + 18 000 руб./мес поддержка. По сравнению с 40 лицензиями Яндекс 360 экономия за год составила около 210 000 руб.

Резервное копирование по уму

Nextcloud — это база PostgreSQL, каталог data и папка config. Бэкап «на горячую» возможен, но я всё равно перевожу сервер в maintenance mode на время снимка — 10 секунд простоя не смертельны, зато гарантия консистентности.

#!/bin/bash
cd /var/www/nextcloud
sudo -u www-data php occ maintenance:mode --on
pg_dump -U nc_user nextcloud | gzip > /backup/nc-db-$(date +%F).sql.gz
rsync -aH /srv/nextcloud-data/ /backup/nextcloud-data/
rsync -aH /var/www/nextcloud/config/ /backup/nextcloud-config/
sudo -u www-data php occ maintenance:mode --off
# offsite
rclone sync /backup backup-ftp:itfresh-bks/cloud/

Схема у меня всегда 3-2-1: три копии (прод, локальный бэкап-сервер, FTP в другом ЦОДе), два носителя, одна копия offsite. Тестовое восстановление раз в квартал — обязательно, иначе однажды обнаружите, что бэкапы битые.

Настроим Nextcloud под ваш офис

Я лично проектирую и разворачиваю self-hosted облака для компаний от 20 рабочих мест. Подберу железо, настрою Nginx с HTTPS, подключу AD, поставлю ONLYOFFICE и резервное копирование. Срок — от 5 рабочих дней.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы про Nextcloud

Зачем компании свой Nextcloud, если есть Яндекс.Диск?
Облако на собственном сервере хранит данные у вас, без передачи третьей стороне. Нет лимитов на объём, можно интегрировать с AD/LDAP, подключать онлайн-редактор ONLYOFFICE, работать внутри закрытой сети без интернета.
Какие ресурсы нужны под офис на 50 человек?
Минимум 4 vCPU, 16 ГБ RAM, 1 ТБ SSD NVMe плюс отдельный диск под архивы (4–8 ТБ). Рекомендую PostgreSQL вместо MySQL и Redis для кэша — заметно быстрее работает WebDAV-синхронизация.
Можно ли подключить AD-аккаунты?
Да, через приложение LDAP / Active Directory Integration. Указываете контроллер домена, базу поиска и фильтр — пользователи входят своими доменными логинами, группы мапятся в группы Nextcloud.
Чем открывать документы прямо в облаке?
Двумя приложениями: ONLYOFFICE Document Server (даёт полноценный Office-совместимый редактор прямо в браузере) или Collabora Online (движок LibreOffice). Оба ставятся в Docker и интегрируются за полчаса.
Как бэкапить Nextcloud правильно?
Снимаем дамп PostgreSQL, бэкапим каталог data и папку config, сохраняем версию php/nextcloud. Я рекомендую rsync на второй сервер плюс offsite-копию раз в неделю на FTP-хранилище в другом ЦОД.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.