Установка Snikket

Материал из Мир Jabber
Версия от 10:44, 13 ноября 2023; Rain (обсуждение | вклад) (→‎Домен)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигацииПерейти к поиску

Это простое руководство позволит всего за несколько минут установить и настроить собственный сервер на базе Snikket.

Для установки потребуется компьютер с внешним IP-адресом, на котором есть возможность установить необходимое ПО, а также домен, указывающий на данный адрес и где можно создать поддомены.

Приступим!

Домен

Для работы сервиса потребуется всего 3 (или 4, если у вас есть IPv6) записи в DNS:

  • Основная А/AAAA-запись для домена, указывающая на внешний IP-адрес.
  • Субдомен groups для конференций.
  • Субдомен share для файлообмена.

2 последние записи для простоты можно сделать CNAME-алиасами на первую, чтобы не приходилось везде указывать IP-адрес.

Для данного сервера это выглядело бы так:

jabberworld.info IN A 185.161.208.229
jabberworld.info IN AAAA 2a07:c801:0:5::

groups.jabberworld.info IN CNAME jabberworld.info
share.jabberworld.info IN CNAME jabberworld.info

Docker

Snikket-сервер предоставляется в виде готовых контейнеров для Docker, поэтому все, что требуется - установить сам Docker и дать в нем команду на установку нужных образов. Инструкции по установке Docker есть для различных дистрибутивов Linux на его официальном сайте:

Например, для Debian...

...все сводится к следующему:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add the repository to Apt sources:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Дополнительно нужно поставить утилиту docker-compose:

sudo curl -L "https://github.com/docker/compose/releases/download/1.25.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod a+x /usr/local/bin/docker-compose

Подготовка

Теперь просто скачиваем конфиг-файл Docker'а для Snikket:

mkdir /etc/snikket
cd /etc/snikket
curl -o docker-compose.yml https://snikket.org/service/resources/docker-compose.beta.yml

А дальше в том же каталоге создаем файл snikket.conf, где будет указан нужный домен и email администратора:

# The primary domain of your Snikket instance
SNIKKET_DOMAIN=example.com

# An email address where the admin can be contacted
# (also used to register your Let's Encrypt account to obtain certificates)
SNIKKET_ADMIN_EMAIL=you@example.com

Запускаем

Вот и все! Запускаем сервер командой

docker-compose up -d

При первом запуске будут скачаны все нужные зависимости. Первым делом certbot получит сертификаты для домена и его субдоменов, после чего будет запущена основная часть сервера. Создайте пользователя-администратора командой

docker exec snikket create-invite --admin --group default

В ответ будет возвращена ссылка-приглашение на веб-интерфейс, по которой можно будет создать нового пользователя. В дальнейшем под этим пользователем можно авторизоваться в веб-интерфейсе для управления сервером:

Теперь можете приступить к созданию приглашений для своих друзей и знакомых!

Ссылки