💾 Archived View for tilde.club › ~technicalsuwako › blog › openbsd-gemini-server.gmi captured on 2024-05-12 at 15:48:55. Gemini links have been rewritten to link to archived content

View Raw

More Information

⬅️ Previous capture (2023-06-14)

-=-=-=-=-=-=-

ブログ一覧へ

【デジタル自主】OpenBSDでGeminiサーバーを設置方法

公開日:2023-06-06

HTTPは比較的重いため、最近ではGeminiが徐々に人気を集めています。

Linuxサーバーでの設置は比較的容易ですが、OpenBSDの場合はやや複雑になります。

そこで今回は、OpenBSDでGeminiサーバーを設置する方法について説明します。

Geminiとは?

Geminiは極めてシンプルなウェブプロトコルです。

GeminiはGopherとウェブの間隙を埋める新しいインターネットプロトコルとして、

一方の問題を避けながら他方の制約を解決する事を目指して共同設計されました。

Geminiカプセルへのアクセスには、特別なブラウザが必要となります。

オススメのブラウザは以下の通りです(推奨順):

・Amfora(Go)

・Bombadillo(Go)

・Lagrange(CとSDL)

・Elpher(Emacs)

・Kristall(C++とQt)

・Castor(RustとGTK)

HTMLやCSSは使用可能?

いいえ、使用する事は出来ません。

Geminiでは、Gemitextのみがサポートされています。

Gemitextはマークダウンのような形式で、機能性は限定的です。

あたし自身もGeminiカプセルを運用していますので、ぜひご覧下さい。

良いGemtextファイルの例はこちらです。

画像は?

画像の利用は可能ですが、ブラウザ上で表示する事は出来ません。

しかし、画像へのリンクを提供すれば、外部の画像表示ソフトで開く事が出来ます。

gmnxdとは?

gmnxdはOpenBSD用のGeminiサーバーソフトウェアです。

ここではその設置方法を解説します。

HTTPウェブサイトと同一のサーバーでホスティングする事も可能です。

基本的な設置

例としてのドメインは「unkotinko.jp」を用いて説明します。

doas su -l
wget https://lab.abiscuola.org/gmnxd/tarball/v1.2.0/gmnxd-v1.2.0.tar.gz
tar zxfv gmnxd-v1.2.0.tar.gz
cd gmnxd-v1.2.0/src
make
make install
mkdir -p /var/gemini/unkotinko.jp
useradd -g '=uid' -L daemon -s /sbin/nologin  -c 'Gmnxd user' -d /var/gemini _gmnxd
chown -R _gmnxd:_gmnxd /var/gemini
chown -R suwako:suwako /var/gemini/unkotinko.jp

inetd

nvim /etc/inetd.conf
127.0.0.1:11965 stream  tcp     nowait  _gmnxd  /usr/local/libexec/gmnxd        gmnxd
rcctl enable inetd
rcctl start inetd

pf

nvim /etc/pf.conf
...
# Gemini
pass in  on egress proto tcp from any to any port { 1965 }
...
anchor "relayd/*"
pfctl -f /etc/pf.conf

relayd

nvim /etc/relayd.conf
...
protocol gemini {
  tcp { sack, backlog 128 }
  tls keypair "unkotinko.jp"
}
...
relay gemini {
  listen on 0.0.0.0 port 1965 tls
  protocol gemini

  forward to <home> check tcp port 11965
}
rcctl restart relayd

カプセルの内容

新たなカプセルを追加するには、「/var/gemini」内にドメイン名のフォルダを作成して下さい。

例えば、「dekkailolioppai.com」向けのカプセルを作成する場合、

`mkdir /var/gemini/dekkailolioppai.com && touch /var/gemini/dekkailolioppai.com/index.gmi`を実行して下さい。

そのindex.gmiファイルの中に、サンプルページを作成しましょう。

# でっかいロリおっぱい
Hな日本人である。
こんちゃっす!!

> こんにちは!!
> あれあれあれ!?元気でないぞ!?
> もう一回、みんな!カンボジア!!

=> https://youtube.owacon.moe/watch?v=NXnI1Jj0h_8 元ネタ

Geminiブラウザで「gemini://dekkailolioppai.com」にアクセスすると、上記の内容が表示されます。

以上