Gemini Capsule を公開する
.gmi ファイル等を用いて作成したもの、
いわゆる Web サイト に該当するものを Gemini Capsule と呼びます。
※ Geminispace を Web のように表現する人もいるのですが、
定義されている用語としては
Gemini プロトコルで使われる全体の事を Geminispace と表現します。
ここでは 複数の Capsule(ページ)等によって構成された
Gemini Capsule を公開する方法を紹介しています。
🎈 Gemini(インターネットプロトコル) | ふうせん🎈 FU-SEN
https: 側のサイトでは上記のページで記載しています。
- - - 🎈 - - -
GemCities
♊ Gemcities (gemini:)
♊ Gemcities (https:)
昔存在していた Geocities (Yahoo! Geocities) の Gemini 版です。
無料で 50MB のホスティング領域を提供しています。
♊ Create your capsule | Gemcities (https:)
こちらから登録を行えます。
- Username - 公開アドレス gemini://●●●.gemcities.com の ●●● になります。
- Email address - + を使用できます。復旧用で登録直後にメールが届きます。
- Password - 8 文字以上を入力して下さい。
メールが届くので、文中の URL をクリックすると、
正式に登録され、ログインできるようになります。
ログインは https: 側の右上「Sign in」からです。
ログインすると編集画面になり、
画面上で Gemtext を用いて Camsule を構築します。
デフォルトでは index.gmi だけが空白状態で生成されています。
左サイドバーからファイルを選択し、ファイルを作成・編集していきます。
なお、ファイルのアップロードはなく、
ファイル・ディレクトリを作成するのみなので、
Gemcities でファイル保存できるのはテキストファイルのみとなります。
「Export」で .zip ファイルに圧縮してファイル保存できます。
これでバックアップも可能です。
「New folder」で例えば folder というフォルダを作成したとして、
「New file」でその中にファイルを作成する場合は
folder/index.gmi と入力します。
ここで folder を参照しているからと index.gmi と入力すると、
ルートにある index.gmi を上書き生成して、抹消してしまうのでご注意下さい。
GemCities Forum
2026年5月11日(日本時間 5月12日)、GemCities Forum が新たに公開されました。
その前日に GemCities は数時間ダウンしていたのですが、アナウンスする場所がなく、
利用者も詳細を把握できない状態になっていました。
Forum の投稿によると「停電によるダウン」と記載されています。
- - - 🎈 - - -
MyGemini / MyGemini.Space
👤 MyGemini (gemini:)
👤 MyGemini.Space (https:)
Gemini で作成するブログ Gemlog に適したスタイル。右上から登録でき、
登録に必要なのははメールアドレス( + 使用可能)とパスワードです。
登録すると Gemlog の名前を付け、その後投稿タイトルとコンテンツを作成できます。
コンテンツは Gemtext を使用可能です。
保存できるのはこの Gemtext のみになります。
gemini://mygemini.space/gemlogs/●●● で Gemlog のトップページ(投稿一覧)、
gemini://mygemini.space/gemlogs/●●●/posts/●●● で投稿内容となります。
●●●` は数値でおそらく作成順に順番で生成されています。
- - - 🎈 - - -
sourcehub pages
◯ sourcehut pages (gemini:)
◯ sourcehut pages (https:)
sourcehut は GitHub・GitLab・SourceTree のように
ソースを公開・管理できるところです。
◯ sourcehut
ただし sourcehut pages は GitHub Pages などのような Git 管理必須ではなく、
CLI で公開する事ができます。更に gemini: と https: でそれぞれ公開できます。
hut という CLI も存在するのですが、こちらは https: 限定で、
gemini: を公開する場合は tar と curl を用いての公開となります。
なお、最新の Windows では tar・curl 共に標準で使用できるようになっています。
もちろん 7-zip 等、他のツールを用いても構いません。
◯ meta.sr.ht
まず、meta.sr.ht からアカウントを登録します。
この時のユーザー名が ●●●.srht.site の ●●● になります。
●●●.srht.site 以外に独自ドメインも対応しています。
メールも認証されるので、受信できるメールアドレス必須です。
◯ パーソナルトークン | meta.sr.ht
次に トークン を発行します。
この トークン はパスワード同様なので、公開しないようご注意下さい。
index.gmi などを作成したら、tar で site.tar.gz に圧縮します。
tar -C フォルダ -cvzf site.tar.gz .
あとは次の curl コマンドで公開します。
curl --oauth2-bearer "トークン" -Fcontent=@site.tar.gz -Fprotocol=GEMINI \
https://pages.sr.ht/publish/ユーザー名.srht.site
このコマンドで -Fprotocol=GEMINI を外すと https: での公開になります。
◯ Custom domains with sourcehut pages
独自ドメインはネームサーバの設定を行った後
●●●.srht.site を独自ドメインに変更します。
- - - 🎈 - - -
その他 Gemini レンタルサーバー
その他次でも提供されています。
未確認、またはあえて詳細に記載を避けているところです。
Ctrl-C.club
hashnix.club
flounder!
Midnight
pollux.casa
SDF Public Access UNIX System
Smol Pub
tilde.team
tilde.town
tilde.pink
Un bon café ! (フランス語)
- - - 🎈 - - -
Gemini サーバーで公開する
Gemini プロトコルがデフォルトで使用するポート番号は 1965 です。
また SSL 証明書が必要 ですが、TOFU(Trust on first use)原則となっているため、
仕様上自己署名済み証明書を使用することが推奨されています。
そのため、Let's Encrypt などの信頼された CA からの
証明書発行・更新を考慮する必要はありません。
- - - 🎈 - - -
Agate
🐙 mbrubeck/agate | GitHub
静的ファイルを公開するシンプルな Gemini サーバーです。
数多く Gemini サーバーが開発されている中、Agata がよく紹介されているケースが多いです。
というのも、Gemini はローカルでの参照でも SSL 証明書が必要になり、
HTML ファイルのように Web ブラウザでファイルを直接表示する事ができません。
Agata は SSL 証明書が存在しない場合、自己証明書を自動的に発行し、それを適用します。
そのため、Agata であれば、証明書の発行を対応する事なく、
次の1行でサーバーを建ててすぐに動作確認できます。
agate --content (.gmi ファイルがあるフォルダ) --addr 0.0.0.0:1965 --hostname localhost --lang ja-JP
Gemini クライアントから gemini://localhost/ で参照できます。
--hostname ドメイン名 にして、ポート 1965 で参照できるようにすれば、
そのドメインで参照できるようになります。
なお、--hostname ドメイン名 を複数指定して運用する事もでき。
その場合は --content フォルダ で指定したフォルダに対し、
フォルダ/ドメイン名/ 内を参照するようになります。
Agate 独自の設定ファイルとして、次が存在します。
- .directory-listing-ok - このファイルが入っているディレクトリは index.gmi がない場合にファイル一覧表示となります。ファイルの中身は空です。
- .meta - 特定のファイルやフォルダ每に細かく設定ができます。例えば次のような感じになります。
# この行は無視されます。
**/*.jp.gmi: ;lang=jp-JP
en/**/*.gmi: ;lang=en
index.gmi: ;lang=jp
LICENSE: text/plain;charset=UTF-8
gone.gmi: 52 This file is no longer here, sorry.
GitHub の README には Docker コンテナの手順も含まれていますが、
Docker の仕組み上、ジンテナを再起動すると SSL 証明書を生成しなおすため、
クライアント側では改めて証明書の承認が必要になる事にご注意下さい。
- - - 🎈 - - -
SSL 証明書の作成
Agata 以外のサーバーを使用して運用する場合、SSL 証明書が必要ですが、
TOFU(Trust on first use)原則となっているため、
仕様上自己署名済み証明書を使用することが推奨されています。
そのため、Let's Encrypt などの信頼された CA からの証明書発行・更新を考慮する必要はありません。
OpenSSL なら次のように作成します。example.com は使用するドメイン名に変更して下さい。
年数は約 1000 年に設定しているので、十分でしょう。
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem \
-days 365000 -nodes -subj "/CN=example.com"
日数の代わりに期限日時を指定する方法もあります。
9999年12月31日23時59分59秒を期限とする場合は次のとおりです。
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem \
-not_after 99991231235959 -nodes -subj "/CN=example.com"
key.pem が暗号鍵、cert.pem が証明書となります。これをサーバーに設定します。
Agate だと .der 形式が使われているので .pem 形式への変換が必要です。
openssl x509 -inform der -in cert.der -outform pem -out cert.pem
openssl pkey -inform der -in key.der -outform pem -out key.pem
.pem 形式はテキストエディタで開くと
-----BEGIN CERTIFICATE----- や -----BEGIN PRIVATE KEY----- ではじまる
テキストファイルになっています。
.der はバイナリーファイルなので文字化けした内容になっています。
TOFU(Trust on first use)原則なのにご注意下さい。
特に localhost や 127.0.0.1。192.168.●.● など、ローカルで動作確認する場合、
制作した証明書は保存しておく事を強くおすすめします。
証明書を再発行して変更すると、
一部の Gemini クライアントが従来と異なる証明書と判断しエラーを発生させます。
これを解消するのがクライアントによっては
証明書の保存・削除場所がわからず、対応が難しくなってしまう事があります。
- - - 🎈 - - -
GmCapsule
🌆 GmCapsule | skyjake.fi (gemini:) - 概要
🌆 GmCapsule: | gmi.skyjake.fi (https:) - 概要
🌆 GmCapsule | git.skyjake.fi (gemini:) - Git リポジトリ
🌆 GmCapsule | geminispace.org (https:) - ユーザーマニュアル
Lagrange も公開している Skyjake さん公開のサーバーです。
CGI 対応、プロトコルは Titan も対応します。
CGI で少し詳細に触れています。
🎈 cgi.gmi CGI を動かす(GmCapsule・ステータスコード)
- - - 🎈 - - -
ESP8266 Gemini Server
🐙 Astrrra/ESP8266GeminiServer | GitHub
ESP8266 を用いて Gemini サーバーを運用し、公開する事もできます。
- - - 🎈 - - -
🎈 fusen.nya.je
- - - 🎈 - - -
😺 Powered by nya.je