====== Gmid ======
Многофункциональный сервер для протокола [[:gemini_protocol|Gemini]], с поддержкой виртуальных хостов и реверсивного проксирования.
===== Установка =====
Кроме типичных пакетов для сборки программ с make, потребуется также:
apt install bison byacc
Как и в большинстве случаев, удобным будет создать отдельного пользователя:
useradd -m gmid
Логинимся и забираем последнюю версию из репозитория (есть зеркало на GitHub) и осуществляем сборку командами:
git clone https://github.com/omar-polo/gmid.git
cd gmid
./configure
make
===== Проксирование =====
Для сертификатов виртуальных хостов можно создать отдельные директории, там же можно расположить конфигурации.
Можно создать общий файл конфигурации для запуска в рамках одного юнита / процесса.
Пример проксирования общего IPv4 Clearnet на два IPv6 Yggdrasil:
server "betahowto.duckdns.org" {
listen on 94.140.114.89 port 1965
cert "/home/gmid/host/betahowto.duckdns.org/cert.pem"
key "/home/gmid/host/betahowto.duckdns.org/key.rsa"
proxy {
sni "betahowto.duckdns.org"
relay-to 301:5eb5:f061:678e::b port 1965
verifyname off
}
}
server "kevachat.duckdns.org" {
listen on 94.140.114.89 port 1965
cert "/home/gmid/host/kevachat.duckdns.org/cert.pem"
key "/home/gmid/host/kevachat.duckdns.org/key.rsa"
proxy {
sni "kevachat.duckdns.org"
relay-to 201:23b4:991a:634d:8359:4521:5576:15b7 port 1965
verifyname off
}
}
Юнит в этом случае будет таким:
[Unit]
Description=gmid
After=network.target
[Service]
Type=simple
User=gmid
Group=gmid
WorkingDirectory=/home/gmid/
ExecStart=/home/gmid/gmid/gmid -c /home/gmid/gmid.conf -f -v
StandardOutput=file:/home/gmid/output.log
StandardError=file:/home/gmid/debug.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
* -f указывает на "foreground", иначе процесс будет стартовать в фоновом режиме
* -v verbose, отладка
Проверить работу сервера можно выполнив от пользователя gmid:
netstat -tulpn | grep LISTEN
===== Ссылки =====
[[https://gmid.omarpolo.com/|Домашняя страница]]