Skip to main content

C_ installation de Claude Code dans le VPS juxjux

Installation de Claude Code dans le VPS juxjux

Objectif

Pouvoir intervenir sur les containers du VPS (redémarrage, diagnostic, logs, fix rapide) depuis un mobile Android en mobilité, via SSH + tmux + Claude Code CLI directement installé sur le VPS.

Prérequis constatés (2026-07-21)

  • Node.js : v20.20.2 déjà présent sur le VPS (Debian) — aucune installation nécessaire
  • npm : v10.8.2
  • tmux : absent, installé via sudo apt-get install -y tmux (v3.3a-3)

Installation de Claude Code CLI

Installation en local user (pas de sudo npm install -g) pour éviter de faire tourner le CLI en root et éviter les conflits de permissions npm globales :

mkdir -p ~/.npm-global
npm config set prefix '~/.npm-global'
npm install -g @anthropic-ai/claude-code

Ajout du PATH dans ~/.bashrc :

echo 'export PATH=~/.npm-global/bin:$PATH' >> ~/.bashrc

Version installée : 2.1.197

Authentification

Choix retenu : login OAuth avec le compte claude.ai (Julien, plan Claude Pro) — pas de clé API Anthropic séparée, donc pas de facturation à l'usage additionnelle.

Procédure suivie (le VPS est headless, pas de navigateur local) :

  1. Lancer claude dans une session tmux dédiée (tmux new-session -d -s claude) pour que la session survive à une déconnexion SSH
  2. Choisir "Claude account with subscription" au login
  3. Le CLI affiche une URL https://claude.com/cai/oauth/authorize?... — impossible à ouvrir depuis le VPS, donc récupérée via tmux capture-pane et ouverte manuellement sur un navigateur (PC ou mobile)
  4. Après connexion sur claude.ai, un code xxxx#yyyy est retourné — collé dans le prompt Paste code here if prompted > via tmux send-keys
  5. Confirmation : Logged in as julien.bertrand@live.fr

Les credentials sont persistés dans ~/.claude/.credentials.json (permissions 600, debian:debian) — la connexion reste valide pour les sessions futures, pas besoin de se ré-authentifier à chaque lancement.

Usage depuis Android (Termux)

  1. Installer Termux depuis F-Droid (pas le Play Store, version obsolète)
  2. Se connecter en SSH au VPS :
    ssh debian@51.77.141.54
    
  3. Rattacher ou créer la session tmux :
    tmux attach -t claude   # si la session existe déjà
    tmux new -s claude      # sinon
    
  4. Lancer claude (ou il tourne déjà si la session persiste)
  5. Détacher sans tuer la session : Ctrl+b puis d — permet de couper la connexion mobile sans interrompre Claude Code

Sécurité

  • Le VPS a déjà subi un incident de sécurité (CVE rclone RC, 2026-06-09 — voir page correspondante) : rester vigilant sur toute nouvelle surface d'exposition
  • Claude Code tourne en utilisateur debian (non-root), scope de travail /home/debian accepté comme dossier de confiance
  • Authentification liée au compte personnel Julien (Claude Pro) — pas de clé API partagée à protéger séparément
  • Accès à la session Claude Code = accès SSH au VPS (mot de passe debian) — aucune surface réseau supplémentaire ouverte (pas de port exposé, tout passe par SSH existant)

Répertoire de lancement recommandé

Le VPS a déjà en local le CLAUDE.md partagé, synchronisé via Syncthing :

~/Documents/Jux_univers/Claude-pcelio+jux/CLAUDE.md

C'est le même fichier que celui utilisé sur le PC Windows (D:\Syncthing\Jux_univers\Claude-pcelio+jux\CLAUDE.md) et sur Ubuntu. Il fait partie du dossier Syncthing afltj-njyuy ("Tablette VPS Syncthing"), local path ~/Documents.

Lancer claude depuis ce dossier plutôt que /home/debian : le CLI charge automatiquement ce CLAUDE.md et récupère tout le contexte partagé (MCPs, infra, conventions) sans rien reconfigurer.

cd ~/Documents/Jux_univers/Claude-pcelio+jux/
claude

Piège constaté — Syncthing VPS silencieusement déconnecté (2026-07-21)

En vérifiant le CLAUDE.md sur le VPS, le fichier était resté figé au 24 juin alors que la version de référence (PC Windows) avait été mise à jour bien plus récemment (ex. section Inkscape du 21/07).

Diagnostic via le MCP Syncthing :

  • get_folder_status sur le dossier afltj-njyuy renvoyait state: idle, needBytes: 0, errors: 0 — en apparence tout va bien
  • Mais get_connections / get_devices montrait numConnections: 0 sur tous les appareils — le VPS n'avait aucune connexion active vers ses pairs, y compris PC-Elio+Jux

Autrement dit : Syncthing sur le VPS ne remonte aucune erreur quand il est déconnecté de tout le monde — il affiche juste l'état "idle" du dernier sync connu, ce qui peut faire croire à tort que tout est synchronisé.

Résolution : dès que Syncthing a été relancé côté PC Windows, la connexion TCP vers le VPS (device I4M5WXU) s'est rétablie en quelques secondes, et le CLAUDE.md s'est mis à jour immédiatement (nouveau hash, date du jour).

Point de vigilance pour la suite : si le CLAUDE.md sur le VPS semble périmé, ne pas se fier à get_folder_status seul (peut afficher "idle" à tort) — vérifier get_connections pour confirmer que le VPS a bien une connexion active vers au moins un appareil source avant de creuser plus loin.

Points d'attention pour la suite

  • Penser à /init pour générer un CLAUDE.md propre au contexte VPS si l'usage se confirme
  • Vérifier que la session tmux ne meurt pas silencieusement (pas de Restart=always type systemd ici, contrairement aux services rclone)