Calckeyサーバ構築メモ
Misskey fork である Calckey のサーバを構築したので手順をメモ。
記事執筆時点での最新バージョンである v13.2.0-beta6 をインストールした。
なお、アプリケーションに依存しない部分は以前実施した Mastodon お一人様サーバ構築メモ の手順をほぼそのまま流用したため、全く同じ作業については該当箇所へのリンクのみ記載した。
作業は M1 MacBookAir 上で実施した。Docker は使用していない。
基本情報
サーバ
KAGOYA CLOUD VPS 2コア/2GB/25GB
ドメイン
さくらのドメイン で契約中のドメインに、本サーバ用のサブドメインをぶらさげている。
本記事では calckey.example.com とする。
OS
Ubuntu 20.04 (22.04.1 LTS がいい ようだが、前出の Mastodon サーバと揃えた)
構築時の手順
サーバを作る/DNS設定
ここは Mastodon お一人様サーバ構築メモ の手順をそのまま実施。
サーバに必要なソフトウェアをインストール
下記については、Mastodon お一人様サーバ構築メモ の手順をそのまま実施した。
色々インストール
ここも Mastodon お一人様サーバ構築メモ の手順をそのまま実施したが、不要なパッケージもおそらくあるはず。
Node.js
ここは、推奨されている 19 系をインストール。
curl -sL https://deb.nodesource.com/setup_19.x | bash -
Rust
v13.2.0-beta4 から必要になったので入れる。
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
DBセットアップ
設定ファイルの編集
Mastodon お一人様サーバ構築メモ の手順と同じ。(サーバ構成が同じのため)
DB作成
psql postgres -c "create database calckey with encoding = 'UTF8';"
DBユーザ・パスワード作成
sudo -u postgres psql
CREATE USER calckey CREATEDB;
ALTER ROLE calckey WITH password 'calckey';
¥q
Calckey セットアップ
ここからはほぼ独自の手順となっていく。
作業用ユーザを作って切り替え
adduser --disabled-login calckey
su - calckey
ソースコードを取得してビルド
Calckey は codeberg でホストされている。
git clone https://codeberg.org/calckey/calckey.git
cd calckey
git checkout v13.2.0-beta6
corepack enable
corepack prepare pnpm@latest --activate
pnpm i
設定ファイルを編集
cp .config/example.yml .config/default.yml
vi .config/default.yml
diff .config/example.yml .config/default.yml
自分のドメインにあわせて書き換える。
9c9
< url: https://example.tld/
---
> url: https://calckey.example.com/
44,45c44,45
< user: example-calckey-user
< pass: example-calckey-pass
---
> user: calckey
> pass: calckey
nginx を設定
ここは root で作業する。
設定ファイルをコピーして編集
cp /home/calckey/calckey/calckey.nginx.conf /etc/nginx/sites-available/ && cd /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/calckey.nginx.conf /etc/nginx/sites-enabled/calckey.nginx.conf
vi calckey.nginx.conf
diff /home/calckey/calckey/calckey.nginx.conf /etc/nginx/sites-available/calckey.nginx.conf
自分のドメインにあわせて書き換える。
14c14
< server_name example.tld;
---
> server_name calckey.example.com;
26c26
< server_name example.tld;
---
> server_name calckey.example.com;
33,34c33,34
< ssl_certificate /etc/letsencrypt/live/example.tld/fullchain.pem;
< ssl_certificate_key /etc/letsencrypt/live/example.tld/privkey.pem;
---
> ssl_certificate /etc/letsencrypt/live/calckey.example.com/fullchain.pem;
> ssl_certificate_key /etc/letsencrypt/live/calckey.example.com/privkey.pem;
SSL証明書を作成する
いちど nginx を止めてから certbot で発行し、ふたたび起動する。
systemctl stop nginx
certbot certonly --standalone -d calckey.example.com
systemctl start nginx
Calckeyの起動(PM2)
プロジェクトの README.md に PM2 について記載があるので使ってみた。systemctl による起動でもよさそうな気はするが不明。
追記: pm2 CLI にて systemd への登録が行える ようです 🐣
インストールして起動する。
npm install pm2 -g
pm2 start "NODE_ENV=production pnpm run start" --name Calckey
ブラウザで、以下からアクセスできれば成功!!
うまくいかない場合、以下コマンドで調査する。私はなぜか IPv6 でしか LISTEN されないという現象が起きたが、何度かリトライしているうちに直った。原因は不明。
pm2 log Calckey
pm2 monitor Calckey
PM2の設定すべてをやり直したいときはこれで。
pm2 delete all
やらなかったこと
- メールサーバ(SMTP)連携
- オブジェクトストレージ(Amazon S3 等)連携
いずれも管理メニューに設定のUIがあるので Mastodon サーバ構築時と同じ要領でできそうに見える。
更新履歴
2023.4.26 pm2 CLI からの systemd 登録について追記しました。
Discussion