Инфраструктура малого бизнеса: authentik + mailcow + Nextcloud + Planka

Я много лет занимался инфраструктурой. Потом перестал и ушёл в продукт — но привычка заглядывать: «А как у вас тут всё устроено?» осталась. И вот теперь я хожу к клиентам по совсем другим вопросам, а глаза всё равно выпадают.

Потому что я вижу ровно два сценария. Третьего почти не бывает.

Сценарий первый: «А мы как-то так»

Компания на 20 человек. Пять лет на рынке, деньги есть, клиенты есть, всё работает.

Почта — у кого на Яндексе, у кого на mail.ru, у директора вообще gmail с адресом вида ivan.petrov.1987@. Договоры лежат в WhatsApp. Актуальный прайс существует в четырёх версиях, и никто не знает, какая свежая. Файлы — на общей шаре старого системника под столом у Сергея, который: «Ну он же работает». 1С — на компе бухгалтера, бэкап — на флешке, флешка — в сумочке.

Задачи — в голосовых.

Самое интересное начинается, когда кто-то увольняется. Что у него было? Куда он имел доступ? Как это отобрать? Никто не знает. Учётки просто остаются жить своей жизнью годами. Я однажды видел компанию, где у уволенного три года назад менеджера всё ещё работал доступ к почте — потому что на этот ящик были завязаны какие-то регистрации, и «страшно трогать».

Это не глупость. Это нормальная эволюция: сначала надо было выжить, а потом просто некогда.

Сценарий второй: «Мы всё сделали правильно»

Компания на 12 человек. Приходил “настоящий девопс”.

Три ноды Kubernetes. Helm-чарты. ArgoCD. Prometheus, Grafana, Loki, Tempo. Service mesh — потому что а вдруг. CI/CD пайплайн на семь стадий. Terraform, который никто не решается применить, потому что стейт разъехался с реальностью где-то в марте.

Всё это обслуживает: корпоративный сайт, вики и файлохранилище.

Девопс, естественно, уволился. Оставшийся системный администратор в это не лезет. Когда что-то падает, зовут подрядчика за деньги, сравнимые со стоимостью всей инфраструктуры за год.

Это тоже не глупость. Это карго-культ: человек строил то, что умеет и что хорошо выглядит в резюме, а не то, что нужно бизнесу.

Что на самом деле нужно компании до 50 человек

Давайте честно перечислим. Список короткий:

  1. Единая учётная запись. Один логин на все сервисы. Один клик — и человека нет нигде.

  2. Почта на своём домене. Не потому что красиво, а потому что переписка — это актив компании, и он должен принадлежать компании.

  3. Место для файлов, где есть версии, права доступа и синхронизация.

  4. Календари и контакты, общие.

  5. Задачи — доска, где видно, кто что делает.

Всё. Дальше по вкусу: мессенджер, вики, менеджер паролей, CRM.

И вот ключевая мысль, ради которой я это пишу: пункт номер один важнее всех остальных вместе взятых.

Не потому что SSO — это модно и удобно (хотя удобно). А потому что централизованное управление доступом — это единственное, что превращает набор сервисов в инфраструктуру. Без него у вас не система, а коллекция. С ним онбординг нового сотрудника занимает минуту, а офбординг — десять секунд, и вы точно знаете, что доступ закрыт везде.

Большинство компаний делают наоборот: сначала накупают сервисов, а потом годами живут с десятью паролями на человека и табличкой «кому что выдали» в Excel. Которую никто не ведёт.

Стек

Четыре опенсорсных продукта, которые закрывают всё вышеперечисленное и умеют дружить между собой.

authentik — вход

Identity Provider. Умеет OIDC, SAML, LDAP, прокси-авторизацию, MFA, политики доступа, группы, и всё это через нормальный веб-интерфейс, а не через XML в конфигах.

Альтернатива — Keycloak. Он мощнее и старше, но входной порог заметно выше, а интерфейс сделан для инженеров, которые уже знают, чего хотят. Для сценария: «Небольшая компания, один админ на полставки» authentik субъективно приятнее.

Это фундамент. Ставится первым.

mailcow — почта

Готовая сборка почтового сервера: Postfix, Dovecot, Rspamd, SOGo, ClamAV, антиспам, DKIM, веб-админка. Всё в докере, всё уже связано между собой.

Собирать почтовый сервер руками в 2026 году — занятие для тех, кто получает от этого удовольствие. Мне хватило одного раза лет пятнадцать назад. Хочет минимум 6 ГБ RAM, лучше 8. Это самый прожорливый компонент стека.

Nextcloud — файлы, календари, контакты

Файловая синхронизация, шаринг, версионирование, права доступа, онлайн-редактор документов (OnlyOffice или Collabora), календари CalDAV, контакты CardDAV.

Да, Nextcloud часто ругают за тяжесть и за то, что он пытается быть всем сразу. Ругают справедливо. Но альтернативы либо делают что-то одно (Seafile — только файлы, зато быстро), либо не делают ничего. Если файлов действительно много и нужна скорость — берите Seafile и отдельно Radicale под календари. Если хочется одну коробку — Nextcloud.

Planka — задачи

Канбан-доски. Лёгкий, быстрый, понятный любому, кто видел Trello. Поддерживает OIDC из коробки.

Альтернативы: Vikunja (больше про списки и таймлайны), Kanboard (совсем аскетичный, но невероятно стабильный), Focalboard (заброшен, не берите).

Про «За пять минут»

Теперь разоблачение, ради честности.

docker compose up -d действительно занимает пять минут. Всё остальное — нет.

Реальный тайминг для человека, который делает это впервые, но умеет читать документацию:

Итого: вечер на всё, кроме почты, плюс неделя на грабли.

Порядок сборки

Порядок важен. Если сделать не в том порядке — будете переделывать.

1. Домен и DNS. Заведите отдельные поддомены под каждый сервис: auth., mail., cloud., tasks.. Про сертификаты можно не думать вообще: Let's Encrypt выпускается автоматически на каждый хост, современный reverse proxy делает это сам и сам же обновляет.

2. Reverse proxy. Caddy — если хочется, чтобы сертификаты просто работали и конфиг помещался на экран. Traefik — если нравятся лейблы в docker-compose. Nginx — если вы уже знаете nginx и не хотите учить новое. Все три подходят, разница вкусовая.

3. authentik. Ставится до всего остального, потому что дальше все сервисы будут в него смотреть. Сразу заведите группы (sales, dev, admins) — потом на них удобно вешать права. Сразу включите MFA хотя бы для админов.

4. mailcow. Ставим раньше остальных прикладных сервисов, потому что DNS-записям нужно время, а IP нужно прогревать. Чем раньше начнёте, тем раньше почта перестанет улетать в спам.

5. Nextcloud с приложением user_oidc, 6. Planka с переменными OIDC_*.

7. Бэкапы. Не последним пунктом по важности — последним по порядку, но сделать обязательно до того, как туда попадут реальные данные.

Грабли, на которые вы наступите

Собрал те, что вижу чаще всего.

Почта и репутация IP. Свежий IP на облачном хостинге почти наверняка уже в чьих-то чёрных списках, потому что до вас на нём кто-то спамил. Многие провайдеры вдобавок закрывают исходящий 25-й порт. Проверяйте это до покупки, а не после. Если порт закрыт или репутация мёртвая — SMTP relay через внешний сервис. Это не поражение, так делают все.

SPF, DKIM, DMARC и PTR-запись — без последней половина крупных получателей развернёт вас на входе. PTR настраивается у хостера, не в DNS домена.

Single Sign-On ≠ Single Sign-Out. Зашли один раз — да. Вышли отовсюду одним кликом — почти никогда. Каждый сервис держит свою сессию. Отключение пользователя в authentik закроет ему новые входы, но активные сессии могут жить до истечения. Для реального офбординга сессии нужно гасить принудительно.

Миграция существующих пользователей на OIDC. Если Nextcloud уже работал с локальными учётками, привязка внешних не всегда происходит автоматически — можно получить дубли пользователей с пустыми домашними каталогами. Разберитесь с маппингом заранее, на тестовом пользователе.

Автообновление stateful-сервисов. Не ставьте Watchtower на mailcow, Nextcloud и базы данных. Однажды ночью он обновит мажорную версию, миграция схемы упадёт на середине, и утром вы будете поднимать всё из бэкапа. Обновляйтесь руками, читая changelog. Да, это скучно.

Бэкапы, которые никто не проверял. Классика жанра. Бэкап, из которого ни разу не восстанавливались, — это не бэкап, а надежда. Раз в квартал разворачивайте копию на тестовой машине. Займёт полдня, сэкономит бизнес.

Ресурсы. Один VPS: 8 vCPU, 16 ГБ RAM, 500 ГБ NVMe — комфортно для компании до 50 человек. 8 ГБ RAM — будет работать, но mailcow с ClamAV съест половину, и первое же обновление Nextcloud уйдёт в OOM.

Сколько это стоит на самом деле

Лицензии — ноль. Всё перечисленное бесплатно.

VPS — 3–6 тысяч рублей в месяц. Домен — копейки. Итого около 50–70 тысяч в год за инфраструктуру на всю компанию. Против SaaS-подписок на 20 человек это экономия в разы.

Но есть строка, которую все забывают — человек. Кто-то должен раз в месяц накатить обновления, раз в квартал проверить бэкап и быть на связи, когда что-то сломается. Это часов пять в месяц — но эти пять часов должны быть у кого-то в календаре, а не: «Ну Серёга посмотрит».

Если такого человека нет и не предвидится — не начинайте. Возьмите SaaS и не мучайтесь. Плохо обслуживаемый self-hosted хуже любого облака: облако хотя бы не потеряет ваши данные.

Это, пожалуй, главный критерий. Не «сколько сотрудников», не «какой бюджет», а «есть ли руки?».

Для параноиков

Отдельная категория клиентов: данные не должны покидать периметр вообще. Медицина, госконтракты, персданные, коммерческая тайна, просто принципиальная позиция.

Для них тот же стек, но:

  • Своё железо. Proxmox на нормальном сервере, виртуалки под сервисы, Proxmox Backup Server на отдельной машине. Бэкап-сервер физически отдельно от основного — иначе это не бэкап.

  • Ничего не торчит наружу. Публичный доступ только у почты (иначе она не почта) и, возможно, у веб-морды облака. Всё остальное — через WireGuard. Админки — только из VPN, без исключений.

  • MFA обязателен всем, не только админам. В authentik это политика, а не просьба.

  • Логи в одном месте. Хотя бы Loki + Grafana, хотя бы с ретенцией в 90 дней. В момент инцидента вы будете очень благодарны себе прошлому.

  • Шифрование дисков на всём, что физически может уехать из офиса.

  • Правила доступа в authentik по группам, а не по людям. Люди меняются, роли — нет.

    Это добавляет к сборке ещё пару дней. И регулярной работы — ещё часа три в месяц.

    Что в итоге

    Инфраструктура небольшой компании — это не про технологии. Это про два вопроса:

    Кто имеет доступ к чему? и Что мы делаем, когда это сломается?

    Ответьте на них — и не важно, что у вас под капотом. Не ответьте — и не спасёт ни Kubernetes, ни энтерпрайзная подписка.

    Четыре контейнера, один VPS, вечер работы. И централизованное управление доступом, которого нет у 80% компаний вашего размера.

    Дальше можно наращивать: вики, мессенджер, CRM, менеджер паролей. Все они подключаются к тому же authentik, и каждый следующий сервис добавляется уже за двадцать минут, а не за вечер. В этом весь смысл фундамента.