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