Nextcloud: собственное облако для компании на своём сервере
Привет! Я Евгений Семенов, директор ITFresh. За мои 15+ лет в ИТ-аутсорсинге я успел развернуть Nextcloud в десятках компаний — от крошечных юрфирм на дюжину человек до огромных заводов с тремя сотнями сотрудников. И знаете, какая история повторяется снова и снова? Руководители устают отдавать деньги за Яндекс.Диск, но главное — постоянно трясутся за свои данные: а вдруг переписка с клиентами утечёт? Self-hosted Nextcloud бьёт по обеим проблемам сразу! Ваши файлы — это ВАШИ файлы. Они лежат на вашем железе, которое мы размещаем в дата-центре МТС. Доступ? Мы настраиваем его по корпоративным логинам из AD. А онлайн-редактор там просто шикарный, ничем не уступает Google Docs!
Почему именно Nextcloud, а не альтернативы
Self-hosted облако? Сегодня это уже не какая-то там диковинка, а настоящая must-have для любой средней компании. Да, рынок предлагает варианты: Seafile, ownCloud, Pydio. Но, вот честно, за долгие годы работы Nextcloud для меня — абсолютный чемпион, причём сразу по трём пунктам. Почему? Во-первых, сообщество у него просто гигантское! Это же значит, что в маркетплейсе вы найдёте больше 400 разных приложений, а свежие патчи безопасности прилетают как по расписанию. Во-вторых, он дружит со всеми популярными операционками: Windows, macOS, iOS, Android, Linux. Забудьте про те "колченогие" приложения, что работают только на одной платформе — здесь всё чётко. И наконец, в-третьих: интеграции! AD/LDAP, SAML SSO, ONLYOFFICE, антивирус и даже внешнее хранилище S3. Есть всё, что нужно.
На нашей практике Nextcloud закрывает сразу шесть основных задач. Вот эти сценарии:
- Личные файлы ваших сотрудников? Просто папка «Мои документы». И к ней можно получить доступ с любого устройства, где бы вы ни находились. Удобно, правда?
- А как насчет общих папок отделов? Бухгалтерия, договоры, маркетинг — все организовано. Конечно, с четким разделением прав. Чтобы каждый видел только то, что ему положено.
- Нужно что-то передать внешним контрагентам? Легко! Мы используем публичные ссылки. При этом вы сами задаете пароль и срок действия. Максимальный контроль и безопасность — это важно.
- Забудьте про установку Office на каждом компьютере! Документы Word, Excel, PowerPoint теперь можно редактировать прямо онлайн. Открыли и работаете. Просто и без лишних программ.
- Нужно, чтобы все коллеги сразу увидели новый файл? Просто бросьте его на рабочий стол! Синхронизация работает точно как в Dropbox. Положили — и все уже видят. Быстро и удобно.
- Мобильные фотографии с площадок, из цехов или со строек? Мы организуем для них надежное резервное хранилище. Все важные снимки будут в безопасности и всегда под рукой. Без потери данных.
Подбор железа и оценка нагрузки
Знаете, какая самая частая ошибка? Люди ставят Nextcloud на какую-нибудь хиленькую VPS-ку с двумя гигами оперативки, а потом сидят и думают: "Почему синхронизация еле ползёт?" Я смотрю на это так: облако ОБЯЗАНО расти. Сегодня, допустим, у вас 50 пользователей и всего 200 ГБ данных. А через пару лет? Уже 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? Да это же безумно дорого и, если честно, совершенно ни к чему. Я предпочитаю другой подход: "горячие" данные, то есть все файлы, к которым обращались за последние 90 дней, остаются на быстрых NVMe-дисках. А вот холодные архивы я аккуратно, используя external storage, перекладываю на обычные HDD. Такая схема помогает сэкономить вам десятки тысяч рублей, которые иначе ушли бы на лишние SSD.
Установка базового стека
Я всегда ставлю Nextcloud нативно в 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 на отдельной виртуальной машине. Конечно, если ресурсов у вас вагон, можно и на тот же сервер поставить, но я всё-таки настоятельно рекомендую выделенную виртуалку. Почему? Да потому что он просто знатно «жрёт» процессор, особенно при открытии какого-нибудь тяжеленного 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 нашего Document Server, например, http://oo.internal:8080, и тот самый JWT-секрет. Готово! Теперь сотрудники могут открывать .docx прямо в браузере и работать над ними одновременно, почти как в Google Docs. Главное отличие? Файл-то остаётся на вашем диске, никуда не уходит.
Реальный кейс: облако для строительной компании
Помню один случай. В июне 2025 года к нам обратилась крупная строительная компания из Москвы. У них 68 сотрудников, два офиса и целых три строительные площадки! Какая была проблема? Прорабы получали все акты и чертежи от клиентов прямо в WhatsApp. И, естественно, половина этих файлов просто пропадала без следа! Корпоративный Яндекс.Диск у них был, да. Но там не работала авторизация через AD, а бухгалтерия наотрез отказывалась хранить там хоть что-то, особенно исходники договоров. С этим надо было что-то делать!
Всего за 8 рабочих дней мы полностью развернули Nextcloud на их собственном сервере, который стоял в дата-центре МТС. Это был настоящий зверь: Dell с мощнейшим Xeon Platinum 8280, 64 ГБ оперативной памяти, 4 ТБ скоростного NVMe и ещё 16 ТБ HDD для того самого холодного архива. В up-link стоял 40G Mellanox. Мы создали пять общих папок под разные отделы, тонко настроили три уровня прав доступа, подключили AD через LDAPS и, само собой, подняли ONLYOFFICE на отдельной виртуалке. И вишенка на торте? Наш инженер всего за два рабочих дня настроил мобильные приложения на всех 68 смартфонах сотрудников — и iPhone, и Android!
Месяц пролетел незаметно, и вот что мы получили: 340 ГБ рабочих файлов. В среднем, каждый день пользователи совершали 1200 загрузок и скачиваний. А ещё 12 общих ссылок ушли нашим подрядчикам. Весь проект нам обошелся в 95 000 рублей за разовую настройку и 18 000 рублей ежемесячно за поддержку. А теперь самое интересное: сравните это с расходами на 40 лицензий Яндекс 360. За год наш клиент сэкономил порядка 210 000 рублей. Впечатляет, не так ли?
Резервное копирование по уму
Что такое Nextcloud под капотом? Это, по сути, связка из базы PostgreSQL, каталога data и папки config. Технически, бэкап можно сделать и «на горячую», но, честно говоря, я всегда предпочитаю ненадолго переводить сервер в maintenance mode на время снимка. Десять секунд простоя — это совершенно некритично. Зато я на 100% уверен в консистентности данных. Никакого риска!
#!/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-хранилище в другом ЦОД.
