5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MisskeyをDocker+Cloudflare+Xserver+WSLで建てた際の覚書

Last updated at Posted at 2023-07-24

鯖構築について勉強不足な筆者が、色々なサイトを参考にMisskeyの鯖構築をした際の覚書です。
特有の内容も含みますが、一般的な知識の方が多いかと思います。


先に環境構成について列挙し、
次に以下について簡潔に書いていきます。
・参考にしたサイトの紹介
・躓いたときの対処内容

記載内容についての質問はお気軽にどうぞ
記載になくても、手順中にある内容なら答えられるかもしれません。

環境構成

ソフトウェア バージョンや備考
WSL2(Ubuntu) windows11、導入手順は省略
Docker 導入手順は省略
└Misskey 13.13.2
└redis 7-alpine
└postgreSQL 15-alpine
└nginx 1.19
└Cloudflare Tunnel 無料プラン、契約手順は省略
Xserverサーバー 10日間お試しレンタル、契約手順は省略
Xserverドメイン ドメインの取得、契約手順は省略
FFFTP ファイル編集後のアップロードに使用

構築手順

大筋はこちらのサイトを参考にさせていただきました。
MisskeyをDocker Compose+Cloudflare Tunnelでサクッと建てる
こちらを参照の上で環境を同一にしないと、手順の通じない点が多いかと思います。

compose.ymlの設定値はdb:tunnel:の間にnginx:を追記しました。

compose.yml
~
  nginx:
    container_name: "nginx"
    image: nginx:1.19
    ports:
      - "80:80"
    volumes:
      - ./html:/usr/share/nginx/html
~

前後に必要な手順があったため下記に紹介します。
他に思い出したら加筆します。

確認ポイントと解決手順

1.DNSレコードの編集が完了していること

【XserverVPS】DNSレコードの編集
こちらを参考にDNS設定の編集が必要ですが、XserverVPSを契約していない場合、手順通りに設定ページへアクセスすることが出来ません。
この場合、Xserverレンタルサーバーのサービス管理ページから、ドメインを選択することで、編集画面に遷移することが出来ます。

image.png
image.png

ネームサーバーの設定値は、Cloudflareを参照して編集し、設定変更確認のリクエストを送信してください。
最大24時間かかる旨の記載はありますが、私の場合は数分でメールが届きました。

2.レンタルサーバーとのSSH接続

今回は使用はしませんでしたが、レンタルサーバーとTeratermを使ってSSH接続できるように設定しました。
ログ確認等に役立つかもしれません。
ポートの設定と、認証にひと手間あるため注意が必要です。

SSH設定を有効にします。
image.png
パスフレーズを入力して、秘密鍵を生成してローカルに保存します。
image.png
Teratermの新しい接続でホストとTCPポート10022を入力し、
ユーザ名、パスフレーズの入力の上、秘密鍵にローカルの秘密鍵ファイルを設定することで接続できます。
(参照の際、ファイル形式を「秘密鍵ファイル」から「すべてのファイル」にする必要があります)
image.png
image.png

3.docker起動コマンド docker compose up -d 実行時の権限確認

起動時点でファイルとフォルダのアクセス権限が適切でない場合があります。
私は下記を実行しました。
(一括で読み/書き/実行を可能 [777] に指定しています。厳密にはあまりよくないかもしれません。)

cd ./misskey
ll -s
sudo chmod 777 data data/db data/misskey data/redis
sudo chmod 777 compose.yml default.yml
ll -s

4.docker起動コマンド docker compose up -d 実行後のログ確認

各コンテナのステータスを確認し、作成されたコンテナ名 ( NAMES ) を参照します。

$ sudo docker container ls 
    CONTAINER ID   IMAGE                     COMMAND                  CREATED        STATUS                  PORTS                                       NAMES
    XXXXXXXXXXXX   misskey/misskey:13.13.2   "/usr/bin/tini -- pn…"   17 hours ago   Up 17 hours (healthy)   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   misskey-misskey-1
    XXXXXXXXXXXX   nginx:1.19                "/docker-entrypoint.…"   42 hours ago   Up 17 hours             0.0.0.0:80->80/tcp, :::80->80/tcp           nginx
    XXXXXXXXXXXX   cloudflare/cloudflared    "cloudflared --no-au…"   44 hours ago   Up 17 hours                                                         misskey-tunnel-1
    XXXXXXXXXXXX   postgres:15-alpine        "docker-entrypoint.s…"   44 hours ago   Up 17 hours (healthy)   5432/tcp                                    misskey-db-1
    XXXXXXXXXXXX   redis:7-alpine            "docker-entrypoint.s…"   44 hours ago   Up 17 hours (healthy)   6379/tcp                                    misskey-redis-1

次のコマンドで各コンテナのログを参照することができます。任意の行数を指定してください。

sudo docker logs --tail [行数] [コンテナ名]

私は misskey-misskey-1 のパーミッションエラーに上記3.の対処を実施しました。
また、misskey-db-1 のログにSQLエラーが吐かれていたため対処が必要になっていた気がしますが、こちらは対処内容を紛失したため省略します…。

5.アクセスログの取得

私はリクエストが到達していること、ドメインの設定、トンネルの設定が誤っていないことの確認に使用しました。
image.png
image.png

以上です。

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?