Установка настройка и запуск 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