· 18 мин чтения

Nextcloud для корпоративного файлообмена: полный деплой

Nextcloud для корпоративного файлообмена: полный деплой

Привет! Я Евгений Семёнов, директор АйТи Фреш. Знаете, за восемь лет я внедрил Nextcloud уже в сорока с лишним компаниях. Представьте: от маленьких офисов на пятнадцать человек до огромных производств с полутысячей сотрудников! И каждый раз я вижу одно и то же: Nextcloud — это просто находка. Он идеально заменяет Google Drive, Dropbox или Яндекс.Диск, особенно когда ваши корпоративные данные должны храниться строго на ваших серверах. Как этого добиться? В этом материале я покажу, как установить Nextcloud с полным продакшен-стеком: мы настроим PostgreSQL, Redis, ONLYOFFICE, S3 и, разумеется, интегрируем всё с Active Directory.

Почему Nextcloud, а не другие

Альтернатив-то, конечно, хватает. Взгляните: есть ownCloud, Seafile, Pydio, Syncthing. Мы же, по опыту, всегда выбираем Nextcloud. Почему? Он просто выигрывает по всем параметрам: удобство, функциональность — здесь ему нет равных.

Архитектура под продакшн

Если у вас до 30 пользователей, одна виртуалка, где 'всё в одном', отлично справится. Но для серьёзного корпоративного решения? Тут я всегда советую разделить роли.

Установка на 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 рублей в год! Почувствуйте разницу.

Обслуживание

Внедрим 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. Сотрудники входят доменными паролями, автоматически получают права по группам.

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

Каждую неделю мы выпускаем что-то новенькое. Это практические гайды для всех: и для IT-руководителей, и для сисадминов. Чего там только нет! Безопасность, 1С, миграции, резервные копии... А ещё делимся крутыми лайфхаками, которые собираем прямо из наших реальных проектов.

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

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