メインコンテンツまでスキップ

非Docker環境でのインストール

Dockerを使用してTianjiをインストールするのが最善の方法で、環境問題を考慮する必要がありません。

しかし、サーバーがDockerをサポートしていない場合は、手動でインストールすることができます。

要件

以下が必要です:

  • Node.js 18.12+ / 20.4+
  • pnpm 9.x(9.7.1が望ましい)
  • Git
  • postgresql
  • pm2 - Tianjiをバックグラウンドで実行するため
  • apprise - オプション、通知が必要な場合

コードのクローンとビルド

git clone https://github.com/msgbyte/tianji.git
cd tianji
pnpm install

pnpm build

環境ファイルの準備

src/server.envファイルを作成します。

DATABASE_URL="postgresql://user:pass@127.0.0.1:5432/tianji?schema=public"
JWT_SECRET="replace-me-with-a-random-string"

データベースのURLが正しいことを確認し、データベースを事前に作成することを忘れないでください。

詳細な環境設定については、このドキュメントを参照してください environment

可能であれば、エンコーディングがen_US.utf8であることを確認してください。例:createdb -E UTF8 -l en_US.utf8 tianji

サーバーの実行

npm install pm2 -g && pm2 install pm2-logrotate

# データベースのマイグレーションを初期化
cd src/server
pnpm db:migrate:apply

# サーバーの起動
pm2 start ./dist/src/server/main.js --name tianji

デフォルトでは、Tianjihttp://localhost:12345で実行されます。

新しいバージョンへのコードの更新

# 新しいリリース/タグをチェックアウト
cd tianji
git fetch --tags
git checkout -q <version>

# 依存関係の更新
pnpm install

# プロジェクトのビルド
pnpm build

# データベースのマイグレーションを実行
cd src/server
pnpm db:migrate:apply

# サーバーの再起動
pm2 restart tianji

よくある質問

isolated-vmのインストールに失敗する

Python 3.12を使用している場合、以下のようなエラーが発生することがあります:

ModuleNotFoundError: No module named 'distutils'

これは、Python 3.12がdistutilsを組み込みモジュールから削除したためです。現在、この問題に対する良い解決策があります。

Pythonのバージョンを3.12から3.9に切り替えることで解決できます。

brewで管理されているPythonでの解決方法

brew install python@3.9
rm /opt/homebrew/bin/python3
ln -sf /opt/homebrew/bin/python3 /opt/homebrew/bin/python3.9

その後、python3 --versionでバージョンを確認できます。