Skip to content

Instantly share code, notes, and snippets.

@CyberRex0
Last active December 4, 2022 02:32
Show Gist options
  • Save CyberRex0/bf0ef3f2026af28554f2e9c2d60c1a2e to your computer and use it in GitHub Desktop.
Save CyberRex0/bf0ef3f2026af28554f2e9c2d60c1a2e to your computer and use it in GitHub Desktop.

MisskeyサーバーをAndroidで建てる方法

要件

  • Android 7.0以降
  • Termux
  • Snapdragon 845以上のハイエンドSoC、64ビットCPU
  • 4GB以上のRAM (推奨6GB)
  • 5GB以上の空きがあるストレージ (SDカードは不可!)
  • やる気

【PR】 日本向けのTermuxリポジトリミラーを運営しています。詳しくはこちら

手順

1. 必要なパッケージを揃える

  • 最新の状態に更新する
$ apt update
$ apt upgrade -y
  • Node.js、PostgreSQL、Redis、libvips、その他もろもろをインストール
$ apt update
$ apt install -y x11-repo
$ apt install -y build-essential binutils curl git python nodejs yarn postgresql redis libvips-static xorgproto openssl-1.1-static

2. PostgreSQLのセットアップ

  • Postgresを使えるようにする
$ initdb $PREFIX/var/lib/postgresql
$ pg_ctl -D $PREFIX/var/lib/postgresql start
  • ユーザーを作る
$ createuser -P misskey
Enter password for new role: (パスワードを入力)
Enter it again: (もう一度入力)
  • misskeyという名前のDBを作成し、オーナーも同時に設定する
$ createdb -O misskey misskey

PostgreSQLは自動で起動しない。Termuxを開いたときに起動するようにするには、~/.profilepg_ctl -D $PREFIX/var/lib/postgresql start を追記。

3. Redisのセットアップ

  • echo "ignore-warnings ARM64-COW-BUG" >> $PREFIX/etc/redis.conf を実行する
  • redis-server $PREFIX/etc/redis.conf --daemonize yes でバックグラウンドで起動。Termuxを開いたときに自動起動させたい場合は ~/.profile に追記。

4. Misskeyのセットアップ

  • Misskeyのリポジトリをクローン
git clone https://github.com/misskey-dev/misskey
  • クローン後、cd misskey でディレクトリの中に入る

  • 依存関係パッケージのインストール

~/misskey $ yarn install --production

途中でエラーログらしきものが出るが、これはtfjsのエラーで、Misskeyでは必須ではないので無視してOK。

  • ビルド
~/misskey $ NODE_ENV=production yarn build

所要時間はSnapdragon 855で60秒程度。

エラー無しで終了すればOK

  • 起動スクリプトを書く

start.sh を作成してエディタで開いて、以下を書き込んで終了。

#!/bin/bash
export MK_DISABLE_CLUSTERING=1
npm start

chmod +x start.sh で実行可能にしておく。

  • 設定ファイルを書く

サンプル設定をコピー。

$ cp .config/example.yml .config/default.yml

その後 .config/default.yml を開く。 以下、変更する行だけ記載。

# urlの部分はお好みで。お試し用で公開しないならこのまま!
url: http://localhost:3000

db:
 db: misskey
 user: misskey
 pass: (PostgreSQLの設定で決めたパスワード)

# 使ってないポートを選んで外部と通信できなくさせて鎖国状態にする。(実験用のため)
proxy: http://localhost:1111
  • DBセットアップ

yarn run migrate を実行してDBを初期化。

5. 起動

先程作成した start.sh を実行。

~/misskey $ ./start.sh

> misskey@12.119.0 start
... (ログが流れる)

流れるログの中で Now listening port on... があれば起動成功。

ここでは http://localhost:3000 でアクセスできる。お疲れ様でした。


うまくできない場合は @cyberrex_v2@misskey.io まで。

外部に公開する

Cloudflaredを使う方法、ngrokを使う方法などがある。
Cloudflaredはaptでインストールできる。

検証環境

端末: Xperia 5 (SO-01M)
SoC: Qualcomm Snapdragon 855 (SM8150)
CPUコア数: 8
RAM: 6GB
OS: Android 11

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment