あっきぃ日誌

鉄道ブログのような技術系ブログのようななにか

Misskeyサーバーを立ててみた

国産のActivityPub互換な分散型マイクロブログ用ソフトウェアであるMisskeyを立ててみました。Misskeyがどんなもんか触ってみたかったのと、どうせなら構築と運用の知見もほしいなと思っただけです。また、mikutterにあるメインアカウントを捨ててこちらに移るとかではなく、こくだハイクももちろんたたみません。

Misskeyについては開発しているしゅいろさんがgihyo.jpで連載を初めているのでこちらを読むと良いです。

gihyo.jp

今回立てたサーバーは、ほぼ10年間麦子がふよふよしているだけだったmugiko.moeドメインを使いました(テスト用Mastodonもここのドメインを使ったりしてます)。ユーザー登録の解放はしてませんが、招待制でちんまりゆるゆるとやってみようかと思っています。

misskey.mugiko.moe

UIと麦子イラストの相性、なかなか良い。


構成

自宅のDockerホストでdocker-composeを利用してMisskeyを立てて、自宅WebサーバーのUbuntu Server 20.04のApache2からリバースプロキシーします。Mastodonも同じ感じなので、構成自体はわたし的にはそんなもんという感じです。

Misskeyのインストール

以下のドキュメントを参考にDockerでサーバーを立てました。

misskey-hub.net

設定ファイルの書き換えポイントは以下の通り。default.ymlはいらないところを書き換えまくってけっこうミスりました。思ったより書き換えるところ少なかったですね。

  • default.ymlの書き換えは、urlのドメイン部分、DBのuserとpassのみ。
  • docker.envの書き換えは、default.ymlで指定したDBのuserとpassをそれぞれPOSTGRES_USERとPOSTGRES_PASSWORDに当てはめ。パスワードが上の行なので注意。
  • docker-compose.ymlはwebの外向けのportを変更。3000だとMastodonとかぶるので。

Apache2の設定

nginxの設定例はありましたが、Apache2の設定例がなかったので、Mastodonの設定をベースになんとなくでこねこねしました。WebSocketのパスのあたりは自信がない。もしかしたら/streamingまでやっていいかも?

ドメインDNSレコード作成とかLet's Encryptの取得は適宜いい感じにやります。

<VirtualHost *:80>
	ServerName example.com
	Redirect Permanent / https://example.com/
	RewriteEngine on
	RewriteCond %{SERVER_NAME} =example.com
	RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [L,NE,R=permanent]
</VirtualHost>

<VirtualHost *:443>
	ServerName example.com
	DocumentRoot /var/www/example.com

	ErrorLog /var/log/www/example.com-error.log
	CustomLog /var/log/www/example.com-access.log combined

	SSLEngine on
	SSLProtocol -all +TLSv1.2
	SSLHonorCipherOrder on
	SSLCipherSuite EECDH+AESGCM:AES256+EECDH:AES128+EECDH
	SSLCompression off
	SSLSessionTickets off
	SSLStaplingResponderTimeout 5
	SSLStaplingReturnResponderErrors off

	Include /etc/letsencrypt/options-ssl-apache.conf
	SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
	SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
	SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

	Header always set Referrer-Policy "strict-origin-when-cross-origin"
	Header always set Strict-Transport-Security "max-age=31536000"

	RewriteEngine On
	RewriteCond %{HTTP:Connection} Upgrade [NC]
	RewriteCond %{HTTP:Upgrade} websocket [NC]
	RewriteRule / ws://192.168.29.14:3100/ [P,L]

	ProxyPreserveHost On
	RequestHeader set X-Forwarded-Proto "https"
	ProxyPass / http://192.168.1.23:3001/
	ProxyPassReverse / http://192.168.1.23:3001/

	# リバースプロキシ先が死んでたときに出す503ページのための設定
	ProxyPass /503.html !
	ErrorDocument 503 /503.html
</VirtualHost>

(2/16更新) ProxyErrorOverride Onを削除。

初期設定

起動できたらアクセスして管理者ユーザーを作成。細かな設定は以下のページを参考に実施しました。

hide.ac

ユーザー登録解放はしないので無効化しつつ、ほかはちょいちょいですが、ほぼ必須なのはプッシュ通知のためのService Worker設定。Mastodonだと.env.productionに書かれていますが、MisskeyはWebUIに持ってきてるんですね。

あとは設定画面を眺めたり、画像を設定して麦子をちりばめて遊びました。

まとめというか感想

Mastodonと比べて設定の自由度は大きそうでした。まだ触れていない機能も色々あるっぽく、色々充実しています。Mastodonと両方触るとお互いの方向性みたいなのが見えて面白いですね。ただクッキークリッカー機能いる?w

しばらく触っていればアップデートとかストレージ消費量とか、また見えてくるものがあると思うので、ゆるっと楽しんでみようと思いますん。

冒頭に書こうとしたら長くなりすぎたしキモかった雑記

イーロン・マスクによる「ほぼ日刊俺が考えた最強のTwitter(笑)」によってTwitterの先行きがより怪しく見えるようになってきた今日このごろ、皆様いかがお過ごしでしょうか。先週末はMastodonのユーザー数がまた跳ね上がり、Pawooは支えきれず週末の間ダウンし、Misskey.ioもユーザー急増で大変そうでした。

bitcoinhackers.org

また、最近は、Nostrという別のプロトコルによるSNSぽく使えそうなサムシングがもてはやされています。私もちょいと触ってみた感じ、IRC2.0っぽいなあと思った次第です。そもそもIRCに例えて通じるかは怪しいなと思ってTwitterMastodonでアンケートを取ったら、Twitterのフォロワーなら通じそうでしたが、Mastodonは半々でユーザーの層というものを感じさせられました。さておき、Nostrはログの完璧な保存を求めるなら自分で収集する何かを持たないとかなという感じで(TwitterMastodonも同じっちゃ同じですが、儚さレベルが一弾くらい違うかなみたいな)、他も色々というか、まあ、無理じゃないかなあと。このみんなで手探りする感じが良いっていう人もわりといたんですけど、それ多分Mastodonの初期の頃に飛びこんだ人たちも同じこと言ってたんじゃないかなあ。まあ、いい意味で分散かあ。

あと、一部メディアはmixi回帰がどうとか言い始めてますが、ガラパゴス路線に逆走してどうするんでしょうか。日本人だけのSNSに閉じこもっちゃうのは個人的には超ビミョーですかね……。それで良い人ならまあそうしてもらって。それもまた分散。

そもそも、Twitterの代替って一口に言っても、人によって求めるものが全然違いますし。ある人はタイムラインの空気感だったり、ある人はUIだったり、ある人は機能だったり、ある人は投稿の自由だったり、本当にバラバラ。仮に全員が満足するものがあったとしても、Twitterにいる人全員がそっくりそのまま移れるほどのインフラを作ること自体(金銭的に)無理があるので、分散は避けられず、その他も色々諦めないと代替は見つけられないんじゃないかなあと思っています。

Mastodon 4.1.0が出た(いちおうちょっとコントリビュートした)

Mastodon 4.1.0がリリースされました。

github.com

はじめてMastodonChangelogに私のIDが載ってしまいましたん……。

1つは先月直った動画つきトゥート埋め込みのバグの件。

akkiesoft.hatenablog.jp

もう1つは、v4.0.0あたりで破壊されていた、/shareを使ったときに入力ボックスにフォーカスが自動で合わない問題。

github.com

どちらのプルリクも、メンテナ氏から「いや、こういうコードのほうがいいねえ」って代替案のコードがでてきてそれに直しただけのが通っただけなので、実質メンテナ氏のコードやんけという感じではありますが……直ったならヨシ!!

こくだハイクもv4.0.0系はスルーしてv3.5.5でとどまっていましたが、v4.1.0を機にバージョンをあげました。やはりというかTL見づれえとのコメントがLTLから出ましたが慣れてくれ。慣れるので。また、モバイルの画面で投稿ボタンが右上にあるやつは、末代鯖の実装を参考にパクりました。ほたと、ほたが参考にしたもへもへ氏に感謝。

ハイクテーマもしれっと改良が入ってるので、前よりは多少見やすくなってるかも知れません。シングルカラムモードの色イジったらいい感じになったんだけど、これ使わないんだよね……なぜイジった。

Twitterの振り回し具合が日に日に激しくなって、Mastodonへの流入も一段と激しくなっているらしく、Pawooはパンクしたりなんだりしていますが、今のところこくだハイクは流入ゼロの平和なサーバーとなってますので、元ハイカーでもそうじゃなくても、私が立てたクソサーバーでも良ければお待ちしています。相変わらずSMHNがメインアカウントですけども。。

Raspberry Pi Pico W近況(日本向けの近況とBT対応)

日本でまだ出てこないRaspberry Pi Pico Wですが、そう言えばちょっと前にPIPに日本の技適情報が掲載されました。

pip.raspberrypi.com

工事設計認証の取得日が10月7日に対して、技術基準適合認定等証の取得が12月26日のようなので、DBに載った時点では前者だけだった?んでしょうかね。

akkiesoft.hatenablog.jp

PIPに載ったということは、あとはリセラーとなんやかんやがあっていよいよ?なんでしょうかね。早く出てくれ〜たのむ〜

あと、Pico Wの未実装だった機能、BluetoothがBETAながらv1.5.0で今日(昨日)リリースされたようです。BLEとか使ったIoT工作ができるようになりますね。日本で発売されたらですが……。速報くらいのノリで雑に書いてるので詳細は見てないのと、見てもベータだし、どうせ日本で使えないし。

github.com

ちなみに先月メンションしたらなんかよくわかんない解答が来たのでクソリプと思われたのかも知れないヽ('ω')ノ三ヽ('ω')ノもうしわけねぇもうしわけねぇ

が、この記事に出た稲沢は何を指していたんだろうなあ……🤔

www.raspberrypi.com

追記

BTについてはcnx-softwareが詳しく書いてました。HIDとかのサンプルもあるようなので、自作キーボードのBT化もPicoWででたりしそうですね。ゆめがある。

www.cnx-software.com

コミック

お兄ちゃんはおしまい! (7)

商業版も7巻に。もちろん小冊子付きの特装版にしました。本編はだいぶ同人版に追いついてしまったけれど大丈夫かしら。

あと、アニメが無事ヒットしてそうで原作1話から推しのオタクも安心の後方彼氏?面状態です。

小冊子も電子版があとから発売されたので電子版勢も安心ですね。

先輩がうざい後輩の話 (10)

風間桜井カップル誕生巻。描き下ろしが本編みたいになってる〜〜。本編も五十嵐ちゃんがついに気づいてしまっていていいですね。

キルミーベイベー (13)

電書に移行したのに間違えて紙版を買ってしまい、数ヶ月寝かせたのをやっと読みました。相変わらずどういうクスリをキメたらあんなクリーチャーが描けるのだろうか……。

ところでカガクチョップを甥に押し付けて以来甥がキルミーも読みだしたらしく、まずいものを教えてしまったのではないかという後悔が若干あります。まあわたしもグルグル読んで育ったから(震え声)

家具の買い替え

カーテン

10年の1度の寒波と騒がれたわりにベランダのメダカの水槽に氷一枚張ることもなかったりした昨今ですが、防寒対策にと思って家のカーテンを買い換えることにしました。上京した時に買った薄っぴらいカーテンだったので、ベランダの先に街灯の明かりがある今の部屋では夜も常夜灯無しで部屋がまあまあ明るかったし、丈も違っていてアンピンで調節してごまかしていたので、むしろ買い換えるのが遅すぎた感じです。

ニトリのウェブを漁って、これをチョイスしてみました。遮熱、遮光、そして遮音です(!)。いいね。

www.nitori-net.jp

届いて半分張り替えたところで一枚。曇った日の午前中にやった様子ですが、もう遮光具合が違いますね。

張り替え終えて、部屋の照明を落としてもう一枚。すごい。裏地を見ると普通の布じゃなくて、滑り止め加工マットみたいというか、ちょっ防水シートっぽいと言うか、なんかそう言う素材な感じなんですね。って書いてからニトリのページを見たらポリエステル97麻3ってちゃんと書いてあった。ポリエステルパワー👊

遮熱については、多分、前のよりは確実に、いい気がします。ちゃんと記録取ったりしていないので体感にしかならないですが。

遮音はどの程度軽減されたかこれも体感ですが、車の音は気にならなくなったかもしれません。ただ、救急車・消防車の通り道なのでそれらは普通に聞こえてきますし、深夜にカラオケ屋からスポーンした酔っぱらいの歌い足りなそうなシャウトも軽減は難しそうです。

というわけで高性能カーテンになったのですが、さすがに前のよりも結構重くなってしまい、Ejectカーテンの開きがイマイチになってしまいました……。微調整をして、写真よりは開くようになったので、半開きにくらいにはなりましたが、ここは若干想定外でした。仕方なし。


テーブル

もう一つ、上京以来使ってきたIKEAのLACKも置き換えました。LACK、安くていいんですが、座って使うには高すぎて、イマイチではあったんですよね。引越し前はほぼ棚として使われ、今の部屋ではテーブルっぽく置かれた物置きになっていました。買ったときのブログも出てきたわ。サイドテーブルはまだ現役で、トースター置き場になってます。

akkiesoft.hatenablog.jp

今からこの家でちゃぶ台的な高さの家具を置くのはバランス的に無理があるかと思うので、ふつうのダイニングテーブルに置き換えです。IKEAで何度か見ていいなあと思っていた、PINNTORP(¥12,990)をチョイス。自分で運ぶのは無理なので、配送サービスを使いました。昔は送料で家具がもう一つ買えそうなくらい取られてましたけど、今はふつうの送料で送ってくれるようになったんですね。いい時代だ。PINNTORPはテーブルの他に椅子も同名のものがありますが、椅子はメダカ置き場に使っている背もたれがないやつを先行して買い増ししていたのでそれを使います。

www.ikea.com

着弾。業者が多分すごい小規模な会社への委託だったせいか、ドライバーが車で吸っていたであろうタバコのニオイが外箱についていてモニョったのでレビューでチクっておきました。タバコのニオイはきらいじゃないけど、仕事へのやる気を疑ってしまったので。

それはさておき、淡々と組み立てていきます。木にしてなかったけれど、裏側は結構ガッツリ金属がいたのね。

そして完成。高さが、高い!(??)

テーブルも、LACKと比べて10cmずつ大きくなったので、結構広く感じますね。自分は木の椅子に座って、向かいのミクたちはいい椅子に座っているのはいいのだろうか🤔?

モニターアームを伸ばせば、デスクの32インチディスプレイで動画鑑賞もできなくはなさそうです。YouTubeの広告スキップは無線マウスで対応できました。

ごはんもテーブルでできるようになったので、キーボード飯もついに卒業です。クゥゥ、長かったねえ。

iPadスタンドを連れてくると、モニターアームを伸ばさなくてもテーブルで動画が見られるので、これもありですね。KUNキッズが捗る。

あとはMacBookを連れてくるとこんなかんじ。照明の直下で作業できるので、デスクでやるよりも明るく感じるのが意外と良いことに気づいてしまいました。ディスプレイの後ろも明るくしたほうが目にやさしいって言うのはこういうことなのかも。強いて言えば、MacBook Air 2018のスペックが厳しくて辛い。JavaScript処理能力が低すぎてWebブラウジングが辛い。ARM Macつよすぎる。


まとめ

上京以来つらってきたカーテンと机を置き換えてQoLをあげてみました。どっちももっと早くに買い替えたら良かったなあ。在宅が始まった当たりでもうやっておけばよかった感があります。作業環境の改善ばかりに考えが行って、周りの方は抜け落ちていた気がしますね。

テーブルに座るようになったことで、多分左手に見える本棚周辺の散らかりが気になりだしたので、片付けもやらないといけなくなりました。がんばろ……!