oldlace
menu

Установка настройка и запуск Gemini сервера Agate

(памятка/инструкция, краткое пошаговое руководство)

Паразумевается, что мы уже имеем всё то, что уже было описано в статьях «Простой и быстрый способ подготовки Raspberry Pi к работе и установке Raspberry Pi OS», а также «Подключение Raspberry Pi к сети и некоторые первоначальные настройки»

Подготовка

Удаленно заходим на нашу Raspberry Pi
(user - наш пользователь, host - наш IP адрес)

ssh user@host

Создаем директорию gemini
(подразумевается что мы находимся в нашей домашней директории)

mkdir gemini

Внутри директории gemini создадим две поддиректории bin и public
(для файлов сервера и файлов/страничек которые сервер будет отдавать на внешние запросы)

mkdir gemini/bin gemini/public

Ставим Agate

Я решил, что проще всего будет использовать Agate. Это простой сервер для протокола Gemini.

Домашняя страница находится здесь:

https://github.com/mbrubeck/agate

Нам нужны предварительно скомпилированные двоичные файлы pre-compiled binary которые можно взять здесь:

https://github.com/mbrubeck/agate/releases

Нам нужен тот который подходит под нашу систему. Я буду ставить на Raspberry Pi Zero 2 W и значит мне нужен:
agate.armv7-unknown-linux-gnueabihf.gz

Команда uname вывоводит информацию о системе. Например uname -a выводит полную информацию.

uname -a

А например name -m выводит имя аппаратного имени машины.

uname -m

В моем случае (Raspberry Pi Zero 2 W), мы получим armv7l

Скачиваем подходящий нам предварительно скомпилированный двоичный файл

wget https://github.com/mbrubeck/agate/releases/download/v3.3.0/agate.armv7-unknown-linux-gnueabihf.gz

И распаковываем его

gunzip agate.armv7-unknown-linux-gnueabihf.gz

Перемещаем его в созданную ранее директорию bin и переименовываем в agate

mv agate.armv7-unknown-linux-gnueabihf gemini/bin/agate

Даем права на «выполнение» файла

chmod +x gemini/bin/agate

Теперь создадим наш первый «индексный» файл

nano gemini/public/index.gmi

Напишем туда что-нибудь типа:

# Hello!
This is my first page in Gemini Space

Запуск

Запускаем сервер с указанием пути до нашей public директории, портом (1965), именем и языком

/home/gemini/bin/agate --content /home/gemini/public/ --addr [::]:1965 --addr 0.0.0.0:1965 --hostname example.com --lang ru-RU

Сертификат

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

Также, я думаю, для удобства, имеет смысл перенести их в директорию bin

mv .certificates/ gemini/bin/.cert

Настройка автоматического запуска

Для этого создадим файл в директории /etc/systemd/system/

sudo nano /etc/systemd/system/agate.service

Разместим там следующие иструкции
(Подставляя правильные пути для двоичного файла, публичной директории и директории сертификатов указав нашего пользователя)

[Unit]
Description=agate
After=network.target

[Service]
User=user
Type=simple
ExecStart=/home/gemini/bin/agate --content /home/gemini/public/ --addr [::]:1965 --addr 0.0.0.0:1965 --hostname example.ru  --certs /home/dmntv/gemini/bin/.cert --lang ru-RU

[Install]
WantedBy=default.target

Управление

Запустить службу

sudo systemctl start agate

Остановить службу

sudo systemctl stор agate

Показать состояние службы

sudo systemctl status agate

Добавить службу в автозагрузку

sudo systemctl enable agate

Обновить конфигурацию после внесения изменений

sudo systemctl daemon-reload

Посмотреть полный список всех опций команды systemctl

systemctl --help