Installation
OAR est un relais que vous faites tourner sur votre propre machine. L’installer
place la commande oar sur cette machine. Sous macOS et Linux, une seule ligne
fait tout le travail : elle trouve ou télécharge Node.js, installe OAR, écrit la
config et démarre le relais. Sous Windows, l’installateur a besoin que Node.js
soit déjà là, et vous pouvez toujours installer avec npm ou depuis un checkout git.
Prérequis #
| Prérequis | Nécessaire pour | Remarques |
|---|---|---|
| macOS, Linux, Windows ou WSL | l’hôte du relais | L’installateur macOS et Linux peut télécharger Node.js pour les processeurs x64 et arm64. WSL utilise l’installateur Linux |
| Node.js 22.13 ou plus récent | toujours | L’installateur macOS et Linux télécharge sa propre copie quand la vôtre manque ou est trop ancienne. L’installateur Windows se contente de vérifier |
| tmux (facultatif) | Linux et macOS | Les workers de session tournent dans des sessions tmux détachées que vous pouvez observer depuis le navigateur. Sans tmux, ils tournent comme de simples processus en arrière-plan. Windows n’utilise jamais tmux |
cloudflared (facultatif) |
le tunnel Cloudflare intégré | OAR n’en fournit pas ; installez-le vous-même |
| La CLI ou la clé d’un fournisseur (facultatif) | les chats avec ce fournisseur | Chaque fournisseur a sa propre connexion ; voir les pages des fournisseurs |
Rien d’autre n’est nécessaire pour installer. Vous ajoutez les fournisseurs une fois OAR lancé.
macOS et Linux #
curl -fsSL oar.sh/install | sh
Vous pouvez d’abord lire le script sur oar.sh/install.
Il a besoin de curl ou wget, et de tar quand il doit télécharger Node.js.
Il refuse de tourner en root : OAR s’installe par utilisateur, et rien n’a
besoin de root.
Ce qu’il fait #
- Il regarde ce que la machine possède et affiche un plan : quel Node.js il utilise, où il installe OAR, ce qu’il écrit dans votre profil shell et comment le relais sera démarré.
- Il demande
Continue? [Y/. Enter oun] ypoursuit ; toute autre réponse ne change rien. - Il installe le paquet
@oar-(la dernière version, sauf si vous fixez une version ou un canal).sh/ oar - Il lance
oar setup --defaults --start: il écrit la config (un nouveau token d’auth, un accès pour cette machine uniquement, le premier port libre à partir de 3333, ou le port que vous fixez avecOAR_) et démarre le relais. Il affiche l’URL du relais et un QR code.PORT - Il affiche la version, vous indique que le relais tourne et liste les
commandes
oar,oar setupetoar doctor.
Sous Linux avec une session utilisateur systemd, le relais est démarré comme
service utilisateur systemd, il revient donc après un redémarrage. Ailleurs (macOS, conteneurs, WSL
sans systemd), il est démarré en arrière-plan, et oar start le relance après
un redémarrage de la machine.
Où il installe #
Lequel des trois cas s’applique dépend du Node.js présent sur la machine.
| La machine a | Ce que fait l’installateur |
|---|---|
| Node.js 22.13 ou plus récent, et un dossier npm global où vous pouvez écrire (nvm, fnm, Homebrew, un préfixe utilisateur) | Lance npm install -g, comme vous le feriez à la main |
| Node.js 22.13 ou plus récent, mais un dossier npm global qui exige root (un paquet de distribution ou NodeSource) | Installe le paquet dans ~/. avec votre Node.js et place une commande oar dans ~/.. Votre configuration npm n’est pas modifiée |
Pas de Node.js, un Node.js antérieur à 22.13, un Node.js sans npm, ou OAR_ |
Télécharge le Node.js 24 actuel depuis nodejs.org dans ~/. (somme de contrôle vérifiée, environ 30 Mo), installe avec lui le paquet dans ~/. et place une commande oar dans ~/. |
Seul OAR utilise son propre Node.js. La commande oar de ~/. place
ce Node.js en dernier dans PATH, de sorte qu’un Node.js à vous passe toujours
en premier dans les sessions du relais.
Dans les deux derniers cas, quand ~/. n’est pas dans votre PATH,
l’installateur liste le changement dans son plan, puis ajoute une ligne de
commentaire (# added by the OAR installer) et une ligne export PATH au
fichier de démarrage de votre shell : ~/. pour zsh, ~/.
pour bash sous macOS, ~/. pour bash sous Linux, ~/. sinon. Les
nouveaux terminaux trouvent oar ; dans le terminal actuel, lancez la ligne
export PATH=... que l’installateur affiche.
Options #
Les flags se placent après sh -s --. Les variables se placent avant sh.
| Option | Effet |
|---|---|
--yes, -y |
Saute la question. Utilisez-le dans les scripts et la CI |
OAR_ |
Identique à --yes |
OAR_ |
Installe cette version au lieu de la dernière |
OAR_ |
Installe depuis le canal beta au lieu du canal stable. Toute autre valeur signifie stable. OAR_ l’emporte sur lui |
OAR_ |
Fixe le port du relais dans la config |
OAR_ |
Utilise le Node.js propre à OAR dans ~/. même quand le vôtre conviendrait |
OAR_ |
Affiche le plan et n’installe rien |
Tout autre flag arrête l’installateur avec 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
Le relancer #
L’installateur peut être relancé à tout moment. Il réinstalle le paquet (la
dernière version, sauf si vous en fixez une), il sert donc aussi de mise à jour.
Il conserve une config existante, réutilise le Node.js propre à OAR s’il est
encore assez récent, réécrit le lanceur oar et n’ajoute les lignes PATH à
votre profil qu’une seule fois.
Le lancer sans terminal #
Passé par un pipe depuis curl, le script pose sa question sur le terminal.
Sans terminal, par exemple dans un job de CI, il s’arrête avec
no terminal to ask on et ne change rien. Passez --yes dans ce cas.
Là où il s’arrête #
- Il n’a pas de build Node.js pour les systèmes musl comme Alpine, ni pour d’autres processeurs que x64 et arm64. Installez vous-même Node.js 22.13 ou plus récent, puis relancez l’installateur.
- Si nodejs.org est injoignable, si un téléchargement ou une somme de contrôle échoue, ou si le Node.js téléchargé ne se lance pas, il s’arrête et n’installe rien.
- Les versions antérieures à 0.9.8 s’installent de la même façon, mais leur
oar setupne peut pas démarrer le relais. L’installateur se contente alors d’écrire la config et ne démarre pas le relais.
Windows #
irm oar.sh/install.ps1 | iex
Il faut PowerShell 5 ou plus récent, et Node.js 22.13 ou plus récent déjà installé. Contrairement à l’installateur macOS et Linux, il ne télécharge pas Node.js, ne demande pas de confirmation et ne démarre pas le relais. Il fait ceci :
- Vérifie que
nodeetnpmexistent et que Node.js est assez récent. - Affiche le plan.
- Lance
npm install -g --allow-.scripts= @oar- sh/ oar, better- sqlite3, koffi @oar- sh/ oar - Lance
oar setup. Dans un terminal, il demande s’il faut créer un nouveau token d’auth, l’accès (cette machine uniquement, ou LAN), le port et, Ajouté en 0.9.15 comment le relais démarre : à l’ouverture de session, au démarrage avant que quiconque ne se connecte (une invite administrateur), ou pas du tout. Il écrit ensuite la config et affiche l’URL du relais.
Lancez ensuite oar start pour démarrer le relais ; le démarrage automatique
choisi le démarre à la prochaine ouverture de session ou au prochain démarrage.
oar autostart change le mode plus
tard. La suite se trouve dans
Premier lancement.
| Option | Effet |
|---|---|
$env: |
Installe cette version au lieu de la dernière |
$env: |
Installe depuis le canal beta au lieu du canal stable |
$env: |
Affiche le plan et n’installe rien |
Définissez la variable dans la même fenêtre PowerShell avant la commande.
L’installateur Windows n’a pas de OAR_ ; oar setup demande le port, ou
vous lancez oar setup --port <port>.
PowerShell bloque les scripts
L’installateur appelle les shims . de npm et oar, car la stratégie
d’exécution par défaut de Windows PowerShell refuse les .. Si votre
stratégie est Restricted ou All, il vous le signale à la fin. Tapez
oar. au lieu de oar, ou autorisez une fois les scripts locaux :
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
Si l’installation réussit mais que oar est introuvable, ouvrez un nouveau
terminal, puis lancez oar..
npm #
npm install -g --allow-scripts=@oar-sh/oar,better-sqlite3,koffi @oar-sh/oar
oar setup
npm 12 ne lance aucun script d’installation qu’on ne lui a pas dit d’autoriser.
Deux des dépendances d’OAR (better-sqlite3, koffi) téléchargent leur binaire
natif dans l’un de ces scripts : sans eux, l’installation réussit sous npm 12 et
le relais échoue ensuite au démarrage.
Ajouté en 0.9.14 Celui d’OAR (@oar-) copie les données qu’une version
antérieure gardait dans le paquet avant que npm ne les supprime ; voir
Notes de mise à niveau pour 0.9.14. npm 10 et 11
acceptent le flag et n’en ont pas besoin. Les installateurs, oar update et le
bouton Update (Mettre à jour) le passent d’eux-mêmes.
N’installez ni ne mettez jamais à jour avec --ignore-scripts
--ignore- saute tous les scripts d’installation : les modules natifs,
si bien que le relais ne peut pas démarrer, et la copie des données d’une
version antérieure.
oar setup crée la config et affiche l’URL du relais, mais ne démarre pas le
relais sauf si vous passez --start. Utilisez ensuite oar start. Le dossier
global de npm doit être accessible en écriture et son dossier bin doit être
dans votre PATH ; npm prefix -g indique où il se trouve. S’il exige root,
n’utilisez pas sudo : lancez plutôt l’installateur sous macOS ou Linux. Pour
mettre à jour plus tard, lancez oar update.
Depuis un checkout 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
Un checkout diffère d’une installation globale sur trois points :
- L’état vit dans le dépôt :
server/,config. json server/,data/ server/etuploads/ server/. Une installation globale garde son état danslogs/ ~/.(voir Où OAR garde ses fichiers et Fichiers et dossiers).oar - Il ne se met jamais à jour tout seul. Mettez à jour avec
git pull,npm install, puis redémarrez le relais avec 🌄 Restart web relay (Redémarrer le relais web) dans le menu⋯d’une conversation.oar updateest destiné aux installations globales. oar start,oar stopetoar restartsont réservés aux installations globales. Dans un checkout,npm startfait tourner le relais au premier plan.
node server/ remplace la config le temps
d’un lancement, sans l’enregistrer.
Par plateforme #
| macOS | Linux | Windows | WSL | |
|---|---|---|---|---|
| Installateur | curl -fs |
le même | irm oar. |
celui de Linux, dans la distribution |
| Télécharge Node.js | oui | oui | non, installez-le d’abord | oui |
| Démarre le relais | en arrière-plan | comme service utilisateur systemd s’il y a une session utilisateur, sinon en arrière-plan | non, lancez oar start |
comme service systemd si systemd est activé, sinon en arrière-plan |
| Démarrage à la connexion | pas encore | oar service install |
oar autostart signin ou boot |
avec systemd uniquement |
| Dossier d’état | ~/. |
~/. |
%APPDATA%\ |
~/. dans la distribution |
| tmux pour les workers de session | facultatif | facultatif | non utilisé | facultatif |
Après un redémarrage, oar start démarre un relais qui tourne en arrière-plan.
WSL #
Lancez l’installateur Linux dans la distribution, pas sous Windows. Avec le
réseau par défaut de WSL, un port peut être libre dans la distribution alors
qu’un programme Windows écoute dessus, et localhost:<port> dans un navigateur
Windows atteint alors ce programme. Une nouvelle config prend donc le premier
port libre des deux côtés, et oar setup refuse un port que Windows occupe.
oar status, oar start et oar doctor avertissent quand Windows occupe le
port du relais. Pour corriger, choisissez un autre port :
oar setup --port 3400
Une adresse LAN dans WSL est interne à WSL. Pour l’accès depuis un téléphone, utilisez un tunnel ou le réseau en miroir de WSL.
Désinstaller OAR #
Ajouté en 0.9.15 oar uninstall retire OAR de la machine et conserve vos données :
oar uninstall
Il arrête le relais (en attendant les turns en cours), supprime les entrées de
démarrage automatique générées par OAR (l’unité systemd, ou l’entrée
d’ouverture de session Windows et la tâche de démarrage, avec une invite
administrateur pour la tâche de démarrage) et le wrapper d’extension Copilot
écrit par OAR, puis fait supprimer le paquet par npm une fois la commande
terminée. Les entrées que vous avez créées ou modifiées à la main restent et
sont nommées. Votre config, votre base de données, vos fichiers envoyés et vos
journaux restent dans le dossier d’état, et la commande indique où ; une
installation ultérieure les reprend. oar uninstall
donne les détails et chaque message.
Pour supprimer aussi les données :
oar uninstall --purge
Il supprime le dossier d’état après que vous avez tapé delete, et demande
séparément avant de supprimer un dossier de données situé en dehors, un dossier
dans un checkout git, ou rescued-. Il refuse une racine de
lecteur, votre dossier personnel, un dossier système et tout dossier qui ne
contient ni la config ni la base de données d’OAR. Cela supprime vos
conversations.
oar uninstall n’annule pas ce que l’installateur macOS et Linux a ajouté hors
du paquet :
- le script
oardans~/., quand l’installateur l’y a placé (ses deuxième et troisième cas) ;local/ bin - les deux lignes qu’il a ajoutées au fichier de démarrage de votre shell, le
cas échéant (le commentaire
# added by the OAR installeret la ligneexport PATHen dessous) ; ~/., le Node.js propre à OAR, s’il est là. Il se trouve dans le dossier d’état, il reste donc sansoar/ runtime --purge.
Avant 0.9.15, ou quand oar ne se lance plus, retirez les éléments à la main :
arrêtez le relais avec oar stop et lancez oar service remove
là où un service ou un démarrage automatique Windows est en place ; supprimez le
paquet avec npm uninstall -g @oar-, ou, après les deux autres cas de
l’installateur, supprimez ~/. ; puis les éléments ci-dessus, et
~/. ou %APPDATA%\ seulement si vous voulez effacer vos données.
Où OAR garde ses fichiers #
Une installation globale garde son état dans ~/. (%APPDATA%\ sous
Windows ; OAR_ le déplace) :
config.json data/, avec la base de données et les fichiers envoyéslogs/, avecserver.etlog server-quanderr. log oara démarré le relais, et unworker-<session>.pour chaque worker de session Nodelog
Mettre à jour le paquet avec npm n’y touche jamais. L’installateur macOS et
Linux peut y ajouter deux dossiers qui ne sont pas de l’état : npm/ (le
paquet, quand le dossier global de npm n’était pas accessible en écriture) et
runtime/ (le Node.js propre à OAR). oar doctor affiche les chemins
utilisés.
Ce que vous avez ensuite #
- La commande
oar. Dans un terminal,oarseul ouvre un menu avec l’état du relais et les autres commandes.oar setupmodifie les réglages (accès pour d’autres appareils, port, token), etoar urlréaffiche l’URL du relais. - Une config avec un nouveau token d’auth. Avec l’accès par défaut, le relais
n’est joignable que depuis cette machine, à
http://ou au port libre suivant.localhost: 3333/ - Sous macOS et Linux : un relais en cours d’exécution. Sous Windows et après une
installation npm manuelle : un relais que vous démarrez avec
oar start.
Vérifiez ce qui est installé :
oar --version
oar doctor
oar doctor affiche la version, Node.js, le mode d’installation, le dossier d’état, le
chemin de la config, le port, si un token est défini, le chemin et la taille de
la base de données, et quelles CLI de fournisseur répondent. Il ne change rien.
Dépannage #
Pour les problèmes après l’installation, voir Dépannage.
| Symptôme | Que faire |
|---|---|
npm install -g @oar- échoue avec EACCES |
Le dossier global de npm exige root, comme avec un Node.js de distribution ou NodeSource. N’utilisez pas sudo. Lancez l’installateur macOS et Linux, qui installe plutôt dans ~/. |
| L’installateur Windows dit que votre Node.js est trop ancien | OAR a besoin de 22.13 ou plus récent. Installez un Node.js actuel depuis nodejs.org et relancez l’installateur. (L’installateur macOS et Linux télécharge plutôt son propre Node.js et indique pourquoi dans son plan) |
Node. sous Windows |
Installez Node.js 22.13 ou plus récent depuis nodejs.org, ouvrez un nouveau terminal et relancez l’installateur |
oar: command not found après l’installateur |
Ouvrez un nouveau terminal, ou lancez la ligne export PATH=... que l’installateur a affichée. Sous Windows, ouvrez un nouveau terminal, puis lancez oar. |
oar est bloqué dans PowerShell |
Tapez oar., ou lancez une fois Set- |
| L’installation échoue avec des erreurs node-gyp ou prebuild | better- n’a pas de binaire précompilé pour votre plateforme. Installez une chaîne de compilation C/C++ et Python, puis réessayez |
Le relais ne démarre pas après une installation avec npm 12, avec une erreur better- dans server- |
npm 12 a sauté les scripts d’installation des dépendances natives d’OAR. Réinstallez avec npm install -g --allow- |
L’installateur dit no terminal to ask on |
Ajoutez --yes : curl -fs |
L’installateur dit refusing to run as root |
Relancez-le sous votre propre utilisateur, sans sudo |
| Pas de téléchargement Node.js pour votre système (musl, autre processeur) | Installez vous-même Node.js 22.13 ou plus récent, puis relancez l’installateur |
| WSL : le navigateur Windows affiche une autre page ou refuse le token | Windows occupe le port. Lancez oar setup --port <port> avec un autre port |