すべてのページ
このページの内容

インストール

OAR は自分のマシンで動かすリレーです。インストールすると、そのマシンで oar コマンドが使えるようになります。macOS と Linux では 1 行ですべてが済みます。Node.js を見つけるか取得し、OAR をインストールし、設定ファイルを書き込み、リレーを起動します。Windows では、インストーラーを使うには Node.js がすでに入っている必要があります。どの環境でも、npm や git チェックアウトからインストールすることもできます。

必要なもの #

要件 必要な場面 補足
macOS、Linux、Windows、または WSL リレーのホスト macOS と Linux のインストーラーは、x64 と arm64 の CPU 向けに Node.js を取得できます。WSL では Linux のインストーラーを使います
Node.js 22.13 以降 常に macOS と Linux のインストーラーは、Node.js がないか古すぎる場合に専用のコピーをダウンロードします。Windows のインストーラーは確認するだけです
tmux(任意) Linux と macOS セッションワーカーはデタッチされた tmux セッションで動作し、ブラウザーから様子を確認できます。tmux がない場合は通常のバックグラウンドプロセスとして動作します。Windows では tmux を使いません
cloudflared(任意) 組み込みの Cloudflare トンネル OAR には同梱されていません。自分でインストールしてください
プロバイダーの CLI またはキー(任意) そのプロバイダーとのチャット プロバイダーごとにサインイン方法が異なります。プロバイダーのページを参照してください

インストールに必要なものはこれだけです。プロバイダーは OAR が動き始めてから追加します。

macOS と Linux #

curl -fsSL oar.sh/install | sh

スクリプトの内容は、先に oar.sh/install で確認できます。curl または wget が必要で、Node.js を取得する場合は tar も必要です。root では実行できません。OAR はユーザーごとにインストールされ、root が必要な処理はありません。

インストーラーの動作 #

  1. マシンの状態を調べ、計画を表示します。使う Node.js、OAR のインストール先、シェルのプロファイルに書き込む内容、リレーの起動方法です。
  2. Continue? [Y/n] と尋ねます。Enter または y で続行し、それ以外の答えでは何も変更しません。
  3. パッケージ @oar-sh/oar をインストールします(バージョンやチャンネルを固定しない限り、最新のリリースです)。
  4. oar setup --defaults --start を実行します。設定ファイル(新しい認証トークン、このマシンのみのアクセス、3333 以降で最初に空いているポート、または OAR_PORT で指定したポート)を書き込み、リレーを起動します。リレーの URL と QR コードを表示します。
  5. バージョンを表示し、リレーが実行中であることを伝え、コマンド oar、oar setup、oar doctor を一覧表示します。

systemd のユーザーセッションがある Linux では、リレーは systemd のユーザーサービスとして起動するため、再起動後も自動で戻ります。それ以外の環境(macOS、コンテナー、systemd のない WSL)ではバックグラウンドで起動し、再起動後は oar start でもう一度起動します。

インストール先 #

次の 3 つのどれに当たるかは、マシンにある Node.js によって決まります。

マシンの状態 インストーラーの動作
Node.js 22.13 以降があり、書き込み可能なグローバル npm フォルダーがある(nvm、fnm、Homebrew、ユーザープレフィックス) 手動の場合と同じように npm install -g を実行します
Node.js 22.13 以降があるが、グローバル npm フォルダーに root が必要(ディストリビューションや NodeSource のパッケージ) 既存の Node.js でパッケージを ~/.oar/npm にインストールし、oar コマンドを ~/.local/bin に置きます。npm の設定は変更しません
Node.js がない、22.13 より古い、npm のない Node.js、または OAR_NODE=private 現在の Node.js 24 を nodejs.org から ~/.oar/runtime/node にダウンロードし(チェックサムを検証、約 30 MB)、それを使ってパッケージを ~/.oar/npm にインストールし、oar コマンドを ~/.local/bin に置きます

OAR 専用の Node.js を使うのは OAR だけです。~/.local/bin にある oar コマンドは、その Node.js を PATH の最後に置くため、リレーのセッションでは自分の Node.js が引き続き優先されます。

後の 2 つの場合で ~/.local/bin が PATH にないときは、インストーラーはその変更を計画に含め、シェルの起動ファイルにコメント行(# added by the OAR installer)と export PATH の行を追加します。起動ファイルは、zsh では ~/.zshrc、macOS の bash では ~/.bash_profile、Linux の bash では ~/.bashrc、それ以外では ~/.profile です。新しいターミナルでは oar が見つかります。現在のターミナルでは、インストーラーが表示する export PATH=... の行を実行してください。

オプション #

フラグは sh -s -- の後に、変数は sh の前に置きます。

オプション 効果
--yes、-y 確認の質問を省略します。スクリプトや CI で使います
OAR_YES=1 --yes と同じです
OAR_VERSION=x.y.z 最新版の代わりにそのバージョンをインストールします
OAR_CHANNEL=beta stable チャンネルの代わりに beta チャンネルからインストールします。それ以外の値は stable を意味します。OAR_VERSION が優先されます
OAR_PORT=n 設定ファイルにリレーのポートを設定します
OAR_NODE=private 自分の Node.js で足りる場合でも、~/.oar/runtime/node にある OAR 専用の Node.js を使います
OAR_DRY_RUN=1 計画を表示するだけで、何もインストールしません

それ以外のフラグを指定すると、インストーラーは unknown option を表示して停止します。

curl -fsSL oar.sh/install | sh -s -- --yes
curl -fsSL oar.sh/install | OAR_VERSION=0.9.19 OAR_PORT=3400 sh
curl -fsSL oar.sh/install | OAR_DRY_RUN=1 sh

もう一度実行する #

インストーラーはいつでも再実行できます。パッケージをもう一度インストールする(固定しない限り最新のリリース)ため、更新にも使えます。既存の設定ファイルは保持し、OAR 専用の Node.js が十分新しければ再利用し、oar ランチャーを書き直します。プロファイルへの PATH の行の追加は 1 回だけです。

ターミナルなしで実行する #

curl からパイプで渡した場合も、スクリプトはターミナルで質問します。CI ジョブなどターミナルがない場合は、no terminal to ask on を表示して停止し、何も変更しません。その場合は --yes を指定してください。

インストーラーが停止するケース #

  • Alpine などの musl システム向けや、x64 と arm64 以外の CPU 向けの Node.js ビルドはありません。Node.js 22.13 以降を自分でインストールしてから、インストーラーをもう一度実行してください。
  • nodejs.org に接続できない場合、ダウンロードやチェックサムの検証に失敗した場合、ダウンロードした Node.js が動かない場合は、停止して何もインストールしません。
  • 0.9.8 より前のリリースも同じ方法でインストールできますが、その oar setup はリレーを起動できません。その場合、インストーラーは設定ファイルを書き込むだけで、リレーは起動しません。

Windows #

irm oar.sh/install.ps1 | iex

PowerShell 5 以降と、インストール済みの Node.js 22.13 以降が必要です。macOS と Linux のインストーラーとは異なり、Node.js の取得、確認の質問、リレーの起動は行いません。行うのは次のことです。

  1. node と npm があり、Node.js が十分新しいことを確認します。
  2. 計画を表示します。
  3. npm install -g --allow-scripts=@oar-sh/oar,better-sqlite3,koffi @oar-sh/oar を実行します。
  4. oar setup を実行します。ターミナルでは、新しい認証トークンを作るかどうか、アクセス(このマシンのみ、または LAN)、ポート、そして 0.9.15 で追加 リレーの起動方法を尋ねます。起動方法は、サインイン時、誰かがサインインする前の起動時(管理者の確認が 1 回)、または起動しない、のいずれかです。その後、設定ファイルを書き込み、リレーの URL を表示します。

その後、oar start を実行してリレーを起動します。選んだ自動起動の設定により、次回のサインイン時または起動時にリレーが起動します。モードは後から oar autostart で変更できます。次の手順は初回起動にあります。

オプション 効果
$env:OAR_VERSION = '0.9.19' 最新版の代わりにそのバージョンをインストールします
$env:OAR_CHANNEL = 'beta' stable チャンネルの代わりに beta チャンネルからインストールします
$env:OAR_DRY_RUN = '1' 計画を表示するだけで、何もインストールしません

変数は、コマンドを実行する前に同じ PowerShell ウィンドウで設定してください。Windows のインストーラーには OAR_PORT がありません。ポートは oar setup で尋ねられます。oar setup --port <port> を実行して指定することもできます。

PowerShell がスクリプトをブロックする場合

Windows PowerShell の既定の実行ポリシーは .ps1 のシムを拒否するため、インストーラーは npm と oar の .cmd シムを呼び出します。ポリシーが Restricted または AllSigned の場合は、最後にその旨を表示します。oar の代わりに oar.cmd と入力するか、ローカルスクリプトを一度許可してください。

Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

インストールは成功したのに oar が見つからない場合は、新しいターミナルを開いてから oar.cmd setup を実行してください。

npm #

npm install -g --allow-scripts=@oar-sh/oar,better-sqlite3,koffi @oar-sh/oar
oar setup

npm 12 は、許可されていないインストールスクリプトを実行しません。OAR の依存関係のうち 2 つ(better-sqlite3、koffi)は、インストールスクリプトでネイティブバイナリを取得します。これらがないと、npm 12 ではインストールは成功しても、その後リレーが起動しません。0.9.14 で追加 OAR 自身のスクリプト(@oar-sh/oar)は、npm がパッケージを削除する前に、以前のバージョンがパッケージ内に保存していたデータをコピーします。0.9.14 のアップグレードの注意点を参照してください。npm 10 と 11 はこのフラグを受け付けますが、必要ありません。インストーラー、oar update、Update(更新)ボタンは、このフラグを自動で渡します。

--ignore-scripts でインストールや更新をしないでください

--ignore-scripts はすべてのインストールスクリプトを省略します。ネイティブモジュールが取得されないためリレーが起動できず、以前のバージョンのデータのコピーも行われません。

oar setup は設定ファイルを作成してリレーの URL を表示しますが、--start を指定しない限りリレーは起動しません。その後 oar start を使ってください。npm のグローバルフォルダーは書き込み可能で、その bin フォルダーが PATH に含まれている必要があります。場所は npm prefix -g で確認できます。root が必要な場合は sudo を使わず、macOS や Linux ではインストーラーを実行してください。後で更新するには oar update を実行します。

git チェックアウトから #

git clone https://github.com/oar-sh/oar
cd oar
npm install
node bin/oar.js setup   # writes server/config.json with a fresh auth token
npm start               # the same as: node server/server.js

チェックアウトは、グローバルインストールと次の 3 点で異なります。

  • 状態はリポジトリの中に置かれます: server/config.json、server/data/、server/uploads/、server/logs/ です。グローバルインストールは状態を ~/.oar に置きます(OAR がファイルを置く場所とファイルとフォルダーを参照)。
  • 自動では更新されません。 git pull、npm install で更新し、会話の ⋯ メニューにある 🌄 Restart web relay(Web リレーを再起動)でリレーを再起動します。oar update はグローバルインストール用です。
  • oar start、oar stop、oar restart はグローバルインストール専用です。 チェックアウトでは、npm start がリレーをフォアグラウンドで実行します。

node server/server.js --port <port> --token <token> は、保存せずに 1 回の実行だけ設定ファイルを上書きします。

プラットフォーム別 #

macOS Linux Windows WSL
インストーラー curl -fsSL oar.sh/install | sh 同じ irm oar.sh/install.ps1 | iex Linux 用をディストリビューション内で
Node.js の取得 はい はい いいえ。先にインストールします はい
リレーの起動 バックグラウンドで ユーザーセッションがあれば systemd のユーザーサービスとして、なければバックグラウンドで いいえ。oar start を実行します systemd が有効なら systemd のサービスとして、なければバックグラウンドで
ログイン時に起動 未対応 oar service install oar autostart signin または boot systemd がある場合のみ
状態フォルダー ~/.oar ~/.oar %APPDATA%\oar ディストリビューション内の ~/.oar
セッションワーカー用の tmux 任意 任意 使わない 任意

再起動後、バックグラウンドで動くリレーは oar start で起動します。

WSL #

Linux のインストーラーは、Windows ではなくディストリビューションの中で実行してください。WSL の既定のネットワーク設定では、ディストリビューション内でポートが空いていても Windows のプログラムがそのポートで待ち受けていることがあり、その場合 Windows のブラウザーで localhost:<port> を開くとそのプログラムにつながります。そのため、新しい設定ファイルは両側で空いている最初のポートを使い、oar setup は Windows が使っているポートを受け付けません。oar status、oar start、oar doctor は、リレーのポートを Windows が使っている場合に警告します。解決するには別のポートを選びます。

oar setup --port 3400

WSL 内の LAN アドレスは WSL の内部でしか使えません。スマートフォンからアクセスするには、トンネルか WSL のミラーモードのネットワークを使ってください。

OAR の削除 #

0.9.15 で追加 oar uninstall は、データを残したまま OAR をマシンから削除します。

oar uninstall

リレーを停止し(実行中のターンを待ちます)、OAR が生成した自動起動の項目(systemd のユニット、または Windows のサインイン時の項目と起動タスク。起動タスクには管理者の確認が 1 回必要です)と、OAR が書き込んだ Copilot 拡張機能のラッパーを削除し、コマンドの終了後に npm でパッケージを削除します。自分で作成または編集した項目は残り、その名前が表示されます。設定ファイル、データベース、アップロード、ログは状態フォルダーに残り、コマンドがその場所を表示します。後でインストールすると、それらがまた使われます。詳細とすべてのメッセージは oar uninstall にあります。

データも削除するには、次を実行します。

oar uninstall --purge

delete と入力すると状態フォルダーを削除します。状態フォルダーの外にあるデータフォルダー、git チェックアウト内のデータフォルダー、rescued-package-data については、削除の前に別途確認します。ドライブのルート、ホームフォルダー、システムフォルダー、OAR の設定ファイルやデータベースを含まないフォルダーは削除しません。この操作で会話も削除されます。

oar uninstall は、macOS と Linux のインストーラーがパッケージの外に追加したものは元に戻しません。

  • ~/.local/bin にある oar スクリプト(インストーラーがそこに置いた場合。2 つ目と 3 つ目のケース)
  • シェルの起動ファイルに追加された 2 行(ある場合。コメント # added by the OAR installer と、その下の export PATH の行)
  • ~/.oar/runtime(OAR 専用の Node.js がある場合)。状態フォルダー内にあるため、--purge なしでは残ります。

0.9.15 より前のバージョンや、oar がもう動かない場合は、手動で取り除きます。oar stop でリレーを停止し、サービスや Windows の自動起動を設定している場合は oar service remove を実行します。パッケージは npm uninstall -g @oar-sh/oar で削除するか、インストーラーの他の 2 つのケースでは ~/.oar/npm を削除します。その後、上記のものを削除し、データも消したい場合に限り ~/.oar または %APPDATA%\oar を削除します。

OAR がファイルを置く場所 #

グローバルインストールは状態を ~/.oar(Windows では %APPDATA%\oar。OAR_STATE_ROOT で場所を変えられます)に置きます。

  • config.json
  • data/:データベースとアップロード
  • logs/:oar がリレーを起動した場合の server.log と server-err.log、および Node のセッションワーカーごとの worker-<session>.log

npm でパッケージを更新しても、これらには触れません。macOS と Linux のインストーラーは、状態ではないフォルダーを 2 つ追加することがあります。npm/(npm のグローバルフォルダーに書き込めなかった場合のパッケージ)と runtime/node/(OAR 専用の Node.js)です。使用中のパスは oar doctor で表示されます。

インストール後にあるもの #

  • oar コマンド。ターミナルで oar だけを実行するとメニューが開き、リレーの状態と他のコマンドが表示されます。oar setup は設定(他のデバイスからのアクセス、ポート、トークン)を変更し、oar url はリレーの URL をもう一度表示します。
  • 新しい認証トークンを含む設定ファイル。既定のアクセスでは、リレーにはこのマシンからのみ、http://localhost:3333/ または次に空いているポートで接続できます。
  • macOS と Linux では、実行中のリレー。Windows と手動の npm インストールの後は、oar start で起動するリレー。

インストールされたものを確認します。

oar --version
oar doctor

oar doctor は、バージョン、Node.js、インストール方法、状態フォルダー、設定ファイルのパス、ポート、トークンが設定されているかどうか、データベースのパスとサイズ、応答するプロバイダーの CLI を表示します。何も変更しません。

トラブルシューティング #

インストール後の問題については、トラブルシューティングを参照してください。

症状 対処
npm install -g @oar-sh/oar が EACCES で失敗する ディストリビューションや NodeSource の Node.js のように、npm のグローバルフォルダーに root が必要です。sudo は使わないでください。macOS と Linux のインストーラーを実行すると、代わりに ~/.oar/npm にインストールされます
Windows のインストーラーが Node.js が古すぎると表示する OAR には 22.13 以降が必要です。nodejs.org から現在の Node.js をインストールし、インストーラーをもう一度実行してください。(macOS と Linux のインストーラーは代わりに専用の Node.js をダウンロードし、その理由を計画に記載します)
Windows で Node.js not found と表示される nodejs.org から Node.js 22.13 以降をインストールし、新しいターミナルを開いて、インストーラーをもう一度実行してください
インストーラーの実行後に oar: command not found と表示される 新しいターミナルを開くか、インストーラーが表示した export PATH=... の行を実行してください。Windows では、新しいターミナルを開いてから oar.cmd setup を実行してください
PowerShell で oar がブロックされる oar.cmd と入力するか、Set-ExecutionPolicy -Scope CurrentUser RemoteSigned を一度実行してください
node-gyp や prebuild のエラーでインストールが失敗する better-sqlite3 に、お使いのプラットフォーム向けのビルド済みバイナリがありません。C/C++ のビルドツールチェーンと Python をインストールしてから、もう一度試してください
npm 12 でのインストール後にリレーが起動せず、server-err.log に better-sqlite3 のエラーがある npm 12 が OAR のネイティブ依存関係のインストールスクリプトを省略しました。npm install -g --allow-scripts=@oar-sh/oar,better-sqlite3,koffi @oar-sh/oar で再インストールしてください
インストーラーが no terminal to ask on と表示する --yes を追加します:curl -fsSL oar.sh/install | sh -s -- --yes
インストーラーが refusing to run as root と表示する sudo を使わず、自分のユーザーでもう一度実行してください
お使いのシステム向けの Node.js のダウンロードがない(musl、他の CPU) Node.js 22.13 以降を自分でインストールしてから、インストーラーをもう一度実行してください
WSL:Windows のブラウザーに別のページが表示される、またはトークンが拒否される Windows がそのポートを使っています。別のポートを指定して oar setup --port <port> を実行してください