Compare commits
2 Commits
v0.14.0
...
bf871852b8
| Author | SHA1 | Date | |
|---|---|---|---|
| bf871852b8 | |||
| 78e735c959 |
@@ -1,7 +1,10 @@
|
|||||||
# Copie en .env sur le serveur (jamais commite).
|
# Copie en .env sur le serveur (jamais commite).
|
||||||
|
|
||||||
# Registre et tag des images core / brain a spawner par session.
|
# Registre, namespace et tag des images core / brain a spawner par session.
|
||||||
REGISTRY=git.igmlcreation.fr
|
# Doit pointer sur le registre ou la CI publie reellement (ghcr.io).
|
||||||
|
# Le slash final de IMAGE_NAMESPACE est important : image = REGISTRY/NAMESPACEcore:TAG
|
||||||
|
REGISTRY=ghcr.io
|
||||||
|
IMAGE_NAMESPACE=igmlcreation/loremind-
|
||||||
TAG=latest
|
TAG=latest
|
||||||
|
|
||||||
# Secret partage entre core et brain (genere aleatoirement au build de chaque
|
# Secret partage entre core et brain (genere aleatoirement au build de chaque
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import (
|
|||||||
// Config centralise les parametres lus depuis les variables d'env au boot.
|
// Config centralise les parametres lus depuis les variables d'env au boot.
|
||||||
type Config struct {
|
type Config struct {
|
||||||
Registry string
|
Registry string
|
||||||
|
Namespace string
|
||||||
Tag string
|
Tag string
|
||||||
MaxSessions int
|
MaxSessions int
|
||||||
SessionTTL time.Duration
|
SessionTTL time.Duration
|
||||||
@@ -27,7 +28,12 @@ type Config struct {
|
|||||||
|
|
||||||
func loadConfig() *Config {
|
func loadConfig() *Config {
|
||||||
return &Config{
|
return &Config{
|
||||||
Registry: envStr("REGISTRY", "git.igmlcreation.fr"),
|
// Aligne sur la nouvelle convention de publication des images
|
||||||
|
// (ghcr.io/igmlcreation/loremind-{core,brain}). L'ancien registre Gitea
|
||||||
|
// (git.igmlcreation.fr/ietm64/*) n'est plus republie : il restait gele
|
||||||
|
// sur une vieille version. Le slash final de Namespace est volontaire.
|
||||||
|
Registry: envStr("REGISTRY", "ghcr.io"),
|
||||||
|
Namespace: envStr("IMAGE_NAMESPACE", "igmlcreation/loremind-"),
|
||||||
Tag: envStr("TAG", "latest"),
|
Tag: envStr("TAG", "latest"),
|
||||||
MaxSessions: envInt("MAX_SESSIONS", 10),
|
MaxSessions: envInt("MAX_SESSIONS", 10),
|
||||||
SessionTTL: time.Duration(envInt("SESSION_TTL_MINUTES", 20)) * time.Minute,
|
SessionTTL: time.Duration(envInt("SESSION_TTL_MINUTES", 20)) * time.Minute,
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ func (d *DockerClient) SpawnTrio(ctx context.Context, sessionID string, cfg *Con
|
|||||||
|
|
||||||
if err := d.runContainer(ctx, runSpec{
|
if err := d.runContainer(ctx, runSpec{
|
||||||
Name: brainName,
|
Name: brainName,
|
||||||
Image: cfg.Registry + "/ietm64/brain:" + cfg.Tag,
|
Image: cfg.Registry + "/" + cfg.Namespace + "brain:" + cfg.Tag,
|
||||||
Env: []string{
|
Env: []string{
|
||||||
"INTERNAL_SHARED_SECRET=" + brainSecret,
|
"INTERNAL_SHARED_SECRET=" + brainSecret,
|
||||||
// Pas de provider LLM configure en demo : les features IA echoueront
|
// Pas de provider LLM configure en demo : les features IA echoueront
|
||||||
@@ -129,7 +129,7 @@ func (d *DockerClient) SpawnTrio(ctx context.Context, sessionID string, cfg *Con
|
|||||||
|
|
||||||
if err := d.runContainer(ctx, runSpec{
|
if err := d.runContainer(ctx, runSpec{
|
||||||
Name: coreName,
|
Name: coreName,
|
||||||
Image: cfg.Registry + "/ietm64/core:" + cfg.Tag,
|
Image: cfg.Registry + "/" + cfg.Namespace + "core:" + cfg.Tag,
|
||||||
Env: []string{
|
Env: []string{
|
||||||
"SPRING_DATASOURCE_URL=jdbc:postgresql://" + pgName + ":5432/loremind",
|
"SPRING_DATASOURCE_URL=jdbc:postgresql://" + pgName + ":5432/loremind",
|
||||||
"SPRING_DATASOURCE_USERNAME=loremind",
|
"SPRING_DATASOURCE_USERNAME=loremind",
|
||||||
|
|||||||
@@ -252,7 +252,11 @@ services:
|
|||||||
# API HTTP pour declenchement manuel via le bouton UI (Core -> Watchtower).
|
# API HTTP pour declenchement manuel via le bouton UI (Core -> Watchtower).
|
||||||
WATCHTOWER_HTTP_API_UPDATE: "true"
|
WATCHTOWER_HTTP_API_UPDATE: "true"
|
||||||
WATCHTOWER_HTTP_API_PERIODIC_POLLS: "true"
|
WATCHTOWER_HTTP_API_PERIODIC_POLLS: "true"
|
||||||
WATCHTOWER_HTTP_API_TOKEN: "${WATCHTOWER_TOKEN:?set WATCHTOWER_TOKEN in .env (re-run installer)}"
|
# Pas de ":?" ici : Compose interpole TOUT le fichier avant de filtrer
|
||||||
|
# par profile, donc un ":?" planterait le "up" meme quand autoupdate est
|
||||||
|
# inactif. L'installeur genere toujours WATCHTOWER_TOKEN ; defaut vide
|
||||||
|
# pour ne rien casser sur les deploiements sans autoupdate.
|
||||||
|
WATCHTOWER_HTTP_API_TOKEN: "${WATCHTOWER_TOKEN:-}"
|
||||||
WATCHTOWER_TIMEOUT: 60s
|
WATCHTOWER_TIMEOUT: 60s
|
||||||
WATCHTOWER_NOTIFICATIONS_LEVEL: info
|
WATCHTOWER_NOTIFICATIONS_LEVEL: info
|
||||||
TZ: ${TZ:-Europe/Paris}
|
TZ: ${TZ:-Europe/Paris}
|
||||||
|
|||||||
Reference in New Issue
Block a user