molly-brown на Debian 13

molly-brown это - это полнофункциональный сервер Gemini на Go. На текущий момент это единственный сервер, доступный из репозитория Debian.

Устанавливаем пакеты:

# apt install molly-brown ncat ssl-cert

Качаем исходники пакета и запускаем скрипт:

$ apt source molly-brown
# sh molly-brown-0.0~git20230820.2068c3b/debian/tests/run-server

Если интересно, содержание скрипта следующее:

#!/bin/sh

set -e
set -x

# Set hostname to match certificates
echo "Hostname = \"$(hostname -f)\"" >> /etc/molly-brown/localhost.conf

# Create links for SSL certificate and key
mkdir --parents /etc/molly-brown/certs
ln --symbolic --force /etc/ssl/certs/ssl-cert-snakeoil.pem \
   /etc/molly-brown/certs/localhost.crt
ln --symbolic --force /etc/ssl/private/ssl-cert-snakeoil.key \
   /etc/molly-brown/certs/localhost.key

# Create gemtext documents
mkdir --parents /var/lib/molly-brown
cat > /var/lib/molly-brown/test.gmi <<EOF
# Gemtext example

This is an example of gemtext.

## List example

* Item 1
* Item 2

## Quote example

> Hello, world.
EOF

mkdir --parents /var/lib/molly-brown/users/molly
cat > /var/lib/molly-brown/users/molly/test.gmi <<EOF
# Example using HomeDocBase

This document is accessed through ~/molly/test.gmi path.
EOF

# Start server
systemctl enable molly-brown@localhost
systemctl start molly-brown@localhost
sleep 10

# Get various documents and folder listings
for i in / /test.gmi /~/ /~/molly/ /~/molly/test.gmi
do
    url="gemini://$(hostname -f)$i"
    echo
    echo "Get $url"
    echo "$url" | ncat --ssl localhost 1965 || exit 1
done

Вы можете использовать этот скрипт или написать свой на основе этого.

Вы успешно установили и запустили сервер. Это было не сложно, правда? Теперь всё что осталось - это загрузить нашу капсулу в директорию /var/log/private/molly-brown. К сожалению, этот метод подразумевает загрузку капсулы только через суперпользователя, потому-что systemd напрямую контролирует права и владельцев /var/log/private.

Чтобы загружать файлы как обычный пользователь необходимо в файле конфигурации поменять путь DocBase на что-то другое (например /var/gemini) и выдать права или владение директории нужному пользователю, а затем перезагрузить сервер.

$ mkdir /var/gemini
$ sed -i 's|lib/private/molly-brown|gemini|g' /etc/molly-brown/localhost.conf
$ chown lessavin /var/gemini
$ systemctl restart molly-brown@localhost.service

Смотрите также