一番お手軽なMisskey鯖缶のはじめかた

## はじめに
はじめまして。[しゃふすきー](https://shahu.ski)の鯖缶をしている[まい](https://shahu.ski/@mai_llj)と申します。

MIsskeyの構築手順を聞かれることが多々あったため書いていますが、サーバーを建てるだけであれば至って簡単です。ほんとに。まじで。

今回の手順では、Cloudflare Argo Tunnelを用いて外部に公開するためポート開放も固定IPも不要で、DS-LiteやMAP-Eなど、ポート数に制限のある環境でもホストすることができます。

今回想定する環境は以下のとおりです。

 - Ubuntu Server 22.04.3 LTS (x64)
 - RAM 2GB以上
 - インターネットへの接続ができる環境


~~最近のイケイケなVPSを使ってテンプレートで構築するのもいいですが、安価に運営するには自宅サーバーがなんやかんやいい気がしてます。~~

## Cloudflareの設定

Cloudflareのアカウントがなければ何もはじまりません。既にもっていなければ、まず、アカウントを作成しましょう。

アカウントは[こちら](https://dash.cloudflare.com/sign-up)から作成できます。

 次に、ドメインを追加します。 ネームサーバーの設定をするように求められるので、設定してください。 ネームサーバーの設定方法については、ここでは詳細を紹介しませんが、こちらの記事が参考になるかもしれません。適宜ググりながら頑張りましょう！！

 ネームサーバーの設定が完了したら、登録ステータスが有効になるまで待ちます。 

有効になったら、SSLの設定を変更します。
SSL/TLSの設定で、「フル」を選択します。 「フル」以外の設定は行わないでください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3283241/52ee01d2-5979-1df2-c9fd-dd3e1a65e5d5.png)

次に、Auto MinifyとRocket Loader™をすべて無効化します。この手順を飛ばすとMisskeyが正常に動作しない場合がありますので、必ず行ってください。

Spped > Optimization > Content Optimization から設定が可能です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3283241/4c666db2-1413-9593-2102-baf34a1223b1.png)

これでCloudflare本体の設定は終わりました。

## Cloudflare Argo Tunnelの設定

Cloudflareのトップページへ戻り、サイドメニューよりZero Trustダッシュボードをクリックし、開きます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3283241/76177aca-601f-f420-cbee-a6811aa83806.png)

Access > Tunnels より Create a tunnelをクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3283241/80d2eef1-e091-f71f-4ccb-7b5e47e8240a.png)

自分が分かる適当な名前をつけて、Save tunnelを押下します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3283241/2c16954d-6c48-90fd-1350-1d63e991b56e.png)

するとこんなページに遷移するので自身の使用しているディストーションとアーキテクチャを選択します(今回はUbuntu x64環境を想定しているのでDebian 64-bitを選択)表示されたコマンドをコピーし、コンソールで実行します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3283241/6edd9e8e-d602-a3a0-1c1e-b159b41afa03.png)

実行後、Connectersに追加した端末が表示されますので、確認後Nextを押下します。

次に、Misskeyを外部公開するためのURLとの紐付けの作業を行います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3283241/52dba11a-d2cd-b162-d5e8-4b2ce9229227.png)

入力する項目は以下のとおりです

 - Type : HTTP
 - URL : 127.0.0.1:3000
 - Domain : 最初の工程で追加したドメイン
 - Subdomain : 必要でなければ空欄

入力が完了したら、Save test tunnelを押下し作業を終了します。

## Misskey本体を構築する

いよいよ最後の工程です。Misskey本体を構築します。

今回はDocker等は使わず、bashスクリプトを使ったインストールを行います。

以下のコマンドを実行するといくつかの質問がなされ、インストールが完了します。

```
sudo apt update; sudo apt full-upgrade -y; sudo reboot
```

```
wget https://raw.githubusercontent.com/joinmisskey/bash-install/main/ubuntu.sh -O ubuntu.sh; sudo bash ubuntu.sh
```
  

  
こだわりがなく、さくっと構築を終わらせたい方は以下のように選択すると幸せになれます。

 - Do you use systemd to run Misskey? : Y

 - Repository url where you want to install : https://github.com/misskey-dev/misskey (変更せずにそのまま確定)

 - The name of a new directory to clone : misskey(変更せずにそのまま確定)

 - Branch or Tag : master(変更せずにそのまま確定)

 - Enter the name of user with which you want to execute Misskey : misskey(変更せずにそのまま確定)

 - Enter host where you want to install Misskey : 先程Tunnelと紐付けの設定を行ったドメイン(例:shahu.ski)

 - Do you want to setup nginx? : n

 - Misskey port : 3000(変更せずにそのまま確定)

 - Do you want to install postgres locally? : Y

 - Database user name : misskey(変更せずにそのまま確定)

 - Database user password : データベースのパスワードになるもの(半角英数字のみ可)

 - Database name : mk1(変更せずにそのまま確定)

 - Do you want to install redis locally? : Y

 - Redis password : Redisのパスワードになるもの(半角英数字のみ可)

以上でMisskeyの構築が完了しました。

## 構築後は何を...？？
先程の手順で紐付けたURLへアクセスし、管理用の初期ユーザーを作成します。
オブジェクトストレージの設定やSMTPサーバーの設定などは[ここ](https://hide.ac/articles/Y504SIabp)を参考にすると幸せになれます。
~~追々書き足そうかな...とは思ってます~~

## おわりに
Linuxをごにょごにょする経験がすでにある人であれば、Cloudflareのお世話になることでだいぶ簡単に構築できるかと思います。
Misskey鯖をしっかり運用していくには色々ありますが、ひとまずここまで

読んでいただき、ありがとうございました。