misskeyのインスタンスを立てました!

作成日: 2023-02-11更新日: 2023-02-27

はじめに

misskeyのインスタンスを立てたよ!っていうお話

最近twitterが不安定なのでこれを機に別のSNSに移ってみるものありかなぁと思って作ってみた

https://misskey.luke256.dev

環境

  • マシン: RaspberryPi 4B
  • OS: RaspberryPi OS 64bit (Debian GNU/Linux 11 (bullseye))

注意
RaspberryPiのOSが古い(2020くらい?)とdocker諸々が入ってくれないので、一度OSを吹き飛ばしてから最新のものを入れることを推奨

追記(2023-02-27)

OSは64bitを使うことをお勧めします。
(32bitだとdockerが動いてもcypressが32bitに対応してくれていない)

dockerのインストール

まずはdockerが必要なのでインストール

curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

misskeyのインスタンスを立てていく

基本的には公式ガイドを見ながら進めていく

リポジトリの取得

git clone -b master https://github.com/misskey-dev/misskey.git
cd misskey
git checkout master

落としてきたリポジトリに諸々全部入ってる

設定

設定ファイルがあるので、それらを適切な場所にコピー

cp .config/docker_example.yml .config/default.yml
cp .config/docker_example.env .config/docker.env
cp ./docker-compose.yml.example ./docker-compose.yml

ガイドだと

default.ymldocker.envをファイル内の説明に従って編集してください。 また、必要に応じて、docker-compose.ymlを編集します。(ポートを変更したい場合など)

と書かれているけど、基本的にはdefault.ymlの最初のurlだけで十分

image1

ビルドと初期化

misskeyをビルド、初期化します

sudo docker compose build
sudo docker compose run --rm web pnpm run init

僕のところだと、ビルドに大体45分かかった
低電圧だったとはいえ、さすがに長い...

image2 2084秒....

image3

というわけで無事ビルドと初期化が完了。初期化はそこまで時間はかからなかった

ただ、この状態だとまだ./filesフォルダに権限がなくてファイルのアップロードができないらしいので、権限を追加してあげる

sudo chown -hR 991.991 ./files

(何やってるコマンドなのか...)

起動

最後に、起動してあげる

sudo docker compose up -d

ネットに公開する

ネットに公開するには自宅のポートを開放する、CloudflareのTunnelを使うなどなどあるけど、今回は後者を使った

前提として、Cloudflareに登録していて、使うドメインのDNSが設定されていること

Tunnelの新規作成

CloudflareのZeroTrustのページに飛んで、「Create a tunnel」から新しくTunnelを作成

ラズパイの登録

そのあと、「Choose your environment」から「Debian」→「arm64-bit」で、書いてあるコマンドをペタッとする

こんな感じのコマンド

curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-arm64.deb && 
 
sudo dpkg -i cloudflared.deb && 
 
sudo cloudflared service install SECRET_TOKEN!!!

(正直ここは何を選べばいいのかわからない)

(動いたのでヨシ!)

そうすると下になんか自分のラズパイっぽい項目が出てくるので、次に進む

ドメインの登録

出てくる画面の上段に実際に表示させたいURL、下段にはラズパイ上でMisskeyが立っているURL(デフォルトなら127.0.0.1:3000)を入れる

こんな感じになる↓ image4

上段のDomainsでDNSが登録されているドメインが選択できる
できたらSave

すべて終わると、ダッシュボードのDNSの欄にさっき設定したURLがCNAMEで出てくるはず

image5

そしたら、数十分程度待ってあげると...

image6

Hello, Misskey!!!!

おわりに

実は、数年前から何もいじってなかったラズパイを引っ張り出してきたせいで、OSが古くて全然入りませんでした...32bit....

この後は、別クライアントで作ったアカウントのフォロー/フォロワーをインポートするなり、インスタンスをいろいろいじってみるなりして楽しみましょう!

ありがとうございました

(ちなみに、この記事では一度も出なかったけどtailscaleがあるととても便利だった)