Nextcloud для корпоративного файлообмена: полный деплой
Привет! Я Евгений Семёнов, директор АйТи Фреш. Знаете, за восемь лет я внедрил Nextcloud уже в сорока с лишним компаниях. Представьте: от маленьких офисов на пятнадцать человек до огромных производств с полутысячей сотрудников! И каждый раз я вижу одно и то же: Nextcloud — это просто находка. Он идеально заменяет Google Drive, Dropbox или Яндекс.Диск, особенно когда ваши корпоративные данные должны храниться строго на ваших серверах. Как этого добиться? В этом материале я покажу, как установить Nextcloud с полным продакшен-стеком: мы настроим PostgreSQL, Redis, ONLYOFFICE, S3 и, разумеется, интегрируем всё с Active Directory.
Почему Nextcloud, а не другие
Альтернатив-то, конечно, хватает. Взгляните: есть ownCloud, Seafile, Pydio, Syncthing. Мы же, по опыту, всегда выбираем Nextcloud. Почему? Он просто выигрывает по всем параметрам: удобство, функциональность — здесь ему нет равных.
- Активное развитие. Ежеквартальные релизы, огромное сообщество, 200+ приложений в маркетплейсе.
- Офисный пакет. Встроенный Collabora или ONLYOFFICE — редактирование DOCX/XLSX/PPTX прямо в браузере.
- AD/LDAP/SAML. Вход по доменным учёткам, автораспределение прав по группам.
- Шифрование. Server-side и end-to-end.
- Мобильные клиенты. iOS, Android, Windows, macOS, Linux — все с авто-синхронизацией.
- Бесплатная лицензия. AGPL, платная только подписка на поддержку.
Архитектура под продакшн
Если у вас до 30 пользователей, одна виртуалка, где 'всё в одном', отлично справится. Но для серьёзного корпоративного решения? Тут я всегда советую разделить роли.
- Web/App — Ubuntu 22.04, nginx + PHP-FPM 8.2, Nextcloud 28+.
- БД — отдельная Postgres 15 с tuning под I/O.
- Кэш — Redis для локов, сессий, file cache.
- Офис — ONLYOFFICE Document Server на отдельной VM.
- Файлы — MinIO S3-кластер или NFS-шара.
- Reverse proxy — HAProxy/nginx с TLS от AD CS.
Установка на Ubuntu 22.04
apt update && apt install -y nginx php8.2-fpm php8.2-cli php8.2-gd \
php8.2-mysql php8.2-pgsql php8.2-curl php8.2-intl php8.2-mbstring \
php8.2-xml php8.2-zip php8.2-bcmath php8.2-gmp php8.2-imagick \
php8.2-redis php8.2-apcu postgresql-15 redis-server
# PHP tuning
sed -i 's/memory_limit = .*/memory_limit = 1024M/' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = .*/upload_max_filesize = 10G/' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = .*/post_max_size = 10G/' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = .*/max_execution_time = 3600/' /etc/php/8.2/fpm/php.ini
# Скачиваем 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
PostgreSQL для Nextcloud
sudo -u postgres psql <
Nginx + HTTPS
# /etc/nginx/sites-available/nextcloud
server {
listen 443 ssl http2;
server_name cloud.corp.example.ru;
ssl_certificate /etc/ssl/certs/cloud.crt;
ssl_certificate_key /etc/ssl/private/cloud.key;
client_max_body_size 10G;
fastcgi_buffers 64 4K;
root /var/www/nextcloud/;
index index.php index.html;
location = /robots.txt { allow all; log_not_found off; access_log off; }
location = /.well-known/carddav { return 301 /remote.php/dav; }
location = /.well-known/caldav { return 301 /remote.php/dav; }
location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)(?:$|/) { deny all; }
location ~ ^/(?:\.|autotest|occ|issue|indie|db_|console) { deny all; }
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTPS on;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
}
location / { try_files $uri $uri/ /index.php$request_uri; }
}
Интеграция с Active Directory
После этого ставим приложение LDAP / Active Directory integration. Настраивается оно либо через привычный интерфейс, либо через occ-команды.
sudo -u www-data php /var/www/nextcloud/occ app:enable user_ldap
sudo -u www-data php /var/www/nextcloud/occ ldap:create-empty-config
# Настраиваем через веб-интерфейс: Host DC01.corp.example.ru,
# BaseDN CN=Users,DC=corp,DC=example,DC=ru,
# BindDN nextcloud-svc@corp.example.ru
Фильтр пользователей: (&(objectClass=user)(memberOf=CN=NC-Users,OU=Groups,DC=corp,DC=example,DC=ru)). Фильтр групп: (objectClass=group). После настройки сотрудники входят доменным логином, а админы домена автоматически попадают в группу admin в Nextcloud.
S3 external storage на MinIO
Видите огромные объёмы файлов? Я без колебаний выбираю S3 в качестве основного хранилища. Это очень просто: всего одна строчка в config.php, и готово!
// /var/www/nextcloud/config/config.php
'objectstore' => [
'class' => '\\OC\\Files\\ObjectStore\\S3',
'arguments' => [
'bucket' => 'nextcloud-prod',
'autocreate' => false,
'key' => 'AKIANEXTCLOUDXXX',
'secret' => 'VeryStrongS3Secret',
'hostname' => 's3.corp.example.ru',
'port' => 9000,
'use_ssl' => true,
'use_path_style' => true,
'region' => 'us-east-1',
],
],
ONLYOFFICE Document Server
# Отдельная VM
apt install -y docker.io
docker run -d --restart=always --name=onlyoffice -p 80:80 -p 443:443 \
-e JWT_ENABLED=true \
-e JWT_SECRET='nextcloud_shared_secret' \
-v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \
-v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \
onlyoffice/documentserver
Что дальше? В Nextcloud просто ставим приложение ONLYOFFICE. Указали URL сервера, добавили JWT-ключ — и всё! Документы DOCX, таблицы XLSX, презентации PPTX теперь открываются прямо в браузере, без всяких загрузок.
Реальный кейс: производство на 180 сотрудников
Возьмём пример. В декабре 2025 года мы помогли мебельному производству в Подмосковье. У них 180 сотрудников, 4 ТБ общих файлов — серьёзный объём, правда? Раньше как было? Обычный Windows-сервер с SMB: постоянные тормоза, шифровальщики то и дело атаковали, про мобильный доступ и говорить нечего. Кошмар! Что мы сделали? Развернули Nextcloud. Сервер: Dell PowerEdge R750xa, мощный Xeon Platinum 8280, 128 ГБ оперативки, два NVMe по 1.92 ТБ под систему и базу, плюс 40G Mellanox ConnectX-5. Всё это стоит в дата-центре МТС. Nextcloud, PostgreSQL и Redis — на одной виртуалке. ONLYOFFICE — на отдельной, а для файлов — MinIO на трёх узлах. Красота! Конечно, интегрировали с Active Directory. Настроили групповые шары по отделам, сделали полную авто-синхронизацию через клиент. Результат? Через три месяца: 170 из 180 сотрудников активно работают с Nextcloud. Средний объём файлов на человека — 22 ГБ. Скорость отдачи в офис по 40G — впечатляющие 9.2 ГБ/с. Весь проект обошёлся в 340 000 рублей. А экономия на Dropbox Business? Около 950 000 рублей в год! Почувствуйте разницу.
Обслуживание
- Ежедневно —
occ preview:pre-generate. - Еженедельно —
occ files:cleanup,occ files:scan --all. - Что делаем ежемесячно? Обязательно бэкапим базу данных и config.php. И, конечно, не забываем обновлять Nextcloud командой occ upgrade.
- А раз в квартал? Проводим тщательный аудит: проверяем права доступа и внешние хранилища. Так спокойнее.
Внедрим Nextcloud под ключ
Мы предлагаем полный спектр услуг: от подбора железа, установки и настройки БД и кэша до AD-интеграции, развертывания S3-хранилища, ONLYOFFICE, мобильных клиентов и бэкапа в MinIO. Работаем с объектами любого масштаба, от 20 до 2000 пользователей. Зона обслуживания — Москва и область.
Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш
FAQ — корпоративный Nextcloud
- Чем Nextcloud лучше Google Drive?
- Nextcloud живёт на вашем сервере — данные остаются в вашей юрисдикции. Нет абонентской платы за пользователя, нет лимитов на объём.
- Сколько пользователей тянет одна инсталляция?
- На Xeon Silver с 64 ГБ RAM — до 200 активных пользователей. На мощном железе — до 2000.
- Нужен ли ONLYOFFICE?
- Очень рекомендую. Даёт плавное совместное редактирование DOCX/XLSX/PPTX с высокой совместимостью с Microsoft Office.
- Как хранить 10+ ТБ данных?
- External storage на S3/MinIO — идеальный вариант. Масштабируется до петабайт без проблем.
- Как интегрировать с Active Directory?
- Через приложение LDAP/AD Integration. Сотрудники входят доменными паролями, автоматически получают права по группам.
