【デジタル自主】OpenBSDでGeminiサーバーを設置方法
このコミットが含まれているのは:
コミット
cb80e95392
|
@ -3,4 +3,5 @@ tor/
|
|||
i2p/
|
||||
draft/
|
||||
public_html/
|
||||
public_gemini/
|
||||
sync.sh
|
||||
|
|
219
gemini/blog.atom
219
gemini/blog.atom
|
@ -3,14 +3,129 @@
|
|||
<id>gemini://technicalsuwako.moe</id>
|
||||
<title>テクニカル諏訪子</title>
|
||||
|
||||
<updated>2023-05-30T00:00:00Z</updated>
|
||||
<updated>2023-06-06T00:00:00Z</updated>
|
||||
|
||||
<author><name>テクニカル諏訪子</name></author>
|
||||
<link href="gemini://technicalsuwako.moe" rel="alternate"></link>
|
||||
<generator uri="https://github.com/piranha/gostatic">gostatic</generator>
|
||||
|
||||
|
||||
|
||||
<entry>
|
||||
<id>blog/openbsd-gemini-server.gmi</id>
|
||||
<author><name>凛</name></author>
|
||||
<title type="html">【デジタル自主】OpenBSDでGeminiサーバーを設置方法</title>
|
||||
<published>2023-06-06T00:00:00Z</published>
|
||||
|
||||
<category term="jp"></category>
|
||||
|
||||
<category term="blog"></category>
|
||||
|
||||
<category term="ウエブサイト"></category>
|
||||
|
||||
<category term="ウエブ開発"></category>
|
||||
|
||||
<category term="bsd"></category>
|
||||
|
||||
<category term="openbsd"></category>
|
||||
|
||||
<category term="gemini"></category>
|
||||
|
||||
<category term="デジタル自主"></category>
|
||||
|
||||
<link href="gemini://technicalsuwako.moe/blog/openbsd-gemini-server.gmi" rel="alternate"></link>
|
||||
<content type="html">
|
||||
|
||||
|
||||
|
||||
<p>HTTPは比較的重いため、最近ではGeminiが徐々に人気を集めています。<br />
|
||||
Linuxサーバーでの設置は比較的容易ですが、OpenBSDの場合はやや複雑になります。<br />
|
||||
そこで今回は、OpenBSDでGeminiサーバーを設置する方法について説明します。</p>
|
||||
<h2 id="gemini">Geminiとは?</h2>
|
||||
<p><a href="gemini://gemini.circumlunar.space/">Geminiは極めてシンプルなウェブプロトコルです。</a><br />
|
||||
GeminiはGopherとウェブの間隙を埋める新しいインターネットプロトコルとして、<br />
|
||||
一方の問題を避けながら他方の制約を解決する事を目指して共同設計されました。<br />
|
||||
Geminiカプセルへのアクセスには、特別なブラウザが必要となります。<br />
|
||||
オススメのブラウザは以下の通りです(推奨順):<br />
|
||||
<a href="https://gh.akisblack.dev/makew0rld/amfora">・Amfora(Go)</a><br />
|
||||
<a href="https://bombadillo.colorfield.space/">・Bombadillo(Go)</a><br />
|
||||
<a href="https://git.skyjake.fi/gemini/lagrange">・Lagrange(CとSDL)</a><br />
|
||||
<a href="https://thelambdalab.xyz/elpher/">・Elpher(Emacs)</a><br />
|
||||
<a href="https://gh.akisblack.dev/MasterQ32/kristall">・Kristall(C++とQt)</a><br />
|
||||
<a href="https://git.sr.ht/~julienxx/castor">・Castor(RustとGTK)</a></p>
|
||||
<h2 id="htmlcss">HTMLやCSSは使用可能?</h2>
|
||||
<p>いいえ、使用する事は出来ません。<br />
|
||||
Geminiでは、Gemitextのみがサポートされています。<br />
|
||||
Gemitextはマークダウンのような形式で、機能性は限定的です。<br />
|
||||
<a href="gemini://technicalsuwako.moe/">あたし自身もGeminiカプセルを運用していますので、ぜひご覧下さい。</a><br />
|
||||
<a href="https://gitler.moe/suwako/technicalsuwako.moe/raw/branch/master/gemini/blog/c-lib-in-zig-use.gmi">良いGemtextファイルの例はこちらです。</a></p>
|
||||
<h2 id="heading">画像は?</h2>
|
||||
<p>画像の利用は可能ですが、ブラウザ上で表示する事は出来ません。<br />
|
||||
しかし、画像へのリンクを提供すれば、外部の画像表示ソフトで開く事が出来ます。</p>
|
||||
<h2 id="gmnxd">gmnxdとは?</h2>
|
||||
<p><a href="https://lab.abiscuola.org/gmnxd/doc/trunk/www/index.wiki">gmnxdはOpenBSD用のGeminiサーバーソフトウェアです。</a><br />
|
||||
ここではその設置方法を解説します。<br />
|
||||
HTTPウェブサイトと同一のサーバーでホスティングする事も可能です。</p>
|
||||
<h2 id="heading-1">基本的な設置</h2>
|
||||
<p>例としてのドメインは「unkotinko.jp」を用いて説明します。</p>
|
||||
<pre><code lang="">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
|
||||
<span style="color:#a2f">cd</span> gmnxd-v1.2.0/src
|
||||
make
|
||||
make install
|
||||
mkdir -p /var/gemini/unkotinko.jp
|
||||
useradd -g <span style="color:#b44">&#39;=uid&#39;</span> -L daemon -s /sbin/nologin -c <span style="color:#b44">&#39;Gmnxd user&#39;</span> -d /var/gemini _gmnxd
|
||||
chown -R _gmnxd:_gmnxd /var/gemini
|
||||
chown -R suwako:suwako /var/gemini/unkotinko.jp
|
||||
</code></pre><h2 id="inetd">inetd</h2>
|
||||
<pre><code lang="">nvim /etc/inetd.conf
|
||||
</code></pre><pre><code lang="">127.0.0.1:11965 stream tcp nowait _gmnxd /usr/local/libexec/gmnxd gmnxd
|
||||
</code></pre><pre><code lang="">rcctl <span style="color:#a2f">enable</span> inetd
|
||||
rcctl start inetd
|
||||
</code></pre><h2 id="pf">pf</h2>
|
||||
<pre><code lang="">nvim /etc/pf.conf
|
||||
</code></pre><pre><code lang="">...
|
||||
# Gemini
|
||||
pass in on egress proto tcp from any to any port { 1965 }
|
||||
...
|
||||
anchor &#34;relayd/*&#34;
|
||||
</code></pre><pre><code lang="">pfctl -f /etc/pf.conf
|
||||
</code></pre><h2 id="relayd">relayd</h2>
|
||||
<pre><code lang="">nvim /etc/relayd.conf
|
||||
</code></pre><pre><code lang="">...
|
||||
protocol gemini {
|
||||
tcp { sack, backlog 128 }
|
||||
tls keypair &#34;unkotinko.jp&#34;
|
||||
}
|
||||
...
|
||||
relay gemini {
|
||||
listen on 0.0.0.0 port 1965 tls
|
||||
protocol gemini
|
||||
|
||||
forward to &lt;home&gt; check tcp port 11965
|
||||
}
|
||||
</code></pre><pre><code lang="">rcctl restart relayd
|
||||
</code></pre><h2 id="heading-2">カプセルの内容</h2>
|
||||
<p>新たなカプセルを追加するには、「/var/gemini」内にドメイン名のフォルダを作成して下さい。<br />
|
||||
例えば、「dekkailolioppai.com」向けのカプセルを作成する場合、<br />
|
||||
<code lang="">mkdir /var/gemini/dekkailolioppai.com &amp;&amp; touch /var/gemini/dekkailolioppai.com/index.gmi</code>を実行して下さい。</p>
|
||||
<p>そのindex.gmiファイルの中に、サンプルページを作成しましょう。</p>
|
||||
<pre><code lang=""># でっかいロリおっぱい
|
||||
Hな日本人である。
|
||||
こんちゃっす!!
|
||||
|
||||
&gt; こんにちは!!
|
||||
&gt; あれあれあれ!?元気でないぞ!?
|
||||
&gt; もう一回、みんな!カンボジア!!
|
||||
|
||||
=&gt; https://youtube.owacon.moe/watch?v=NXnI1Jj0h_8 元ネタ
|
||||
</code></pre><p>Geminiブラウザで「gemini://dekkailolioppai.com」にアクセスすると、上記の内容が表示されます。</p>
|
||||
<p>以上</p>
|
||||
|
||||
|
||||
</content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<id>blog/libreredirect-262.gmi</id>
|
||||
<author><name>凛</name></author>
|
||||
|
@ -320,105 +435,5 @@ nvim main.zig
|
|||
</content>
|
||||
</entry>
|
||||
|
||||
<entry>
|
||||
<id>blog/urloli-210.gmi</id>
|
||||
<author><name>凛</name></author>
|
||||
<title type="html">【076】URLロリ 2.1.0登場</title>
|
||||
<published>2023-05-13T00:00:00Z</published>
|
||||
|
||||
<category term="jp"></category>
|
||||
|
||||
<category term="blog"></category>
|
||||
|
||||
<category term="ウエブ開発"></category>
|
||||
|
||||
<category term="076"></category>
|
||||
|
||||
<category term="urloli"></category>
|
||||
|
||||
<category term="urlロリ"></category>
|
||||
|
||||
<link href="gemini://technicalsuwako.moe/blog/urloli-210.gmi" rel="alternate"></link>
|
||||
<content type="html">
|
||||
|
||||
|
||||
|
||||
<p>URLロリ は2.1.0にバージョンアップしました!!</p>
|
||||
<h2 id="url">URLロリって何?</h2>
|
||||
<p>URLロリはクッソ小さいURL短縮作成ソフトだわ〜♡</p>
|
||||
<h2 id="heading">変更</h2>
|
||||
<ul>
|
||||
<li>ローカライズは関数化</li>
|
||||
<li>API機能性</li>
|
||||
<li>サーバーのソースコードを短くに</li>
|
||||
</ul>
|
||||
<h2 id="api">APIについて</h2>
|
||||
<p><a href="https://urlo.li/api">/api</a><br />
|
||||
インスタンスURL及びバージョンを確認(GET)</p>
|
||||
<h3 id="heading-1">例の結果</h3>
|
||||
<pre><code lang="">{
|
||||
&#34;url&#34;: &#34;https://urlo.li&#34;,
|
||||
&#34;version&#34;: &#34;2.1.0&#34;
|
||||
}
|
||||
</code></pre><p><a href="https://urlo.li/api/lolify">/api/lolify</a><br />
|
||||
URLを短縮する(既に存在する場合、短縮済みURLを表示) (POST)</p>
|
||||
<h3 id="heading-2">必須のパラメートル</h3>
|
||||
<ul>
|
||||
<li>url</li>
|
||||
</ul>
|
||||
<h3 id="heading-3">例の結果</h3>
|
||||
<p>既に存在する場合</p>
|
||||
<pre><code lang="">curl -d url=gemini://technicalsuwako.moe https://urlo.li/api/lolify
|
||||
{
|
||||
&#34;code&#34;: 200,
|
||||
&#34;error&#34;: &#34;&#34;,
|
||||
&#34;url&#34;: &#34;https://urlo.li/yoWJx&#34;,
|
||||
&#34;origin&#34;: &#34;gemini://technicalsuwako.moe&#34;,
|
||||
&#34;isnew&#34;: false
|
||||
}
|
||||
</code></pre><p>新しく追加された場合</p>
|
||||
<pre><code lang="">curl -d url=gemini://technicalsuwako.moe/about https://urlo.li/api/lolify
|
||||
{
|
||||
&#34;code&#34;: 200,
|
||||
&#34;error&#34;: &#34;&#34;,
|
||||
&#34;url&#34;: &#34;https://urlo.li/fiW3B&#34;,
|
||||
&#34;origin&#34;: &#34;gemini://technicalsuwako.moe/about&#34;,
|
||||
&#34;isnew&#34;: true
|
||||
}
|
||||
</code></pre><p>エラーの場合</p>
|
||||
<pre><code lang="">curl -d url=technicalsuwako.moe https://urlo.li/api/lolify
|
||||
{
|
||||
&#34;code&#34;: 400,
|
||||
&#34;error&#34;: &#34;URLは「http://」又は「https://」で始めます。&#34;,
|
||||
&#34;url&#34;: &#34;&#34;,
|
||||
&#34;origin&#34;: &#34;&#34;,
|
||||
&#34;isnew&#34;: false
|
||||
}%
|
||||
</code></pre><pre><code lang="">curl -d url=gemini://technicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moetechnicalsuwako.moe https://urlo.li/api/lolify
|
||||
{
|
||||
&#34;code&#34;: 400,
|
||||
&#34;error&#34;: &#34;URLは500文字以内です。&#34;,
|
||||
&#34;url&#34;: &#34;&#34;,
|
||||
&#34;origin&#34;: &#34;&#34;,
|
||||
&#34;isnew&#34;: false
|
||||
}
|
||||
</code></pre><h2 id="heading-4">ソースコード</h2>
|
||||
<p><a href="https://gitler.moe/suwako/urloli">Gitler</a></p>
|
||||
<h2 id="heading-5">公式インスタンス</h2>
|
||||
<p><a href="https://urlo.li/">https://urlo.li/</a></p>
|
||||
<h2 id="heading-6">ダウンロード</h2>
|
||||
<p><a href="https://gitler.moe/suwako/urloli/releases">リリースページ</a></p>
|
||||
<h2 id="heading-7">会話</h2>
|
||||
<h3 id="xmpp">XMPP</h3>
|
||||
<p><a href="xmpp:urloli@chat.xmpp.076.ne.jp?join">xmpp:urloli@chat.xmpp.076.ne.jp?join</a></p>
|
||||
<h3 id="irc">IRC</h3>
|
||||
<p>irc.076.ne.jp/6697<br />
|
||||
#urloli</p>
|
||||
<p>以上</p>
|
||||
|
||||
|
||||
</content>
|
||||
</entry>
|
||||
|
||||
|
||||
</feed>
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
# 記事一覧
|
||||
|
||||
=> /blog/openbsd-gemini-server.gmi 2023年06月06日 【デジタル自主】OpenBSDでGeminiサーバーの設置方法
|
||||
=> /blog/libreredirect-262.gmi 2023年05月13日 【076】Libre Redirect 2.6.2登場
|
||||
=> /blog/diff-zig-rust.gmi 2023年05月24日 【プログラミング】RustとZigの違い
|
||||
=> /blog/spliti-110.gmi 2023年05月24日 【オワコンテック】spliti 1.1.0登場
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
=> /blog.gmi ブログ一覧へ
|
||||
|
||||
#【デジタル自主】OpenBSDでGeminiサーバーを設置方法
|
||||
公開日:2023-06-06
|
||||
|
||||
HTTPは比較的重いため、最近ではGeminiが徐々に人気を集めています。
|
||||
Linuxサーバーでの設置は比較的容易ですが、OpenBSDの場合はやや複雑になります。
|
||||
そこで今回は、OpenBSDでGeminiサーバーを設置する方法について説明します。
|
||||
|
||||
## Geminiとは?
|
||||
|
||||
=> gemini://gemini.circumlunar.space/ Geminiは極めてシンプルなウェブプロトコルです。
|
||||
GeminiはGopherとウェブの間隙を埋める新しいインターネットプロトコルとして、
|
||||
一方の問題を避けながら他方の制約を解決する事を目指して共同設計されました。
|
||||
Geminiカプセルへのアクセスには、特別なブラウザが必要となります。
|
||||
オススメのブラウザは以下の通りです(推奨順):
|
||||
=> https://gh.akisblack.dev/makew0rld/amfora ・Amfora(Go)
|
||||
=> https://bombadillo.colorfield.space/ ・Bombadillo(Go)
|
||||
=> https://git.skyjake.fi/gemini/lagrange ・Lagrange(CとSDL)
|
||||
=> https://thelambdalab.xyz/elpher/ ・Elpher(Emacs)
|
||||
=> https://gh.akisblack.dev/MasterQ32/kristall ・Kristall(C++とQt)
|
||||
=> https://git.sr.ht/~julienxx/castor ・Castor(RustとGTK)
|
||||
|
||||
## HTMLやCSSは使用可能?
|
||||
|
||||
いいえ、使用する事は出来ません。
|
||||
Geminiでは、Gemitextのみがサポートされています。
|
||||
Gemitextはマークダウンのような形式で、機能性は限定的です。
|
||||
=> gemini://technicalsuwako.moe/ あたし自身もGeminiカプセルを運用していますので、ぜひご覧下さい。
|
||||
=> https://gitler.moe/suwako/technicalsuwako.moe/raw/branch/master/gemini/blog/c-lib-in-zig-use.gmi 良いGemtextファイルの例はこちらです。
|
||||
|
||||
## 画像は?
|
||||
|
||||
画像の利用は可能ですが、ブラウザ上で表示する事は出来ません。
|
||||
しかし、画像へのリンクを提供すれば、外部の画像表示ソフトで開く事が出来ます。
|
||||
|
||||
## gmnxdとは?
|
||||
|
||||
=> https://lab.abiscuola.org/gmnxd/doc/trunk/www/index.wiki gmnxdはOpenBSD用のGeminiサーバーソフトウェアです。
|
||||
ここではその設置方法を解説します。
|
||||
HTTPウェブサイトと同一のサーバーでホスティングする事も可能です。
|
||||
|
||||
## 基本的な設置
|
||||
|
||||
例としてのドメインは「unkotinko.jp」を用いて説明します。
|
||||
|
||||
```sh
|
||||
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
|
||||
|
||||
```sh
|
||||
nvim /etc/inetd.conf
|
||||
```
|
||||
|
||||
```
|
||||
127.0.0.1:11965 stream tcp nowait _gmnxd /usr/local/libexec/gmnxd gmnxd
|
||||
```
|
||||
|
||||
```sh
|
||||
rcctl enable inetd
|
||||
rcctl start inetd
|
||||
```
|
||||
|
||||
## pf
|
||||
|
||||
```sh
|
||||
nvim /etc/pf.conf
|
||||
```
|
||||
|
||||
```
|
||||
...
|
||||
# Gemini
|
||||
pass in on egress proto tcp from any to any port { 1965 }
|
||||
...
|
||||
anchor "relayd/*"
|
||||
```
|
||||
|
||||
```sh
|
||||
pfctl -f /etc/pf.conf
|
||||
```
|
||||
|
||||
## relayd
|
||||
|
||||
```sh
|
||||
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
|
||||
}
|
||||
```
|
||||
|
||||
```sh
|
||||
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」にアクセスすると、上記の内容が表示されます。
|
||||
|
||||
以上
|
|
@ -11,8 +11,8 @@
|
|||
=> /webring.gmi リング
|
||||
|
||||
## SNSメニュー
|
||||
=> https://technicalsuwako.moe/blog.atom Atomで登録
|
||||
=> https://technicalsuwako.moe/twtxt.txt twtxtでフォロー
|
||||
=> /blog.atom Atomで登録
|
||||
=> /twtxt.txt twtxtでフォロー
|
||||
=> https://social.076.moe/suwako GNU Socialでフォロー
|
||||
=> https://video.076.moe/a/suwako PeerTubeで登録
|
||||
|
||||
|
@ -26,6 +26,7 @@
|
|||
|
||||
## ミラー(Gemini)
|
||||
=> gemini://technicalsuwako.moe/ 一般ネット 1
|
||||
=> gemini://tilde.club/~technicalsuwako/ 一般ネット 2
|
||||
|
||||
## 支援♡
|
||||
=> /monero.gmi Monero
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
# nick = techsuwako
|
||||
# url = gemini://technicalsuwako.moe/twtxt.txt
|
||||
# avatar = https://076.moe/static/suwako.png
|
||||
# avatar = gemini://076.moe/static/suwako.jpg
|
||||
# description = テクニカル諏訪子様のtwtxtフィード
|
||||
# link = ホームページ gemini://technicalsuwako.moe
|
||||
2023-06-06T00:00:00Z09:00 【デジタル自主】OpenBSDでGeminiサーバーを設置方法 - gemini://technicalsuwako.moe/blog/blog/openbsd-gemini-server.gmi
|
||||
2023-05-30T00:00:00Z09:00 【076】Libre Redirect 2.6.2登場 - gemini://technicalsuwako.moe/blog/blog/libreredirect-262.gmi
|
||||
2023-05-24T21:00:00Z09:00 【プログラミング】RustとZigの違い - gemini://technicalsuwako.moe/blog/blog/diff-zig-rust.gmi
|
||||
2023-05-24T00:00:00Z09:00 【オワコンテック】spliti 1.1.0登場 - gemini://technicalsuwako.moe/blog/blog/spliti-110.gmi
|
||||
|
|
|
@ -67,7 +67,8 @@
|
|||
</div>
|
||||
<div class="header-links">
|
||||
ミラー(Gemini):
|
||||
<a href="gemini://technicalsuwako.moe/"><img class="icon" src="/static/clearnet.png" alt="" />一般ネット</a>
|
||||
<a href="gemini://technicalsuwako.moe/"><img class="icon" src="/static/clearnet.png" alt="" />一般ネット</a> |
|
||||
<a href="gemini://tilde.club/~technicalsuwako/"><img class="icon" src="/static/tilde.png" alt="" />Tilde</a>
|
||||
</div>
|
||||
<div>
|
||||
支援♡ : <a href="/support/monero/"><img class="icon" src="/static/monero.png" alt="" />Monero</a>
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
{{ end }}
|
||||
<author><name>{{ .Site.Other.Author }}</name></author>
|
||||
<link href="{{ .Site.Other.Url }}" rel="alternate"></link>
|
||||
<generator uri="https://github.com/piranha/gostatic">gostatic</generator>
|
||||
|
||||
{{ with .Site.Pages.Children "blog/" }}
|
||||
{{ range .Slice 0 5 }}
|
||||
|
|
|
@ -0,0 +1,140 @@
|
|||
title: 【デジタル自主】OpenBSDでGeminiサーバーを設置方法
|
||||
author: 凛
|
||||
date: 2023-06-06
|
||||
tags: jp,blog,ウエブサイト,ウエブ開発,bsd,openbsd,gemini,デジタル自主
|
||||
----
|
||||
HTTPは比較的重いため、最近ではGeminiが徐々に人気を集めています。\
|
||||
Linuxサーバーでの設置は比較的容易ですが、OpenBSDの場合はやや複雑になります。\
|
||||
そこで今回は、OpenBSDでGeminiサーバーを設置する方法について説明します。
|
||||
|
||||
## Geminiとは?
|
||||
|
||||
[Geminiは極めてシンプルなウェブプロトコルです。](gemini://gemini.circumlunar.space/)\
|
||||
GeminiはGopherとウェブの間隙を埋める新しいインターネットプロトコルとして、\
|
||||
一方の問題を避けながら他方の制約を解決する事を目指して共同設計されました。\
|
||||
Geminiカプセルへのアクセスには、特別なブラウザが必要となります。\
|
||||
オススメのブラウザは以下の通りです(推奨順):\
|
||||
[・Amfora(Go)](https://gh.akisblack.dev/makew0rld/amfora)\
|
||||
[・Bombadillo(Go)](https://bombadillo.colorfield.space/)\
|
||||
[・Lagrange(CとSDL)](https://git.skyjake.fi/gemini/lagrange)\
|
||||
[・Elpher(Emacs)](https://thelambdalab.xyz/elpher/)\
|
||||
[・Kristall(C++とQt)](https://gh.akisblack.dev/MasterQ32/kristall)\
|
||||
[・Castor(RustとGTK)](https://git.sr.ht/~julienxx/castor)
|
||||
|
||||
## HTMLやCSSは使用可能?
|
||||
|
||||
いいえ、使用する事は出来ません。\
|
||||
Geminiでは、Gemitextのみがサポートされています。\
|
||||
Gemitextはマークダウンのような形式で、機能性は限定的です。\
|
||||
[あたし自身もGeminiカプセルを運用していますので、ぜひご覧下さい。](gemini://technicalsuwako.moe/)\
|
||||
[良いGemtextファイルの例はこちらです。](https://gitler.moe/suwako/technicalsuwako.moe/raw/branch/master/gemini/blog/c-lib-in-zig-use.gmi)
|
||||
|
||||
## 画像は?
|
||||
|
||||
画像の利用は可能ですが、ブラウザ上で表示する事は出来ません。\
|
||||
しかし、画像へのリンクを提供すれば、外部の画像表示ソフトで開く事が出来ます。
|
||||
|
||||
## gmnxdとは?
|
||||
|
||||
[gmnxdはOpenBSD用のGeminiサーバーソフトウェアです。](https://lab.abiscuola.org/gmnxd/doc/trunk/www/index.wiki)\
|
||||
ここではその設置方法を解説します。\
|
||||
HTTPウェブサイトと同一のサーバーでホスティングする事も可能です。
|
||||
|
||||
## 基本的な設置
|
||||
|
||||
例としてのドメインは「unkotinko.jp」を用いて説明します。
|
||||
|
||||
```sh
|
||||
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
|
||||
|
||||
```sh
|
||||
nvim /etc/inetd.conf
|
||||
```
|
||||
|
||||
```
|
||||
127.0.0.1:11965 stream tcp nowait _gmnxd /usr/local/libexec/gmnxd gmnxd
|
||||
```
|
||||
|
||||
```sh
|
||||
rcctl enable inetd
|
||||
rcctl start inetd
|
||||
```
|
||||
|
||||
## pf
|
||||
|
||||
```sh
|
||||
nvim /etc/pf.conf
|
||||
```
|
||||
|
||||
```
|
||||
...
|
||||
# Gemini
|
||||
pass in on egress proto tcp from any to any port { 1965 }
|
||||
...
|
||||
anchor "relayd/*"
|
||||
```
|
||||
|
||||
```sh
|
||||
pfctl -f /etc/pf.conf
|
||||
```
|
||||
|
||||
## relayd
|
||||
|
||||
```sh
|
||||
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
|
||||
}
|
||||
```
|
||||
|
||||
```sh
|
||||
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」にアクセスすると、上記の内容が表示されます。
|
||||
|
||||
以上
|
|
@ -1,6 +1,6 @@
|
|||
# nick = techsuwako
|
||||
# url = {{ .Site.Other.Url }}/twtxt.txt
|
||||
# avatar = https://076.moe/static/suwako.png
|
||||
# avatar = https://076.moe/static/suwako.jpg
|
||||
# description = テクニカル諏訪子様のtwtxtフィード
|
||||
# link = ホームページ {{ .Site.Other.Url }}{{ with .Site.Pages.Children "blog/" }}{{ range .Slice 0 500 }}
|
||||
{{ .Date.Format "2006-01-02T15:04:05Z09:00" }} {{ html .Title }} - {{ .Site.Other.Url }}/{{ .Url }}{{ end }}{{ end }}
|
||||
|
|
読み込み中…
新しいイシューから参照