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