96 lines
2.8 KiB
Plaintext
96 lines
2.8 KiB
Plaintext
====== 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/|Домашняя страница]] |