How to Wiki Database (change log) http://[222:a8e4:50cd:55c:788e:b0a5:4e2f:a92c]
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.8 KiB

9 months ago
====== Gmid ======
Многофункциональный сервер для протокола [[:gemini_protocol|Gemini]], с поддержкой виртуальных хостов и реверсивного проксирования.
===== Установка =====
Кроме типичных пакетов для сборки программ с make, потребуется также:
<code>
apt install bison byacc
</code>
Как и в большинстве случаев, удобным будет создать отдельного пользователя:
<code>
useradd -m gmid
</code>
Логинимся и забираем последнюю версию из репозитория (есть зеркало на GitHub) и осуществляем сборку командами:
<code>
git clone https://github.com/omar-polo/gmid.git
cd gmid
./configure
make
</code>
===== Проксирование =====
Для сертификатов виртуальных хостов можно создать отдельные директории, там же можно расположить конфигурации.
Можно создать общий файл конфигурации для запуска в рамках одного юнита / процесса.
Пример проксирования общего IPv4 Clearnet на два IPv6 Yggdrasil:
<file - /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
}
}
</file>
Юнит в этом случае будет таким:
<file - /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
</file>
* -f указывает на "foreground", иначе процесс будет стартовать в фоновом режиме
* -v verbose, отладка
Проверить работу сервера можно выполнив от пользователя gmid:
<code>netstat -tulpn | grep LISTEN</code>
===== Ссылки =====
[[https://gmid.omarpolo.com/|Домашняя страница]]