💾 Archived View for betahowto.duckdns.org › gemini_protocol:gmid captured on 2024-03-21 at 15:13:42. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
Многофункциональный сервер для протокола Gemini ( gemini://betahowto.duckdns.org/gemini_protocol ), с поддержкой виртуальных хостов и реверсивного проксирования.
Кроме типичных пакетов для сборки программ с 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:
/home/gmid/gmid.conf
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 } }
Юнит в этом случае будет таким:
/etc/systemd/system/gmid.service
[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
Проверить работу сервера можно выполнив от пользователя gmid:
netstat -tulpn | grep LISTEN
Домашняя страница ( https://gmid.omarpolo.com/ )
gemini://betahowto.duckdns.org/gemini_protocol
https://github.com/omar-polo/gmid.git