Как самостоятельно перенести на свои серверы альтернативы Google Workspace и Slack за один день

Рассказываем, что делать, если привычные офисные сервисы станут недоступны.

Так нейросеть midjourney видит серверную миграцию

Материал подготовлен при поддержке NetAngels

По данным Infowatch, в первой половине 2022 года число утечек информации в мире выросло почти в два раза по сравнению с тем же периодом годом раньше. Сервисы, обеспечивающие привычную работу бизнеса, закрываются или перестают принимать оплату из России — доверять платформам данные становится сложнее. Справиться с ситуацией поможет, например, переход на open-source-решения. Они работают на серверах, к которым у вас есть полный доступ: так бизнес будет владеть своими данными.

Этот материал — инструкция о том, как и какие сервисы можно поднять в случае перехода. Повторить эти действия сможет любой разработчик или системный администратор, даже джун.

Сервисы из инструкции имеют открытый исходный код и будут хранить всю информацию только на том сервере, который вы арендуете, то есть они не боятся санкций и закрытия компаний.

Важно: это не обзор всех open-source-решений для настройки корпоративной почты, чата и файл-шеринга, а только один из множества вариантов. Чтобы повторить шаги из инструкции, можно пользоваться любым удобным хостингом — нам с серверами согласился помочь NetAngels.

Регистрация

Для начала создадим аккаунт в панели управления NetAngels. Его можно сделать как для физического, так и для юридического лица: разницы не будет ни в работе хостинга, ни в видах оплаты — только в том, кому юридически будет принадлежать аккаунт и кому будут выставляться счета. Оплатить услуги можно картой (как российской, так и иностранной), банковским переводом по договору, переводом через Систему быстрых платежей или с помощью «ЮMoney».

Домен

Мы будем работать с DNS через панель управления NetAngels. У вас, скорее всего, уже есть домен для бизнеса и на нём настроен DNS для показа сайта и других сервисов.

Вы можете воспользоваться панелью вашего регистратора (у редакторов DNS часто схожий интерфейс) либо перенести DNS-хостинг в NetAngels, добавив домен в разделе DNS и указав у вашего регистратора такие NS-серверы:

ns1.netangels.ru ns2.netangels.ru ns3.netangels.ru ns4.netangels.ru

Если вы только открываете бизнес и домена пока нет, его надо купить. Мы приобрели домен у регистратора RU-CENTER через NetAngels, поэтому он уже делегирован на NS-серверы хостинга. Процесс автоматический: нужно выбрать и оплатить домен, а потом подождать, пока его зарегистрируют. У нас это заняло 50 минут, но лучше закладывать пару часов.

Почта

После покупки домена настроим корпоративный почтовый сервис. Для этого нам понадобится VDS — облачная виртуальная машина, к которой мы будем иметь полный доступ.

Подойдёт тариф с двумя ядрами CPU, 2 Гб RAM и SSD. Важно лишь определиться с размером диска — именно на нём будут храниться все письма и вложения. Например, Gmail предлагает 15 Гб каждому пользователю в виде объединённого хранилища для файлов и писем. Если ваши сотрудники пересылают много аттачей, можно ориентироваться на эту цифру и выделить 15 Гб диска для каждого сотрудника, добавив ещё около 10 Гб для операционной системы и почтового сервера — для трёх пользователей хватит 55 Гб.

После того как вы определились с тарифом и размером диска, выберите Ubuntu 22.04 в качестве операционной системы и создайте сервер. По умолчанию в панели управления выбрана Ubuntu 22.04 + LAMP, но LAMP нам не понадобится (это набор софта для хостинга сайтов, а нам нужна только почта). Через несколько минут на почту, указанную при регистрации, придёт письмо с данными для входа на сервер и IP-адресом.

Укажите DNS-записи в редакторе:

  • A-запись для поддомена mail с адресом вашего сервера.
  • MX-запись для основного домена с именем mail.example.com (замените example.com на свой домен), IP-адресом вашего сервера и приоритетом 10.
  • NS-записи для поддомена mail со значениями ns1.mail.example.com и ns2.mail.example.com (замените example.com на свой домен).
  • A-записи для поддоменов ns1.mail и ns2.mail, указывающую на IP-адрес вашего сервера.

После создания записей обратитесь в техподдержку (в чате в углу экрана или создав тикет) и попросите изменить PTR-запись для VDS vm_12345, чтобы IP 111.111.111.111 указывал на mail.example.com. В текст подставьте ID созданного VDS (можно посмотреть в списке серверов, это строка, которая начинается с vm_), его IP-адрес и выбранный вами поддомен. Пока вы будете продолжать настройку, сотрудники поддержки обновят запись и оповестят вас об этом, а пока можно двигаться дальше.

Теперь, чтобы начать установку почтового сервера, к серверу нужно подключиться по SSH из терминала на вашем компьютере или прямо из браузера в терминале, который доступен на вкладке «Управление доступом» на странице свежесозданного сервера (на неё можно попасть, выбрав пока что единственный сервер в списке).

После подключения обновите систему и установите пакет lsb-release. Для этого запустите в терминале следующие команды:

apt-get update apt-get upgrade apt-get install -y lsb-release

Если скорость скачивания у этих команд медленная, замените файл /etc/apt/sources.list на версию с зеркалами «Яндекса». Это ускорит процесс на серверах, находящихся в России.

Теперь установим Mail-in-a-box — открытый почтовый сервер с веб-интерфейсом, защитой от спама и синхронизацией контактов и календаря на мобильных устройствах. Для установки запустите команду:

curl -s https://mailinabox.email/setup.sh | sudo bash

Дождитесь псевдографического установщика — в его окошках введите адрес почты администратора (например, [email protected], если ваш домен — это example.com) и адрес вашего сервера в виде домена — в нашем примере это mail.example.com, где mail — это поддомен, созданный в DNS-редакторе, а example.com — ваш домен. После установщик должен скачать ещё немного нужных пакетов, уточнить локацию для выбора часового пояса, сгенерировать конфигурационные файлы, а затем попросить ввести пароль для учётной записи администратора. Придумайте надёжный пароль — при вводе его не будет видно, но когда нажмёте Enter, он отправится на сервер.

После установки появится ссылка на административную панель. Когда будете её открывать, браузер сообщит о неверном сертификате для домена. Игнорируйте предупреждение и перейдите на сайт — ниже расскажем, как выпустить верные сертификаты.

Войдите в панель управления с вашим новым адресом почты и придуманным до этого паролем. Перейдите на вкладку System → External DNS. Перенесите в панель управления DNS NetAngels все записи из таблицы, кроме А-записей для вашего домена и поддомена www, а также записей с типами SSHFP и TLSA.

Пример переноса записей типа SRV

Подождите, когда записи DNS обновятся — это займёт от 30 минут до часа. После перейдите на вкладку System → TLS (SSL) Certificates и нажмите на синюю кнопку Provision, чтобы сгенерировать сертификаты для всех доменов. Перед этим проверьте, что рядом со всеми доменами, кроме домена основного сайта и его www-поддомена, нет надписи «The domain name does not resolve to this machine: [Not Set] (A)». Если она есть, стоит ещё немного подождать или проверить, корректно ли заполнены DNS-записи.

Готово! Теперь можно добавить пользователей на вкладке Mail & Users → Users и создать списки пересылок в Mail & Users → Aliases. Теперь почта доступна через веб-интерфейс по адресу https://mail.example.com/mail (интерфейс администратора будет доступен по адресу https://mail.example.com/admin), а также через любой почтовый клиент — настройки можно найти на вкладке Mail & Users → Instructions.

Почта: альтернативное решение

Если установка Mail-in-a-box кажется долгой или неудобной, создать почтовый сервер для вашего домена можно в панели управления NetAngels: настройкой и хранением данных будет заниматься хостинг.

Создавать учётные записи и управлять ими можно через общую панель управления. Для всех пользователей доступен веб-клиент, а также подключение по IMAP и SMTP из любого почтового клиента.

Корпоративный чат

В качестве альтернативы Slack мы будем использовать Rocket.Chat — защищённый мессенджер для групп с открытыми исходниками. Кроме общения в группах по аналогии со Slack, Rocket.Chat предлагает виджеты чата поддержки на сайтах и приём сообщений клиентов из мессенджеров. Мы настроим только рабочие переписки. Рекомендуемые системные требования для работы Rocket.Chat — 2 ядра CPU, 2 Гб RAM и SSD от 40 Гб. Поэтому нам понадобится новый VDS с тарифом Small и дистрибутивом Docker.

Добавьте DNS-запись типа A для поддомена, например chat.example.com, указывающую на ваш сервер.

Затем подключитесь к серверу по SSH и создайте новый файл compose.yaml с таким содержанием. В 69-й, 104-й и 169-й строках обновите домен rocketchat.heyvaldemar.net на нужный вам. В 138-й строке укажите адрес электронной почты, а в 170-й строке подставьте свои логин и пароль, предварительно закодировав их в BCrypt (например, с помощью онлайн-сервиса). Они не пригодятся нам прямо сейчас, но их важно сохранить: они будут полезны в случае неполадок с traefik — обратным прокси-сервером, который маршрутизирует запросы между разными частями Rocket.Chat.

Выполните следующие команды:

docker-compose -f compose.yaml -p rocketchat up -d docker logs rocketchat-rocketchat-1

В появившемся списке находим ссылку на наш домен и переходим по ней — дальше вас встретит мастер настройки. С его помощью создайте первую учётную запись для администратора. Добавить сотрудников и нужные каналы можно в разделе «Администрирование» в меню в левом верхнем углу.

Теперь чат доступен из браузера и через клиенты на iOS и Android.

Файлообменник

Чтобы сотрудники могли делиться файлами внутри и за пределами компании, установим SeaFile — файлообменник с открытым исходным кодом, функцией синхронизации и клиентами для популярных платформ. Мы рекомендуем использовать как минимум тариф Small (2 ядра CPU и 2 Гб RAM) и 120 Гб SSD (от размера зависит количество файлов, которые можно хранить на сервере). Мы снова будем использовать дистрибутив Docker.

Создав VDS, в редакторе DNS сделайте для поддомена новую А-запись (например, files), она поведёт на новый сервер. Подключившись к нему, создайте файл compose.yaml, на основе этого файла.

Придумайте или сгенерируйте два пароля. Укажите в 7-й и 31-й строке первый — для базы данных MySQL, в 33-й строке — свой email, а в 34-й строке — второй пароль: их мы будем использовать для входа в веб-интерфейс SeaFile. В 36-й напишите свой домен, который создали прежде: например, files.example.com, если ваш домен — example.com, а выбранный поддомен — files. Затем запустите Docker-контейнеры:

docker-compose -f compose.yaml up -d

Через несколько минут, когда контейнеры запустятся, откройте ваш домен в браузере и введите email и второй пароль из compose.yaml. Файлообменник готов к использованию, осталось лишь создать (или импортировать из Excel-таблицы) аккаунты для коллег (это можно сделать в разделе «Системный администратор» в меню в правом верхнем углу) и выдать им ссылку на клиенты.

Файлообменник: альтернативный вариант

NetAngels предоставляет хранилище данных с доступом по FTP, SFTP, SCP и RSYNC. В их файлообменнике нельзя создать отдельные аккаунты для коллег, но и настраивать ничего не нужно — достаточно создать хранилище в панели управления. Подключиться к нему можно с любых устройств, используя на Windows и MacOS, например, FileZilla, на Android — AndFTP, а на iOS — FTPManager.

Сервис видеоконференций

Для видеозвонков будем использовать BigBlueButton — сервис, который подойдёт для организации видеоконференций, вебинаров и онлайн-занятий.

В NetAngels можно установить BigBlueButton автоматически из панели управления, выбрав соответствующий дистрибутив при создании сервера. После вам придёт письмо со ссылкой на веб-интерфейс настройки. Введите в него подходящий вам поддомен и выберите установку полной версии. Пока идёт загрузка, укажите в редакторе DNS-записей A-запись для нужного поддомена, ведущую на созданный сервер, — IP-адрес будет в письме.

Когда установка закончится, вы увидите приветственный экран BigBlueButton — войдите с логином и паролем из письма, которое пришло ранее. В логин подставьте ваш поддомен. Теперь можно создать новые аккаунты в разделе «Организация» или начать звонок на главной странице.

Если вы хотите установить BigBlueButton на сервер у другого хостера, инструкция не будет сложнее. Подключитесь к серверу по SSH и выполните:

wget -qO- https://ubuntu.bigbluebutton.org/bbb-install.sh | bash -s -- -v bionic-24 -s example.com -e [email protected] -a -w -g turn.bigbluebutton.ru:Big8976 # замените example.com на выбранный вами домен cd greenlight/ docker exec greenlight-v2 bundle exec rake admin:create

Вы получите данные для входа в BigBlueButton от лица администратора.

Мониторинг

Чтобы постоянно не проверять, хватает ли места на жёстких дисках и не выросло ли неожиданно потребление ресурсов, настроим уведомления в Telegram — это можно сделать из панели управления.

Если место на диске закончится, его всегда можно добавить через раздел «Диски» на странице нужного сервера в панели управления — обновление произойдёт в течение пары минут, без перезагрузки сервера.

Ура! Теперь у нас есть пакет рабочих сервисов, которые запущены на серверах, принадлежащих вам, — никто не сможет ограничить к ним доступ (при условии своевременной оплаты аренды каждого сервера).

Что ещё можно установить на свой сервер

Прямо из панели управления вы можете установить GitLab для хранения репозиториев кода, если ваша компания занимается разработкой. А на VDS можно установить ещё огромное количество сервисов: например, канбан-доску для управления проектами или менеджер паролей. Больше сервисов можно найти в гитхаб-репозитории awesome-selfhosted.

Реклама, ООО «Интернет-Про», 12+

0
17 комментариев
Написать комментарий...
Sergei ZH

Ставьте некстклауд и не парьтесь

Ответить
Развернуть ветку
gospodbog.com

Он платный?

Ответить
Развернуть ветку
Arthurio

Бесплатный - https://nextcloud.com/

Ответить
Развернуть ветку
Viktor C.

самый простой и не сложный вариант, не надо 3к лишних движений совершать

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Бабкин Пётр

Любое место, где нужно вводить номер телефона, оставлять свои сканы паспорта, давно уже обхожу стороной. Практика показала, что никто не будет хранить эти данные в безопасности

Ответить
Развернуть ветку
Павел

А как же вы без мессенджеров и 90% лайфстайл сервисов живёте?

Ответить
Развернуть ветку
Бабкин Пётр

Виртуальные номера и гугл запросы данных

Ответить
Развернуть ветку
Дмитрий Полушин

у вас в заголовке написано про альтернативы для Google Workspace, но я не увидел решения для Google Docs, Google Sheets и тд.
Вы имели в виду файлообменник? Тогда логичнее было бы написать альтернатива Google Drive. Если вы нашли для документов и таблиц тоже опенсорс альтернативы - напишите пожалуйста, буду очень благодарен

Ответить
Развернуть ветку
Sergei ZH

NextCloud + libreoffice plugins

Ответить
Развернуть ветку
Промо
Автор

Дмитрий, привет!

Кроме файлообменника из альтернатив Google Workspace мы подняли аналоги Gmail и Meet. Варианты для работы с документами и таблицами — буквально в последней гиперссылке статьи (от себя рекомендуем Collabora и CryptPad)

https://github.com/awesome-selfhosted/awesome-selfhosted#office-suites

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Billy Jean

Не "если привычные офисные сервисы станут недоступны", а "когда привычные офисные сервисы станут недоступны"

Ответить
Развернуть ветку
Алексей Артемов

Да нет, всегда будет сохраняться гибридная модель. Кому-то проще из офиса работать

Ответить
Развернуть ветку
Arthurio

Как-то искал себе сервер для битрикс, в том числе, netangels пробовал - Битрикс VDS, сами диски были быстрые, а вот с процессором и оперативной памятью были беды.

Облачные VDS
Легкое, масштабируемое решение. От размещения сайта до IT-инфраструктуры крупной компании.

При покупке сразу выделяется, но увеличить можно только диск, а не оперативку...
Опытный админ, что работает с битрикс скажет, что нужны быстрые процессоры + быстрые диски, а для обработки данных нужна ещё и память.
4 ядра и 4 Гб памяти не дадут быстро работать битриксу, если не добавить памяти, а следующие тариф, уже с 4 ядрами и 16 Гб памяти уже космос - 9.5к. Тариф с 8 Гб памяти пропускаю, т.к. этого мало.
Интересный момент - на 4 ядра и 4 Гб памяти работает медленнее, чем на 2 ядрах и 4 Гб памяти.

Это как задавать вопрос про "облачность" - а в чем же ваше облачность?)
Как timeweb, который не понятно что называет облачность, когда виртуальный сервер между хост-серверами переносят часами, даже ночи может не хватить. Потому что все данные хранятся на локальных дисках, а не на какой-нибудь хранилке с доступом с разных серверов.

Ответить
Развернуть ветку
Arthurio

Панелька крутая и информативная, но вот производительность, оставляет желать сильно лучшего...

Ответить
Развернуть ветку
Andy

А можно список всего полезно-корпоратного, что можно поставить на сервер? в первую очередь почему-то почта приходит на ум, наверно из-за платной подписки яндекса

Ответить
Развернуть ветку

Комментарий удален модератором

Развернуть ветку
14 комментариев
Раскрывать всегда