У невеликій фірмі ІТ зазвичай складається само собою. Паролі лежать у спільній табличці й на стікерах. Файли ходять поштою, а «остання версія договору» є у трьох людей, і в кожного своя. Команда переписується в Telegram-групі, куди колись додали підрядника, а прибрати забули. PDF зшивають на першому-ліпшому сайті з пошуку, хоча в тому файлі виписка з банку. На кожен сервіс окрема підписка, і рахується вона за кожне місце.

Найгірше видно, коли людина звільняється. Ніхто точно не знає, до чого в неї був доступ, а половина робочого листування лишається в неї на телефоні.

Усе це можна тримати у себе: на сервері в офісі або на орендованому в OVH чи Hetzner. Відкритих програм для цього вистачає. Складність не в тому, щоб їх поставити, а в тому, хто їх оновлюватиме, бекапитиме й відновлюватиме через рік. Цю частину ми й беремо на себе.

Що ми розгортаємо

  • Vaultwarden — менеджер паролів, сумісний із застосунками Bitwarden. Спільний сейф організації, колекції по відділах, двофакторний вхід.
  • Nextcloud — файли, календарі, контакти, спільні папки з доступом за посиланням. За потреби підключаємо редактор документів, щоб правити таблиці й тексти просто в браузері.
  • Mattermost — робочий чат із каналами, тредами й пошуком. Історія і файли лишаються на вашому сервері.
  • Jitsi Meet — відеодзвінки в браузері. Гостям не потрібен акаунт, достатньо посилання.
  • DocuSeal — підписання договорів, актів і заяв за посиланням: шаблон, поля для підпису, журнал, хто й коли підписав.
  • Vikunja — задачі й проєкти: списки, канбан, дедлайни, спільні дошки.
  • Stirling PDF — зшити, розбити, стиснути, конвертувати Office у PDF, розпізнати скан. Файли не їдуть на чужі сайти.
  • GitLab — для тих, у кого є своя розробка: код, CI/CD, вікі.
  • Prometheus і Grafana — моніторинг усього переліченого. Про те, що диск заповнюється чи сервіс не відповідає, дізнаємося ми, а не ваші працівники.

Не обов’язково брати все одразу. Зазвичай починають із паролів і файлів, а решту додають, коли команда звикне.

Як це влаштовано

На сервері ставимо Proxmox VE і розносимо сервіси по окремих віртуалках або контейнерах. Так оновлення одного не зачепить інших, а важкий GitLab не забиратиме пам’ять у чату.

Дані кожного сервісу лежать на окремому диску, не там само, де система. Їх простіше бекапити, збільшувати й переносити на інший сервер. Попереду стоїть reverse proxy з HTTPS: для внутрішніх сервісів підійде і власний центр сертифікації, без публічного домену.

Окремо налаштовуємо доступи. Ззовні відкрито лише те, що має бути відкритим, решта доступна з офісу або через VPN. Якщо сервісів багато, ставимо єдиний вхід, щоб працівник мав один логін, а звільнення закривалося однією кнопкою.

Бекапи, з яких реально відновитися

Бекап, який ніхто ніколи не відновлював, — це надія, а не бекап. Тому:

  • щоденні копії віртуалок і даних на окреме сховище, плюс копія на інший майданчик;
  • для баз — дампи, які можна підняти незалежно від решти системи;
  • за графіком відновлюємо копію на тестовий стенд і перевіряємо, що сервіс піднімається і дані на місці;
  • ви знаєте, скільки даних можна втратити в найгіршому разі і скільки часу займе відновлення.

Скільки потрібно заліза

Орієнтовно, для офісу на 20–30 людей. Vaultwarden обходиться гігабайтом пам’яті з великим запасом. Stirling PDF з OCR хоче 2–4 ГБ. Nextcloud, Mattermost і Jitsi — по кілька гігабайтів кожен. GitLab найважчий, йому треба від 8 ГБ. Увесь набір разом із моніторингом спокійно вміщається на один виділений сервер із 64 ГБ пам’яті. Без GitLab вистачить і значно скромнішої машини або кількох VPS.

Чесно про обмеження

  • Пошта — окрема тема. Свою пошту теж розгортаємо, але це окремий проєкт: SPF, DKIM, DMARC, репутація адрес, антиспам, переїзд старих скриньок. Тому її плануємо окремо від решти офісу, щоб не ризикувати листами клієнтів.
  • Jitsi любить канал. Для відеодзвінків на 10+ учасників потрібен сервер із нормальним каналом і відкритими UDP-портами. В офісі за звичайним роутером це не завжди можливо, тому Jitsi часто ставимо на орендований сервер.
  • Nextcloud — не Google Docs. Спільне редагування документів працює, але це окремий компонент, і він потребує ресурсів.
  • Сервер в офісі залежить від офісу. Світло, інтернет, кондиціонер. Якщо з цим бувають проблеми, краще орендований сервер у дата-центрі, а в офісі лишити копію бекапів.

Що ви отримуєте

  • Робочі сервіси для офісу на вашому сервері, з HTTPS і акаунтами для команди.
  • Адмінські доступи й паролі у вас, а не лише в нас.
  • Щоденні бекапи на окремий майданчик і регулярно перевірене відновлення.
  • Моніторинг і алерти про проблеми.
  • Оновлення сервісів і системи за графіком.
  • Заведення акаунтів новим працівникам і закриття доступів тим, хто пішов.
  • Коротку інструкцію для команди і документацію, що де стоїть.

Як ми ставимо окремі сервіси, можна подивитися в серії «Офіс без адміна» на linuxway.com.ua: там покроково розібрані Vaultwarden і Stirling PDF, далі буде решта.

Напишіть нам, скільки у вас людей і чим ви вже користуєтесь, і ми запропонуємо, з чого почати.