microblog.pubを立てたけどやめた

作成:
heroimage

microblog.pubを知る

2023-10-11

AcitivityPubのインスタンスとしてマストドンやMisskeyはメジャーでサーバーを立てている人も多いのだが面倒そうで自分は立てていなかった。

そんな時お一人様専用インスタンスとして手軽に立てられるmicroblog.pubの存在を知った。

以下特にスクリーンショットもなく分かりづらいのですがご了承ください。

導入

Docker環境とリバースプロキシのためのwebサーバーはすでに導入していたので以下の作業を行うだけだった。(BlueskyPDSのために起動しているCaddyを利用した)

git clone https://git.sr.ht/~tsileo/microblog.pub ディレクトリ名
cd ディレクトリ名
make build
make config

この後に対話形式でブログの名前やパスワードなどユーザーの設定を行う。

data/profile.tomlに追記する。

icon_url = "https://ubanis.com/img/nyan4.jpg"
trusted_hosts = ["*"]
https = true

ポートが衝突していたのでdocker-compose.ymlのポートを8000から10085に変更した。

version: "3"

services:
  server:
    image: microblogpub/microblogpub:latest 
    container_name: microblogpub
    user: 1000:1000
    restart: always
    volumes:
      - ./data:/app/data
      - ./app/static:/app/app/static
    ports:
      - "10085:8000"

インスタンスの起動

docker compose up -d

インスタンスの停止

docker compose down

プロフィールにメタデータを追加する

マストドンなどでサイトのリンクなどのデータがあるがそれを追加するにはdata/profile.tomlのmetadaにデータを追記する。

metadata = [
{key = "webサイト", value = "https://ubanis.com"},
{key = "Pixiv", value = "http://www.pixiv.net/member.php?id=15466506"},
{key = "Skeb", value = "https://skeb.jp/@ubanis1"},
{key = "Bluesky", value = "https://bsky.app/profile/ubanis.com"},
{key = "X(Twitter)", value = "https://x.com/ubanis1"},
{key = "Fanbox", value = "https://ubanis.fanbox.cc"},
{key = "Fantia", value = "https://fantia.jp/ubanis"}
]

microblog.pubにログイン

インデックスページの最下段にあるAdminからパスワード入力欄だけのシンプルなログインページへ行けるのでそこから以前の設定で入力したパスワードを使いログインする。

Public はここへ直接訪れた人に表示されるトップページでそれ以外はログイン時にしか表示されない。

Newで新しく投稿をする。Noteは通常の投稿、Articleはブログのような形式の投稿をMarkdownで記述できるが画像は他のインスタンスでは表示されない。いくつかのHTMLタグを使うことができる。Questionは試さなかったが投票形式だと思われる。

Streamがフォローしているユーザーのタイムラインになる。

InboxにはActivityPubから受け取った様々な通知が並ぶ。Outboxは逆に自分が外部のインスタンスに行った操作が表示されている。

Notificationsは通知。

LookupでActivityPubインスタンスのURLやユーザー名@name@instansでそのユーザーのプロフィールや投稿を表示でき、フォローしたり反応をしたりすることができる。

Bookmarksは個別のNoteやArticleをお気にいりとして保存しておいて表示することができる。

ページのカスタマイズ

インスタンス自体のページの見た目はとても古いページの見た目をしているがJinjaというテンプレートを記述することで変更することができる。

data/templatesの中にファイルを置くとそこからシンボリックリンクしているappフォルダ内のファイルに対して設定が上書きされる。ここでは割愛するが公式の説明を参照したほうがよい。

microblogpubのカスタマイズに関するページ

スタイルシートの変更

app/scss/_theme.cssを編集して色をカスタマイズする。

// override vars for theming here
$font-stack: Helvetica, sans-serif;
$background: #f9f9f9;
$light-background: #ffffff;
$text-color: #111;
$primary-color: #1a81ac;
$secondary-color: #2c4a80;
$form-background-color: #ccc;
$form-text-color: #333;
$muted-color: #999; // solarized comment text
$primary-button-text-color: #fff;
$code-highlight-background: #f0f0f0;

カスタマイズ後にコンパイルのため以下をmicroblogpubフォルダで実行する。

make compile-scss

インスタンスの閉鎖

マストドンなどとのやりとりは正しく行われていてmicroblogpubからの投稿もすぐそちらへ流れていたのだがMisskey.ioではフォローがまったく行うことができずあちら側のタイムラインに自分の投稿が流れることがなかったのでこれでは使っていけないと思い2日で閉鎖することになった。

マストドンなどは閉鎖時に410 Goneのステータスコードを送らねばならないというのを見ていて面倒だと思っていたがmicroblogpubの閉鎖方法は簡単だった。

make self-destruct

これをmicroblogpubフォルダで実行後しばらくインスタンスは起動したままにしておく。すると各インスタンスに対して閉鎖通知が届きそちら側のユーザーのフォローからもこちらが消える。

依然として自分のインスタンスにはログインすることはできるがインスタンスがなくなったことになるようである。データ自体はすべて残る。

そんなわけでお一人様ActivityPubインスタンスは2日で終了したのだった。