Installation
OAR ist ein Relay, das du auf deinem eigenen Rechner betreibst. Die
Installation bringt den Befehl oar auf diesen Rechner. Auf macOS und Linux
erledigt eine Zeile alles: Sie findet oder holt Node.js, installiert OAR,
schreibt die Config und startet das Relay. Auf Windows muss Node.js für den
Installer schon vorhanden sein, und du kannst immer auch mit npm oder aus einem
Git-Checkout installieren.
Voraussetzungen #
| Voraussetzung | Nötig für | Hinweise |
|---|---|---|
| macOS, Linux, Windows oder WSL | den Relay-Host | Der Installer für macOS und Linux kann Node.js für x64- und arm64-CPUs holen. WSL nutzt den Linux-Installer |
| Node.js 22.13 oder neuer | immer | Der Installer für macOS und Linux lädt eine eigene Kopie, wenn deine fehlt oder zu alt ist. Der Windows-Installer prüft nur |
| tmux (optional) | Linux und macOS | Session-Worker laufen in abgekoppelten tmux-Sessions, die du im Browser verfolgen kannst. Ohne tmux laufen sie als einfache Hintergrundprozesse. Windows nutzt tmux nie |
cloudflared (optional) |
den eingebauten Cloudflare Tunnel | OAR liefert keins mit; installiere es selbst |
| Die CLI oder ein Key eines Providers (optional) | Chats mit diesem Provider | Jeder Provider hat seine eigene Anmeldung; siehe die Provider-Seiten |
Mehr braucht die Installation nicht. Provider fügst du hinzu, wenn OAR läuft.
macOS und Linux #
curl -fsSL oar.sh/install | sh
Du kannst das Skript vorher unter oar.sh/install
lesen. Es braucht curl oder wget, und tar, wenn es Node.js holen muss. Als
root läuft es nicht: OAR wird pro Benutzer installiert, und nichts braucht root.
Was es tut #
- Es sieht nach, was der Rechner hat, und gibt einen Plan aus: welches Node.js es nutzt, wohin es OAR installiert, was es in dein Shell-Profil schreibt und wie das Relay gestartet wird.
- Es fragt
Continue? [Y/. Enter odern] ymacht weiter; jede andere Antwort ändert nichts. - Es installiert das Paket
@oar-(das neueste Release, sofern du keine Version oder keinen Kanal festlegst).sh/ oar - Es führt
oar setup --defaults --startaus: Es schreibt die Config (ein neues Auth-Token, Zugriff nur von diesem Rechner, den ersten freien Port ab 3333 oder den Port, den du mitOAR_setzt) und startet das Relay. Es gibt die Relay-URL und einen QR-Code aus.PORT - Es gibt die Version aus, meldet, dass das Relay läuft, und nennt die Befehle
oar,oar setupundoar doctor.
Auf Linux mit einer systemd-Benutzersitzung wird das Relay als systemd-Benutzerdienst gestartet und ist so nach einem Neustart wieder da. Anderswo (macOS, Container, WSL
ohne systemd) wird es im Hintergrund gestartet, und oar start startet es
nach einem Neustart wieder.
Wohin es installiert #
Welcher von drei Fällen gilt, hängt vom Node.js auf dem Rechner ab.
| Der Rechner hat | Was der Installer tut |
|---|---|
| Node.js 22.13 oder neuer und einen globalen npm-Ordner, in den du schreiben kannst (nvm, fnm, Homebrew, ein Benutzer-Prefix) | Führt npm install -g aus, wie du es von Hand tun würdest |
| Node.js 22.13 oder neuer, aber einen globalen npm-Ordner, der root braucht (ein Paket der Distribution oder von NodeSource) | Installiert das Paket mit deinem Node.js nach ~/. und legt einen Befehl oar in ~/. ab. Dein npm-Setup bleibt unverändert |
Kein Node.js, eins älter als 22.13, ein Node.js ohne npm oder OAR_ |
Lädt das aktuelle Node.js 24 von nodejs.org nach ~/. (Prüfsumme geprüft, etwa 30 MB), installiert damit das Paket nach ~/. und legt einen Befehl oar in ~/. ab |
Nur OAR nutzt sein eigenes Node.js. Der Befehl oar in ~/. setzt
dieses Node.js ans Ende von PATH, sodass ein eigenes Node.js in den Sessions
des Relays weiterhin zuerst kommt.
In den letzten beiden Fällen, wenn ~/. nicht in deinem PATH liegt,
nennt der Installer die Änderung in seinem Plan und hängt dann eine
Kommentarzeile (# added by the OAR installer) und eine Zeile export PATH an
die Startdatei deiner Shell an: ~/. für zsh, ~/. für bash
auf macOS, ~/. für bash auf Linux, sonst ~/.. Neue Terminals
finden oar; im aktuellen führst du die Zeile export PATH=... aus, die der
Installer ausgibt.
Optionen #
Flags stehen nach sh -s --. Variablen stehen vor sh.
| Option | Wirkung |
|---|---|
--yes, -y |
Überspringt die Frage. Für Skripte und CI |
OAR_ |
Dasselbe wie --yes |
OAR_ |
Installiert diese Version statt der neuesten |
OAR_ |
Installiert aus dem Beta-Kanal statt aus dem stabilen. Jeder andere Wert bedeutet stabil. OAR_ hat Vorrang |
OAR_ |
Setzt den Relay-Port in der Config |
OAR_ |
Nutzt OARs eigenes Node.js in ~/., auch wenn deins reichen würde |
OAR_ |
Gibt den Plan aus und installiert nichts |
Jedes andere Flag beendet den Installer mit 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
Erneut ausführen #
Der Installer kann jederzeit erneut laufen. Er installiert das Paket noch einmal
(das neueste Release, sofern du keins festlegst) und dient so auch als Update.
Er behält eine vorhandene Config, nutzt OARs eigenes Node.js weiter, wenn es
noch neu genug ist, schreibt den Starter oar neu und fügt die PATH-Zeilen
nur einmal in dein Profil ein.
Ohne Terminal ausführen #
Per Pipe aus curl stellt das Skript seine Frage im Terminal. Ohne Terminal,
etwa in einem CI-Job, bricht es mit no terminal to ask on ab und ändert
nichts. Gib in diesem Fall --yes mit.
Wo es aufhört #
- Es hat kein Node.js-Build für musl-Systeme wie Alpine und keins für andere CPUs als x64 und arm64. Installiere Node.js 22.13 oder neuer selbst und führe den Installer dann erneut aus.
- Wenn nodejs.org nicht erreichbar ist, ein Download oder eine Prüfsumme fehlschlägt oder das geladene Node.js nicht läuft, bricht es ab und installiert nichts.
- Releases vor 0.9.8 installieren genauso, aber ihr
oar setupkann das Relay nicht starten. Der Installer schreibt dann nur die Config und startet das Relay nicht.
Windows #
irm oar.sh/install.ps1 | iex
Dafür brauchst du PowerShell 5 oder neuer und ein bereits installiertes Node.js 22.13 oder neuer. Anders als der Installer für macOS und Linux holt er kein Node.js, fragt nicht nach einer Bestätigung und startet das Relay nicht. Er tut Folgendes:
- Prüft, dass
nodeundnpmvorhanden sind und Node.js neu genug ist. - Gibt den Plan aus.
- Führt
npm install -g --allow-aus.scripts= @oar- sh/ oar, better- sqlite3, koffi @oar- sh/ oar - Führt
oar setupaus. In einem Terminal fragt es, ob ein neues Auth-Token erzeugt werden soll, nach dem Zugriff (nur dieser Rechner oder LAN), dem Port und, Neu in 0.9.15 wie das Relay startet: bei der Anmeldung, beim Hochfahren, bevor sich jemand anmeldet (eine Administrator-Abfrage), oder gar nicht. Dann schreibt es die Config und gibt die Relay-URL aus.
Führe danach oar start aus, um das Relay zu starten; der gewählte Autostart
startet es bei der nächsten Anmeldung oder beim nächsten Hochfahren.
oar autostart ändert den Modus
später. Wie es weitergeht, steht unter
Erster Start.
| Option | Wirkung |
|---|---|
$env: |
Installiert diese Version statt der neuesten |
$env: |
Installiert aus dem Beta-Kanal statt aus dem stabilen |
$env: |
Gibt den Plan aus und installiert nichts |
Setz die Variable im selben PowerShell-Fenster vor dem Befehl. Der
Windows-Installer kennt kein OAR_; oar setup fragt nach dem Port, oder
du führst oar setup --port <port> aus.
PowerShell blockiert Skripte
Der Installer ruft die .-Shims von npm und oar auf, weil die
Standard-Ausführungsrichtlinie von Windows PowerShell die .-Varianten
ablehnt. Ist deine Richtlinie Restricted oder All, sagt er dir das am
Ende. Tipp oar. statt oar, oder erlaube lokale Skripte einmalig:
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Wenn die Installation klappt, oar aber nicht gefunden wird, öffne ein neues
Terminal und führe dann oar. aus.
npm #
npm install -g --allow-scripts=@oar-sh/oar,better-sqlite3,koffi @oar-sh/oar
oar setup
npm 12 führt kein Installationsskript aus, das nicht ausdrücklich erlaubt ist.
Zwei von OARs Abhängigkeiten (better-sqlite3, koffi) holen ihr natives Binary
in einem solchen Skript: Ohne sie gelingt die Installation unter npm 12, und
das Relay startet danach nicht. Neu in 0.9.14 Das Skript von OAR selbst
(@oar-) kopiert die Daten, die eine frühere Version im Paket abgelegt
hat, bevor npm sie entfernt; siehe
Upgrade-Hinweise für 0.9.14. npm 10 und 11
akzeptieren das Flag und brauchen keins. Die Installer, oar update und der
Button Update (Aktualisieren) geben es selbst mit.
Nie mit --ignore-scripts installieren oder aktualisieren
--ignore- überspringt jedes Installationsskript: die nativen Module,
sodass das Relay nicht starten kann, und die Kopie der Daten einer früheren
Version.
oar setup legt die Config an und gibt die Relay-URL aus, startet das Relay
aber nur, wenn du --start mitgibst. Nutze danach oar start. Der globale
Ordner von npm muss beschreibbar sein und sein bin-Ordner in deinem PATH
liegen; npm prefix -g zeigt, wo er ist. Wenn er root braucht, nimm kein
sudo: Führe stattdessen auf macOS oder Linux den Installer aus. Für spätere
Updates führst du oar update aus.
Aus einem Git-Checkout #
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
Ein Checkout unterscheidet sich in drei Punkten von einer globalen Installation:
- Der Zustand liegt im Repository:
server/,config. json server/,data/ server/unduploads/ server/. Eine globale Installation hält ihren Zustand inlogs/ ~/.(siehe Wo OAR seine Dateien ablegt und Dateien und Ordner).oar - Er aktualisiert sich nie selbst. Aktualisiere mit
git pull,npm installund starte das Relay dann mit 🌄 Restart web relay (Web-Relay neu starten) im Menü⋯einer Konversation neu.oar updateist für globale Installationen. oar start,oar stopundoar restartgibt es nur für globale Installationen. In einem Checkout führtnpm startdas Relay im Vordergrund aus.
node server/ überschreibt die Config
für einen Lauf, ohne sie zu speichern.
Nach Plattform #
| macOS | Linux | Windows | WSL | |
|---|---|---|---|---|
| Installer | curl -fs |
derselbe | irm oar. |
der Linux-Installer, in der Distribution |
| Holt Node.js | ja | ja | nein, vorher installieren | ja |
| Startet das Relay | im Hintergrund | als systemd-Benutzerdienst, wenn es eine Benutzersitzung gibt, sonst im Hintergrund | nein, oar start ausführen |
als systemd-Dienst, wenn systemd an ist, sonst im Hintergrund |
| Start bei der Anmeldung | noch nicht | oar service install |
oar autostart signin oder boot |
nur mit systemd |
| Zustandsordner | ~/. |
~/. |
%APPDATA%\ |
~/. in der Distribution |
| tmux für Session-Worker | optional | optional | nicht genutzt | optional |
Nach einem Neustart startet oar start ein Relay, das im Hintergrund läuft.
WSL #
Führe den Linux-Installer in der Distribution aus, nicht in Windows. Im
Standard-Netzwerkmodus von WSL kann ein Port in der Distribution frei sein,
während ein Windows-Programm auf ihm lauscht, und localhost:<port> in einem
Windows-Browser erreicht dann dieses Programm. Eine neue Config nimmt deshalb
den ersten Port, der auf beiden Seiten frei ist, und oar setup lehnt einen
Port ab, den Windows belegt. oar status, oar start und oar doctor warnen,
wenn Windows den Port des Relays belegt. Zur Abhilfe wählst du einen anderen
Port:
oar setup --port 3400
Eine LAN-Adresse in WSL ist WSL-intern. Für den Zugriff vom Handy nutze einen Tunnel oder den Mirrored-Netzwerkmodus von WSL.
OAR entfernen #
Neu in 0.9.15 oar uninstall entfernt OAR vom Rechner und behält deine Daten:
oar uninstall
Es stoppt das Relay (und wartet auf laufende Turns), entfernt die
Autostart-Einträge, die OAR erzeugt hat (die systemd-Unit oder den
Windows-Anmeldeeintrag und den Start-Task, mit einer Administrator-Abfrage
für den Start-Task) und den Wrapper der Copilot-Erweiterung, den OAR
geschrieben hat, und lässt npm das Paket entfernen, sobald der Befehl beendet
ist. Einträge, die du von Hand angelegt oder bearbeitet hast, bleiben und
werden genannt. Deine Config, Datenbank, Uploads und Logs bleiben im
Zustandsordner, und der Befehl gibt aus, wo; eine spätere Installation
übernimmt sie wieder. oar uninstall
hat die Details und jede Meldung.
Um auch die Daten zu löschen:
oar uninstall --purge
Es löscht den Zustandsordner, nachdem du delete eingetippt hast, und fragt
gesondert, bevor es einen Datenordner außerhalb davon, einen in einem
Git-Checkout oder rescued- löscht. Es lehnt ein
Laufwerks-Stammverzeichnis, deinen Home-Ordner, einen Systemordner und jeden
Ordner ohne OARs Config oder Datenbank ab. Damit löschst du deine
Konversationen.
oar uninstall macht nicht rückgängig, was der Installer für macOS und Linux
außerhalb des Pakets angelegt hat:
- das Skript
oarin~/., wenn der Installer es dort abgelegt hat (sein zweiter und dritter Fall);local/ bin - die zwei Zeilen, die er an die Startdatei deiner Shell angehängt hat, falls
vorhanden (den Kommentar
# added by the OAR installerund die Zeileexport PATHdarunter); ~/., OARs eigenes Node.js, falls vorhanden. Es liegt im Zustandsordner und bleibt deshalb ohneoar/ runtime --purgeerhalten.
Vor 0.9.15, oder wenn oar nicht mehr läuft, entfernst du die Teile von Hand:
Stopp das Relay mit oar stop und führe oar service remove
aus, wo ein Dienst oder ein Windows-Autostart eingerichtet ist; entferne das
Paket mit npm uninstall -g @oar- oder lösche nach den anderen beiden
Fällen des Installers ~/.; dann die Teile oben, und ~/. oder
%APPDATA%\ nur, wenn deine Daten weg sollen.
Wo OAR seine Dateien ablegt #
Eine globale Installation hält ihren Zustand in ~/. (%APPDATA%\ auf
Windows; OAR_ verschiebt ihn):
config.json data/, mit der Datenbank und den Uploadslogs/, mitserver.undlog server-, wennerr. log oardas Relay gestartet hat, und einemworker-<session>.für jeden Node-Session-Workerlog
Ein Update des Pakets mit npm rührt diese nie an. Der Installer für macOS und
Linux kann dort zwei Ordner anlegen, die kein Zustand sind: npm/ (das Paket,
wenn der globale Ordner von npm nicht beschreibbar war) und runtime/
(OARs eigenes Node.js). oar doctor gibt die genutzten Pfade aus.
Was du danach hast #
- Den Befehl
oar. In einem Terminal öffnetoarallein ein Menü mit dem Status des Relays und den anderen Befehlen.oar setupändert die Einstellungen (Zugriff für andere Geräte, Port, Token), undoar urlgibt die Relay-URL erneut aus. - Eine Config mit einem frischen Auth-Token. Mit dem Standardzugriff ist das
Relay nur auf diesem Rechner erreichbar, unter
http://oder dem nächsten freien Port.localhost: 3333/ - Auf macOS und Linux: ein laufendes Relay. Auf Windows und nach einer
npm-Installation von Hand: ein Relay, das du mit
oar startstartest.
Prüfen, was installiert ist:
oar --version
oar doctor
oar doctor gibt die Version, Node.js, die Installationsart, den Zustandsordner, den
Config-Pfad, den Port, ob ein Token gesetzt ist, Pfad und Größe der Datenbank
und die Provider-CLIs aus, die antworten. Es ändert nichts.
Fehlerbehebung #
Für Probleme nach der Installation siehe Fehlerbehebung.
| Symptom | Was zu tun ist |
|---|---|
npm install -g @oar- schlägt mit EACCES fehl |
Der globale Ordner von npm braucht root, wie bei einem Node.js der Distribution oder von NodeSource. Nimm kein sudo. Führe den Installer für macOS und Linux aus, der stattdessen nach ~/. installiert |
| Der Windows-Installer meldet, dein Node.js sei zu alt | OAR braucht 22.13 oder neuer. Installiere ein aktuelles Node.js von nodejs.org und führe den Installer erneut aus. (Der Installer für macOS und Linux lädt stattdessen sein eigenes Node.js und nennt den Grund in seinem Plan) |
Node. auf Windows |
Installiere Node.js 22.13 oder neuer von nodejs.org, öffne ein neues Terminal und führe den Installer erneut aus |
oar: command not found nach dem Installer |
Öffne ein neues Terminal oder führe die Zeile export PATH=... aus, die der Installer ausgegeben hat. Auf Windows öffnest du ein neues Terminal und führst dann oar. aus |
oar wird in PowerShell blockiert |
Tipp oar., oder führe einmal Set- aus |
| Die Installation scheitert mit node-gyp- oder prebuild-Fehlern | better- hat kein vorgefertigtes Binary für deine Plattform. Installiere eine C/C++-Build-Toolchain und Python und versuch es erneut |
Das Relay startet nach einer Installation mit npm 12 nicht, mit einem better--Fehler in server- |
npm 12 hat die Installationsskripte von OARs nativen Abhängigkeiten übersprungen. Installiere neu mit npm install -g --allow- |
Der Installer meldet no terminal to ask on |
Gib --yes mit: curl -fs |
Der Installer meldet refusing to run as root |
Führe ihn erneut als dein eigener Benutzer aus, ohne sudo |
| Kein Node.js-Download für dein System (musl, andere CPU) | Installiere Node.js 22.13 oder neuer selbst und führe den Installer dann erneut aus |
| WSL: Der Windows-Browser zeigt eine andere Seite oder lehnt das Token ab | Windows belegt den Port. Führe oar setup --port <port> mit einem anderen aus |