mirror of
https://github.com/R0m1k3/Loki.git
synced 2026-10-21 22:18:13 +02:00
Ajoute jean link : acces distant via le relais ajean.link
- nouvelle commande `jean link <token>` (link.go) : connexion sortante WebSocket + yamux vers le relais, sert l'UI web Jean ET l'endpoint compatible OpenAI (/v1) a travers le tunnel, avec injection des cles locales, keepalive et reconnexion automatique. - web.go : extraction de newWebMux() pour reutiliser le routeur HTTP cote `jean link` sans repasser par un ecouteur TCP local. - ui/index.html : base d'URL relative (API_BASE) + script marked relatif. - main.go : cablage de la commande `link` + aide. - README : section acces distant (ajean.link) + commande link. - .gitignore : secrets runtime (.web_key/.link_token/.link_machine). Inclut aussi les evolutions en cours du coeur de jean (llm.go, skills.go, tools.go, chat.go).
This commit is contained in:
1 parent
6ea2e91810
commit
e606206d90
12 files changed
+724
-91
No files matched your search
@@ -23,6 +23,7 @@ Faire tourner llama.cpp comme un vrai service, ça veut dire d'habitude : trouve
|
||||
- **Intégration systemd** — `jean install` écrit l'unité, une règle sudoers `systemctl` sans mot de passe, et les dossiers de données
|
||||
- **Interface web** (`jean web`) — chat, changement de modèle/preset, activation des skills & tools
|
||||
- **Chat terminal** (`jean chat`) — réponses en streaming
|
||||
- **Accès distant** (`jean link`) — connecte ce serveur à [ajean.link](https://ajean.link) par une connexion **sortante** (aucun port à ouvrir, marche même en CGNAT) : retrouve l'UI web et un endpoint **compatible OpenAI** depuis n'importe où
|
||||
- **Presets** (`jean switch`) — garde plusieurs profils `config.env` et bascule entre eux
|
||||
- **Protection par clé API** (`jean set-api-key`) — auth Bearer pour exposer le serveur publiquement ; la clé est stockée à part pour survivre aux changements de preset
|
||||
- **Benchmark** (`jean bench`) — tok/s prefill/decode honnêtes avec un corpus varié
|
||||
@@ -112,9 +113,13 @@ Interaction :
|
||||
chat [system-prompt] chat terminal streamé
|
||||
web [PORT] interface web (défaut :8090)
|
||||
|
||||
Accès distant (ajean.link) :
|
||||
link <token> connecte ce Jean au relais (accès web + API OpenAI depuis partout)
|
||||
link status | logout état du lien / oublier le token
|
||||
|
||||
Outils côté LLM :
|
||||
skills [on|off|list] laisse le modèle lire SKILLS/<nom>/SKILL.md
|
||||
tools [on|off|status] active run_shell (le modèle exécute des commandes shell)
|
||||
machine [on|off|status] active l'accès machine (le modèle dispose d'un shell complet sur le serveur)
|
||||
|
||||
Backend (llama.cpp) :
|
||||
llamacpp install clone + compile llama.cpp (détecte CUDA/ROCm/Metal/CPU), règle BIN
|
||||
@@ -190,6 +195,22 @@ La clé est stockée dans `$JEAN_HOME/.web_key`, distincte de `.api_key` (pilota
|
||||
|
||||
> ⚠️ La clé voyage en clair en HTTP. Pour une exposition publique, place Jean derrière un reverse-proxy HTTPS (Caddy, nginx) ou un tunnel (Tailscale, Cloudflare Tunnel).
|
||||
|
||||
### Accès distant via ajean.link
|
||||
|
||||
Plutôt que d'exposer un port, `jean link` ouvre une connexion **sortante** vers le relais [ajean.link](https://ajean.link) : ton serveur reste injoignable depuis l'extérieur, mais tu y accèdes quand même depuis n'importe où — idéal derrière une box ou en CGNAT.
|
||||
|
||||
```bash
|
||||
jean web # l'UI doit tourner localement
|
||||
jean link <token> # token fourni sur ajean.link
|
||||
```
|
||||
|
||||
Une fois lié, tu retrouves depuis le portail :
|
||||
- l'**interface web** de ton serveur, à distance ;
|
||||
- un **endpoint compatible OpenAI** (`https://ajean.link/oai/<machine>/v1`, clé = ton token) pour brancher n'importe quel outil (OpenCode, etc.) ;
|
||||
- la gestion de **plusieurs serveurs** et d'**agents** depuis un tableau de bord.
|
||||
|
||||
C'est un service optionnel et payant ; tout le reste de Jean est et restera open source et gratuit.
|
||||
|
||||
### Variables d'environnement
|
||||
|
||||
| Variable | Signification | Défaut |
|
||||
|
||||
Reference in new issue
Block a user