こんにちは萌えエネルギー研究所研究員の仝㳄兀の让丈なろ攴酉己者て゛あらねゐ世畀のきほ゛ラㄘャんです
突然ですがmisskeyを使ったfediverse個人鯖(おひとりさま専用サーバー)を作りました。
かわいいでしょ~.moeドメインだよ~~~~
ではどうしてこうなったのかを解説します。
2023年08月16日
XPro(旧TweetDeck)が認証のない(非Blue)アカウントで使用不可能に – OREFOLDER
この後弊はTweetDeckをリロード絶対にしない設定にしたうえで快適に使っていましたが....
すみません、wifiのドライバがおかしくなりPCの再起動せざるを得ず、ついにtweetdeck (X Proではない)が崩御あらせられました pic.twitter.com/dlQCPyWOqI
— 仝㳄兀の让丈なろ攴酉己者て゛あらねゐ世畀のきほ゛ラㄘャん (@Hope_pf27) 2023年8月20日
ぎゃあああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああああ
もう終わりだよこのSNS
あやかくないよこのSNS
という訳でSNS乗り換える決意をしたのでした。
misskeyに至るまでの経緯
fediverseのプラットフォーム編
- 例のAPI制限事件以降自鯖運用やらmisskey.ioやら色々調べてはいましたけど、「まだまだ大丈夫だろ」と騙し騙し使ってたら死んだ
- Pleromaとmastodonとmisskeyで悩んでいた
- Pleromaをメモリ消費量の点から1番魅力的に感じていたけど日本語であれこれ調べられる環境に不安があった
- 丼はメモリ消費量が重いらしい
- フォロワーさんにmisskey自鯖運用者がいた分散型SNS(Misskey)のサーバーを建てた | p-hone.info
- ♰愛国ポイント加算♰
=misskeyに決定!
VPSサーバー選び編
- さくら高いね...
- ConoHaは美雲このはさんかわいい
- Xserverならmisskeyアプリイメージがあって簡単そう←2023年8月30日現在ConoHaもアプリイメージ提供開始
- Xserverのベンチマークスコアが良いらしい
=Xsever VPSに決定!
こうしてHTMLとかぷろぐらみんぐとかまったくやったことのないインタネッツ素人の弊によるXserver VPSでのmisskey自鯖構築が始まった...
やったこと
2023年8月20日
Ubuntu版Misskeyインストール方法詳説 | Misskey Hub
公式を斜め読みしたらインタネッツはじめたばかりのシャミ子状態になった
【Xserver VPS】Misskeyのインスタンスの立て方【初心者必見】 - ENGI WORKS
あっあっわかりやすい画像までついてて何すればいいのかがわかる!!!!!!
という訳でこれを読んでそっくり同じことをした
ど素人がMisskeyのお一人様サーバーを建てました(Misskey v13) | Seritude
misskeyにアップロードした画像等のメディアファイルは容量でかいほうがいいかと思ったのでオブジェクトストレージの設定をしました
Misskeyインスタンスで最初に設定するべきインスタンス設定とその他設定の説明 | aqz/tamaina
よくわかってなかったけどこれもやった
まとめ
- Xserver VPSを契約する
弊は2GBプラン(3コアCPU、メモリ2GB、NVMe SSD 50GB)にした、今のところ快適です - 同じくXserverから.moeドメインを買う
- DNSの設定をする
- TLS証明書を取得
弊はLet's Encryptを使ったけど、今思うとCloudflare使うしCloudflareのほうでCDNの設定すると同時にTLS証明書もCloudflareで取得したほうがいいかも、ここらへん (さくらVPS + Cloudflare で misskey のインスタンスを立てる)読むとわかる - Cloudlfare R2をmisskeyのメディアファイルのオブジェクトストレージとして設定する
- 何をとち狂ったかubuntuのアプデをする
結果
【お知らせ】
— 仝㳄兀の让丈なろ攴酉己者て゛あらねゐ世畀のきほ゛ラㄘャん (@Hope_pf27) 2023年8月20日
Misskeyの個人鯖を作りましたhttps://t.co/CJBrzAn4E4
試しに1ヶ月くらいはこっちメインでつかってみます
ActivityPubと言って、同一サーバー同一サービスでなくても、例えばご自身のアカウントがあるMastodonの各種サーバーやMisskey、Pleromaの鯖からフォローできます~よろ~ pic.twitter.com/wVZgeQoZYb
@moe@hope-pf27.moe 👈moeに囲まれててかわいいね
1日目 終了
その後1週間後くらいまでにした設定
ここらへん
- ubuntuだとかlinux系のコマンド入力の意味とかをある程度把握する
- rootユーザーのままは危ないと聞き新しい普段使い用のsudoユーザーを作成 Ubuntuでユーザを作成する方法(adduser) | VPS Life
- faviconを変える
- 他サーバーのプロフィールの過去ノートをRTする方法が無いと知り、スケベピチチャァ探訪のため.ioに垢を生成、io垢で探索しRTしたのを.moeでもRTする運用を開始
- misskeyのlate limitに引っ掛かったので管理者アカウントのコントロールパネルからのロール機能つかって色々変更 https://hope-pf27.moe/notes/9iogotp3pc
- ufwをONに設定してからSSH接続用のポートと、80,443を開放
- SSH接続用ポート番号変更するか悩み、まぁVPSの管理画面で普段は閉じて置けばいいか...で変更しなかった(ずっと開けてるひとは変更したほうが良い)
- SSH公開鍵が作れず苦戦
結論から言うと、/home/普段使いしているユーザー名/.ssh/ にauthorized_keysファイルがなかったのが原因 ファイルを作成し id_rsa.pubの内容を入力終了
SSH鍵作成(TeraTerm版) | 計算科学研究センター - /etc/ssh/sshd_congig のPubkeyAuthentication yesの文頭のシャープ♯を外す(#はこれは指示ではなくメモですという意味なので)
- SSH公開鍵を確認後、/etc/ssh/sshd_congig よりPasswordAuthentication noにし、SSH認証のパスワード接続を禁止、更にPermitRootLoginを noにしSSHでのrootログインを禁止
misskeyのデータベースバックアップ
Xserverにはイメージバックアップ機能が50GBまで標準でくっついてくるけど、それでもDBバックアップはやっというた方がいいということで設定
メディアファイルのオブジェクトストレージにCloudflareのR2使ったし同じところでやった(メディアファイルのバケットとは別に、完全に新しいバックアップ用のバケットを作り、そのバケット内ファイルの14日後自動削除ルールも設定しておく)
- cloudflare wranglerを導入
- 好きなユーザーでログイン(正直su使ってrootでも良いかなと思った)
npm create cloudflare@latest
In which directory do you want to create your application?は、
/home/現在のユーザ名/warangler(ここの名前は好きなようにでいい)/
What type of application do you want to create?は、type Scheduled Workerで(キーボードの矢印↑↓で選択可)
Do you want to use TypeScript?はnoで
~詳しいことはここの黒い画面のほうに書いてあるしそれに従えばおk
もしログイン失敗みたいのが出たらここのブラウザが云々を参考にするとよい。ufwでポート番号開けるだけじゃなくてVPSの管理画面でもポート開けておくことを忘れずに
こっから先が大変だった
結論:シェルスクリプトとcronって別物なんだーーーーー(無知の知)
どうしたか:
/home/普段使いのユーザーネーム/にroot権限(comod 777)で新しい.shファイルを作成した
→/home/YOURUSERNAME/misskey-db-backup.sh
.shのなかみ
#!/bin/bash echo "Backup start." sudo -u postgres pg_dumpall | gzip -c > /tmp/db.gz echo "Uploading..." cd /home/あなたのユーザー名/wrangler/ (上記の In which directory do you want to create your application?で設定したディレクトリ) npx wrangler r2 object put "R2で作成したバケット名(URLじゃないよ!)/db_$(date +%Y%m%d_%H-%M-%S).gz" --file=/tmp/db.gz cd /home/あなたのユーザ名/ rm /tmp/db.gz echo "Remove tmp complete" echo "Backup complete."
echoの行は有ってもなくてもいいです 意味ないので
シェルスクリプトが動くことを確認後、root権限でcronファイルを作成
場所 /etc/cron.d/適当な名前の(misskey-db-backupとか)ファイル(cronなので拡張子不要)
cronの中身
40 3 * * * root sh /home/kibou/mi-db-backup.sh
corn 書き方とかで検索してね 上記のは「40分3時 日にち未指定 月未指定 曜日無指定」という意味です 4時前にやっといたほうがいい 文字の最後に必ず改行するの忘れないでね(改行しないと作動しない)
後日動いてるか確認
misskeyのアップデート
弊はバックアップが全部できてることを確認後にやりました 多分それが安全かと......
- Githubアカウント作成
- (もしXserverの初期設定のままだとmisskeyユーザーでログイン不可能なのでmisskeyユーザのパスワードをroot権限で変更)
- これを参考にやればおk
Ubuntu版Misskeyインストール方法詳説 | Misskey Hub - 弊の場合上手くいかず、gitのコマンド一覧表示してあれこれやってたら流れでできてしまったけど、正直危ないので分からなければ詳しい人に聞いたり、Xserverのサポートに頼った方がいいと思う
サル先生のGit入門〜バージョン管理を使いこなそう〜【プロジェクト管理ツールBacklog】
↑これめっちゃ読んだ
2023-09-25追記
sudo systemctl stop misskey su - misskey cd misskey git pull; NODE_ENV=production pnpm install --frozen-lockfile pnpm run clean; NODE_ENV=production pnpm run build; pnpm run migrate; exit
その他
- Misskeyでjemallocを使う(Debian系統)
メモリ消費がどんどん増えるのをどうにかしたくて今日2023年8月30日これを導入した 、2023年9月1日現在割と効果あるっぽい - サーバを再起動する度にnginxが自動で再起動しなかったのでこれみて
systemctl enable nginx
を設定して自動起動にした
感想
サーバーむつかしいよおおおおおお
- でも正直楽しい
- サーバーの知識皆無でも調べまくれば何とかなってよかったー
- 全部自分が支配しているという感覚が気持ち良すぎる、持つべきものは自鯖
- misskey割と高機能だしこれにしてよかった、ハッシュタグ保持もデッキもリストもブックマークフォルダ分けもあるし
- アニメ実況勢向けの公開鯖作りたすぎ(技術力なさすぎるので無理)
多分今後Twitterに戻ることはないかもしれません。完全にやめるというわけではないしTLもちょくちょく見てるけど、なんというか「家」という感覚がtuittarじゃなくてmisskeyの自鯖になってしまった。7年半近くやってきたTwitterから離れてしまう日が来るなんて....って思うけど、正直、ね、もう、tweetdeckを廃止した時点で堪えて何とか付き合っていたものがプツンと切れたんだと思う。でも楽しかったよTwitterでの日々も......
というわけでフォロワー!
@moe@hope-pf27.moe
hope-pf27.moe
フォローしてね♡
おまけ
弊が1番好きな今期アニメソングです
ほんとはアニメキャプチャマシマシにしたかったけどアニメキャプチャせず視聴してるからキャプチャがなくてごめん