🔧
Ubuntuに開発用Misskey鯖を立ててみる
備忘録もかねてメモ。
なんもわかってないのでいらない操作とかあるかも。
リポジトリの用意
MisskeyのRepoからForkし、git clone
してローカルに持ってくる。
git submodule update --init
して、Fluent Emojisとかアセット類を持ってくる。
依存関係をいろいろ
諸々インストール
sudo apt update
sudo apt upgrade
# build-essentialのインストール
sudo apt install build-essential -y
# Node.jsのインストール
sudo apt install -y ca-certificates curl gnupg
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
NODE_MAJOR=20
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list
sudo apt update
sudo apt install nodejs -y
自分の場合はここで
dpkg-deb: エラー: ペースト subprocess was killed by signal (Broken pipe)
処理中にエラーが発生しました:
/var/cache/apt/archives/nodejs_20.5.1-deb-1nodesource1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
と怒られたので、sudo apt remove libnode-dev
で解決した。
# npmのインストール
sudo apt install npm
自分の場合はここでも
インストールすることができないパッケージがありました。おそらく、あり得
ない状況を要求したか、(不安定版ディストリビューションを使用しているの
であれば) 必要なパッケージがまだ作成されていなかったり Incoming から移
動されていないことが考えられます。
以下の情報がこの問題を解決するために役立つかもしれません:
以下のパッケージには満たせない依存関係があります:
npm : 依存: node-agent-base しかし、インストールされようとしていません
依存: node-aproba しかし、インストールされようとしていません
依存: node-archy しかし、インストールされようとしていません
依存: node-cacache しかし、インストールされようとしていません
依存: node-chalk しかし、インストールされようとしていません
依存: node-cli-table3
と怒られたので、sudo aptitude install npm
で全部yしていったら通った。
# PostgreSQL
wget https://salsa.debian.org/postgresql/postgresql-common/raw/master/pgdg/apt.postgresql.org.sh
sudo sh apt.postgresql.org.sh -i -v 16
sudo /etc/init.d/postgresql restart
# Redis
curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
sudo apt update
sudo apt install redis -y
sudo systemctl start redis
PostgreSQLをセットアップする
sudo -u postgres psql
CREATE ROLE misskey LOGIN CREATEDB PASSWORD 'hoge';
CREATE DATABASE mk1 OWNER misskey;
でユーザーとデータベースを作る。
ここではユーザー名はmisskey
、パスワードはhoge
、データベース名はmk1
としている。
\q
で抜ける。
npmパッケージをインストール
cloneしたリポジトリにcd
し、
sudo corepack enable
pnpm install
Misskeyのビルド
cloneしたリポジトリの.config/
下にdefault.ymlを作成し、example.ymlの内容をコピペする。
以下のように書き換え保存。
url: http://localhost:3000
port: 3000
db:
host: localhost
port: 5432
db : mk1 # PostgreSQLのデータベース名
user: misskey # PostgreSQLのユーザー名
pass: hoge # PostgreSQLのパスワード
redis:
host: localhost
port: 6379
できたら
pnpm build
pnpm run init
pnpm start
するとMisskeyがlocalhost:3000で開かれる。
Discussion