C 2019 года весь мир привыкал к новой реальности и приспосабливался к удаленной работе. На дворе 2025 год и теперь вызов для распределенных команд — не просто организовать совместную работу вне офиса, но и подготовиться к блокировкам сервисов, к которым уже успели привыкнуть. Как организовать работу небольшой команды разработчиков (до 50 человек), если у вас нет отдела DevOps и бесконечного бюджета на on-premise и облака, а каждый новый день доступных сервисов становится всё меньше? В статье постараюсь ответить на этот вопрос.
Я Олег Юрчик — старший python-разработчик, сейчас работаю в Cloud.ru. За последние два года я организовывал инфраструктуру для трех небольших команд (до 15 человек), а еще около двух лет держу домашний сервер с семейной инфраструктурой: файлохранилище, менеджер паролей, календарь, книгу контактов и так далее. Хочу поделиться, к каким решениям я пришел за это время, а также пошагово, но не вдаваясь в подробности, рассказать, как развернул собственную цифровую крепость.

На самом деле эта тема бесконечно глубока и идеальных вариантов и решений нет — в любой конфигурации будут свои плюсы и минусы. Я покажу один из вариантов инфраструктуры, который позволит небольшой команде без бюджета поддерживать стабильную работу в онлайне, балансируя между стоимостью, безопасностью и комфортом.
Сколько стоит IT-инфраструктуру построить
По информации с сайта HelpIT.me затраты на IT-инфраструктуру могут составить от 1 до 10% годового бюджета компании. Например, если у небольшой компании из 50 человек годовой бюджет 100 млн рублей, то только на IT-инфраструктуру может уходить от 1 до 10 млн рублей.
Конечно, всё индивидуально. Компания, продающая IT-продукты, ожидаемо будет тратить на инфраструктуру больше среднего. И наоборот — у компаний, сфера деятельности которых меньше связана с IT, затраты на инфраструктуру будут ниже.
В среднем по больнице затраты колеблются от 2 до 4 %. В них входят:
аппаратное обеспечение;
программное обеспечение;
найм IT-специалистов, обслуживающих инфраструктуру;
размещение инфраструктуры;
настройка внешних сервисов;
трансферные затраты.
Если большие компании в состоянии поддерживать качественную инфраструктуру, то что делать тем, кто не может позволить себе подобные траты? От чего реально отказаться без ущерба безопасности и надежности?
На чем реально сэкономить
Тут я точно не открою вам Америку. В первую очередь — на аппаратном обеспечении и персонале, если переложить задачу обслуживания железа на хостеров и облачные сервисы. Например, чтобы содержать собственный мини-ЦОД, как минимум понадобиться покупать железо (даже если это старый ПК с рук), арендовать помещение (даже если это угол в собственной квартире), оплачивать электричество, охлаждение, а самое главное — поддерживать всё это и обслуживать. Благодаря хостерам и облачным провайдерам можно делать то же самое без первоначальных вложений и с относительно небольшим ежемесячным платежом, при этом всё будет стабильно работать (точно стабильнее самостоятельной поддержки).
Также можно отказаться от внешних платных сервисов. Например, менеджера задач, Git-хостинга или корпоративных мессенджеров. И тут вы можете мне возразить — обычно, когда уменьшается смета на внешние сервисы, сразу увеличивается смета на персонал — раньше обслуживанием занималась другая компания, а теперь это нужно делать вам. Но и в этом случае можно сэкономить, если сделать инфраструктуру шаблонной и простой для понимания. Как минимум, зафиксировать версии сервисов, чтобы снизить риск поломок из-за обновлений (хотя стоит учитывать, что в некоторых случаях это может отразиться на безопасности, так что, как я говорил, всё индивидуально).
Выбираем сервисы
Без каких сервисов не обойтись команде разработки IT-продукта? На мой взгляд это:
База знаний — место, где каждый член команды может найти нужную и актуальную информацию по продукту. Чаще всего небольшие компании выбирают Notion.
Менеджер задач — в нем удобно планировать и визуализировать этапы работы.
Корпоративная почта. Наиболее популярные решения — Microsoft Outlook или почтовые сервисы от Google и Yandex.
Мессенджер — сервис для мгновенного обмена сообщениями и другой информацией. Часто можно встретить Slack.
Git-хостинг — сервис для хранения и синхронизации исходного кода ПО (и не только) между разработчиками. Популярное решение — GitLab.
Менеджер паролей — удобное корпоративное приложение, где каждый сотрудник может хранить рабочие пароли и безопасно ими обмениваться. Часто компании используют PassWork и 1password.
Единая точка входа — сервис, через который любой сотрудник может получить доступ к любому сервису компании по общему логину и паролю. Обычно используют KeyCloak, Authentik или авторизацию через Google или Yandex.
Если просто взять и закупить наиболее популярные варианты, их обслуживание выйдет в копеечку. Например, лицензия YouGile стоит 495 рублей в месяц за каждого пользователя, а Slack — 4.95 долларов за каждого пользователя плюс затраты на комиссии и переводы. Кроме того, любой зарубежный сервис в любой момент могут заблокировать. Какие есть альтернативы?
База знаний. Outline.
Сервис, максимально похожий на Notion и внешним видом, и способом работы. Конечно, в нем отсутствует некоторая часть возможностей Notion, например, интеграции и автоматизация, но и существующего функционала должно быть достаточно для полноценной работы. Кто тоже пробовал и сравнивал — делитесь мнением в комментариях.
Альтернативы Outline
У Outline есть минусы, которые для многих могут быть критическими, а именно — лицензия BSL и недоступность сайта и Docker-репозитория с образом приложения для российских IP-адресов. Так что еще одна хорошая альтернатива — Wiki.js, но в этой статье еe рассматривать не буду. Считаю, что по функционалу и удобству интерфейса Outline лучше.

Менеджер задач. Planka.
Planka — простой и малофункциональный менеджер задач, но для небольших IT-команд его возможностей хватит с головой. Интерфейсом и функционалом очень похож на Trello. Planka не подойдет для ведения большого и сложного продукта с большой командой, так как представляет из себя набор Kanban-досок, но для небольшой команды будет полезным. Он поддерживает организацию досок в проекты, фильтры задач по меткам, установку дедлайнов и ответственных за задачу.
Но самое классное — у Planka есть удобное задокументированное API: можно создавать собственные интеграции с тем же Git-хостингом и корпоративным мессенджером.

Корпоративная почта. Poste.io.
Настройка почты с нуля требует высокой квалификации и знаний. Poste.io же содержит внутри все необходимые сервисы и сводит настройку готового к продакшну почтового сервера до установки переменных окружения, выпуска сертификата и настройки записей DNS. Это лучшая альтернатива, и если хочется найти сервис с еще более простым деплоем — это только корпоративная почта от Yandex или Mail.ru.
Альтернативы Poste.io
Должен предупредить, что у Poste.io есть несколько минусов. Во-первых, это закрытая кодовая база, т. к. есть расширенная платная версия. Во-вторых, в бесплатной версии нет авторизации через OAuth2, LDAP или OIDC. Альтернативы — только сторонние сервисы или сборка собственного решения на основе docker-mailserver и roundcube, что является не самой простой задачей.

Мессенджер. Mattermost.
Один из самых популярных корпоративных мессенджеров. Mattermost используют даже крупные компании, которые могут позволить себе платные решения. Основное преимущество — self-hosting. Данные гарантировано хранятся на серверах компании. Mattermost поддерживает весь основной функционал корпоративного мессенджера — личные и групповые чаты, отправку файлов и изображений, реакции, интеграции ботов. Большое преимущество Mattermost — бесшовная интеграция с Jitsi — self-hosted сервисом для видеозвонков.
Альтернативы Mattermost
Как и со многими сервисами, вход на официальный сайт с российских IP запрещен — для многих это может быть важным критерием. В этом случае можно рассмотреть альтернативы: Synapse/Element, Revolt, Rocket.Chat.

Git-хостинг. Gitea.
Gitea — это open source self-hosted аналог GitHub и GitLab. Имеет весь необходимый для современного git-хостинга функционал: организации, репозитории, команды, pull requests с комментариями, CI/CD и еще много чего.
Многие, наверное, ожидали в этом пункте увидеть GitLab, ведь он тоже open source и тоже self-hosted. Я и сам его очень люблю, но в список он не попал по двум основным причинам: ограниченный бесплатный функционал (хотя есть возможность бесплатно получить платный функционал) и довольно высокие минимальные системные требования. Только для одного инстанса GitLab понадобится машина на 8 vCPU и 16 GB RAM. Gitea же позиционирует себя как легковесный сервис, для которого достаточно 1 vCPU и 500 MB RAM, что как раз хорошо подойдет для небольшой команды.

Менеджер паролей. Vaultwarden.
BitWarden — известный сервис для хранения паролей. Есть и облачная версия, но мы, конечно, рассматриваем только self-hosted. VaultWarden — это легковесный совместимый с BitWarden сервер, написанный на Rust. Так как у небольшой IT-компании нет лишних денег на ресурсы сервера, мы выбираем VaultWarden. К сожалению, пока у VaultWarden нет функции авторизации по LDAP, OAuth2 или OIDC и в ближайшем времени не планируется (хотя уже были попытки).
Альтернативы VaultWarden
Кстати, от автора большого PR для добавления SSO есть форк VaultWarden под названием OIDCWarden — я сам не разворачивал, но вы можете попробовать.

Сервер авторизации. Keycloak.
Изначально я хотел включить в список Authentik, поскольку он выглядит молодо, свежо, имеет красивый современный UI и большие возможности для интеграции. Однако у него есть серьезный минус — я не нашел способ легко развернуть конфигурацию профиля при первом деплое. Это возможно либо через API (а под это надо написать скрипт), либо вручную. В KeyCloak же можно в JSON-файле указать все параметры профиля и создать его при запуске сервиса. Кроме того, у KeyCloak есть большое отзывчивое сообщество на stackoverflow, где любой может задать вопрос и получить на него ответ.

Стартуем!
Самой независимой конфигурацией является хостинг всей инфраструктуры под матрасом на домашнем микро-ЦОДе. Но здесь появляется много проблем и рисков: стоимость оборудования, нестабильное интернет-соединение и перебои с электроэнергией. Чтобы избежать этих сложностей, стоит арендовать VPS у облачного провайдера. Один из доступных вариантов — бесплатная виртуальная машина от Cloud.ru на 2vCPU, 4 GB RAM и 30 GB SSD NVMe. Для полноценной работы нужно будет только оплатить 149 рублей за публичный IP-адрес, что совсем немного по сравнению со стоимостью целого сервера.
Для начала создадим машину в Cloud.ru. Если вы не знаете, какой дистрибутив лучше выбрать, можно взять Ubuntu. В процессе не забудьте нажать свитч «Подключить публичный IP» — без него вы не сможете получить доступ к серверу через интернет.

После создания машины вы получите ее IP-адрес и сможете подключаться через SSH. Как это сделать, подробно описано в инструкции Подключение к серверу по SSH.
Важно, чтобы все члены команды имели доступ к IT-инфраструктуре через глобальный интернет и желательно не по IP-адресу машины, а по домену. Для этих целей можно купить недорогой домен, например, на reg.ru или nic.ru. Домен в пространстве .space
для моего домашнего сервера стоит примерно 2 000 рублей в год. Но можно выбрать и другие доменные зоны — есть варианты за 199 рублей.
При покупке домена не забудьте настроить записи DNS, чтобы связать домен и машину. Для этого в личном кабинете хостинга (в котором купили домен) добавьте две DNS-записи:
*.your_domain.ru -> 1.2.3.4
@.your_domain.ru -> 1.2.3.4
Где вместо your_domain.ru
укажите купленный домен, а вместо 1.2.3.4
— IP-адрес вашей виртуальной машины.
Если нужна еще и почта
Для того, чтобы запустить почту, кроме стандартных записей DNS надо будет добавить некоторые MX- и TXT-записи. Это разговор для отдельной статьи, которая уже есть на Хабре.
Убедиться, что по домену нас перенаправляет на корректный IP-адрес можно с помощью команды host your_domain.ru
или ping your_domain.ru
, которую можно запустить прямо с арендованной виртуальной машины. Если в ответе IP-адрес вашего сервера — значит всё отлично, можно приступать к настройке сервисов.
Поднимаем IT-инфраструктуру
Специально для этой статьи я подготовил репозиторий с примером, как поднять инфраструктуру из следующих сервисов:
Keycloak.
Outline.
Planka.
Vaultwarden.
Gitea.
Вся инфраструктура поднимается на базе Docker Swarm — системы, идущей вместе с Docker. Она позволяет связать несколько машин в кластер и поднимать на них контейнеры. Конечно, современный мир пользуется Kubernetes — в нем и возможностей больше, и проблем меньше, но у Docker Swarm есть несколько плюсов:
Для описания структуры используются docker-compose файлы, которые знакомы почти каждому backend-разработчику. Т. е. для поддержании инфраструктуры вам будет не нужен DevOps-инженер в классическом его понимании.
Docker Swarm идет из коробки сразу вместе с Docker, ничего не надо устанавливать.
Traefik, который я использую в репозитории, отлично работает в режиме Docker Swarm.

Наша инфраструктура будет выглядеть вот так. Traefik — это входная точка, по сути ingress или аналог Nginx/Apache. Он позволит распределять весь входящий трафик по приложениям в зависимости от того, на какой домен он пришел. Например, если пришел запрос на домен wiki.your_domain.ru
, то он перенаправит его в Outline, а если на домен iam.your_domain.ru
— то в Keycloak. Роутинг можно настроить самостоятельно. Также Traefik забирает на себя всю «боль» взаимодействия с сертификатами — он самостоятельно выпускает и обновляет их через Let’s Encrypt.
Чтобы все это запустить:
Заходим по SSH на машину и устанавливаем необходимые пакеты:
sudo apt update
sudo apt install git jq make curl nano
Также для работы нужен Docker, а как его установить, можно прочитать в официальной документации — есть гайды для каждой операционной системы и дистрибутива.
После установки скачайте репозиторий и перейдите в него:
git clone https://gitverse.ru/OlegYurchik/cloud_team_backoffice
cd cloud_team_backoffice
Затем скопируйте файл с переменными окружения и отредактируйте его:
cp .env.example .env
nano .env
После того, как указали значение всех переменных, можно запускать инфраструктуру:
make up
Поздравляю, теперь у вас есть собственная рабочая инфраструктура!
Вывод
В этой статье я хотел показать — чтобы организовать рабочую инфраструктуру для небольшой команды, не обязательно нанимать дополнительный персонал, покупать или арендовать дорогое оборудование, лицензии или зависеть от зарубежных сервисов.
Уже больше года я поддерживаю два подобных контура и собственный домашний сервер, построенный таким образом. По своему опыту могу сказать, что обслуживание требуется минимальное, сложности были только с обновлением версий сервисов, поэтому я стараюсь делать их всё реже и реже (но признаю, что это не очень хорошо).
По финансам тоже получилось вполне бюджетно:
149 рублей в месяц за публичный IP-адрес.
~2 000 рублей в год за домен.
0 рублей за сервисы.
В сумме получается около 3 800 рублей в год.
А как вы решали вопрос с построением инфраструктуры для небольшой команды? Какие сервисы использовали и как они вам на практике? Буду рад обсудить в комментариях.
Комментарии (4)
OldRetailer
28.05.2025 14:26Вместо nextcloud есть ещё ownclowd, пошустрее, но попроще. А есть ещё Synology со встроенным ldap. Для дома и маленьких команд вполне бюджетно и здорово.
rgaliull
хабр торт!
Чуть наброшу (не для холивара, а для обсуждения).
Почти все выбранные продукты мне и самому нравятся. Хотелось бы услышать мнение коллег. Что если:
1. В качестве почтового сервера рассмотреть mailcow
2. Управление проектами huly.io, а простой канбан есть и в gitea.
3. Хранение паролей passbolt
4. mattermost с 10 версии закрыл звонки под paywall, поэтому остается только matrix (dendrite+Element)
5. некоторым надо дополнительно VPN, например, netbird, который отлично интегрируется с SSO
6. файлохранилище. тут сам не знаю что предложить. Многие юзают nextcloud, но у него интерфейс медленный и жадный до ресурсов. Тут нужна дискуссия.
Ryder95 Автор
mailcow - отличный вариант, можно и его, вот только кажется они так и не добавили OIDC/LDAP, хотя, справедливости ради, и в Poste.io их нет. Не включал в список, потому что не разворачивал ни разу, поэтому нечем поделиться
huly.io - тоже, кажется, классная система, надо пробовать. Обычно не использую доски в гит хостингах по причине того, что на досках ещё могут висеть задачи для дизайнеров/продуктов, тогда gitea для них
passbolt - тоже звучит как отличный вариант
C matrix могут быть сложности по взаимодействию, Mattermost всё-таки создан как корпоративный чат с удобным интерфейсом групп/каналов, меншенами и интеграцией, чтобы сделать подобное в Matrix - нужно применить больше усилий, а в качестве звонков лучше вообще стороний сервис без интеграции найти (кстати, тот же Rocket.Chat, кажется, умеет в звонки из коробки)
Супер, VPN точно надо
Nextcloud отлично подходит как файлохранилище, если бесит интерфейс - можно интегрировать его в рабочий компьютер через samba или ftp
egribanov
Вместо доски можно kanboard юзать, если смущает дизайн, то для него есть много плагинов и свои несложно писать. Есть апи в виде jrpc
Есть также plane.so
Авторизация zitadel очень приятно в докере поднимается