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 закрывает шесть основных сценариев:
- Личные файлы сотрудников — папка «Мои документы» доступна с любого устройства.
- Общие папки отделов — бухгалтерия, договоры, маркетинг с разделением прав.
- Обмен с внешними контрагентами по публичной ссылке с паролем и сроком действия.
- Онлайн-редактирование документов Word/Excel/PowerPoint без локально установленного Office.
- Синхронизация рабочего стола как у Dropbox — положил файл, коллеги увидели.
- Резервное хранилище для мобильных фотографий с площадок, из цехов, со строек.
Подбор железа и оценка нагрузки
Самая частая ошибка — поставить Nextcloud на слабую VPS с 2 ГБ RAM и удивляться, что синхронизация тормозит. Я всегда исхожу из того, что облако будет расти: сегодня 50 пользователей и 200 ГБ, через два года — 500 ГБ и 70 пользователей. Для корпоратива на 50–80 человек рекомендую:
| Компонент | Минимум | Рекомендую |
|---|---|---|
| CPU | 4 vCPU | 8 ядер Xeon/EPYC (я ставлю Dell Xeon Platinum 8280) |
| RAM | 8 ГБ | 16–32 ГБ |
| Системный диск | 80 ГБ SSD | 120 ГБ NVMe |
| Диск под данные | 500 ГБ | 2–4 ТБ NVMe + HDD-архив |
| Канал | 100 Мбит | 1–10 Гбит (в дата-центре у нас 40G Mellanox) |
| ОС | Ubuntu 22.04 LTS | Ubuntu 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-хранилище в другом ЦОД.