diff --git a/ui/index.html b/ui/index.html index 2c04d25..7fbe155 100644 --- a/ui/index.html +++ b/ui/index.html @@ -331,9 +331,19 @@ button:disabled{opacity:.5;cursor:not-allowed}
Accès OpenAI
Endpoint compatible OpenAI?Branche n'importe quel client compatible OpenAI (OpenCode, Continue, Cursor…) sur cette URL. Modèle : jean. Si une clé est définie, le client doit envoyer Authorization: Bearer <clé>.
-
- - + +
+
🏠 local (réseau)
+
+ + +
modèle : jean
Clé API?Protège l'endpoint des complétions (llama-server). Indispensable avant d'exposer le serveur sur internet. Modifier la clé redémarre le service.
@@ -762,6 +772,14 @@ function renderApiKey(d){ // l'accès OpenAI reste TOUJOURS l'adresse locale de la machine. const host = d.host || location.hostname; document.getElementById('oai-url').value = 'http://'+host+':'+d.port+'/v1'; + // Endpoint PUBLIC (ajean.link) : affiché seulement si l'accès public est activé. + const pubWrap = document.getElementById('oai-public-wrap'); + if(d.oai_public && d.machine){ + document.getElementById('oai-public-url').value = 'https://'+d.machine+'.oai.ajean.link/v1'; + pubWrap.style.display = ''; + } else { + pubWrap.style.display = 'none'; + } const inp=document.getElementById('oai-key'); if(!d.set){ inp.value='(aucune clé — serveur ouvert)'; inp.style.opacity=.6; } else { inp.style.opacity=1; inp.value = OAI_REVEAL ? OAI_KEY : d.masked; } diff --git a/web.go b/web.go index eefe73a..41daa65 100644 --- a/web.go +++ b/web.go @@ -548,6 +548,10 @@ func handleAPIKey(w http.ResponseWriter, r *http.Request) { "masked": maskAPIKey(k), "port": LLMPort(), "host": localIP(), + // Accès OpenAI PUBLIC via ajean.link (passthrough SNI, VPS aveugle) : si + // activé, l'URL publique est https://.oai.ajean.link/v1. + "oai_public": os.Getenv("JEAN_LINK_ALLOW_OAI") == "1", + "machine": machineID(), }) }