xpeditis2.0/infra/prod/k8s/base/02-configmap-backend.yaml
David 10b69f3b2b
All checks were successful
Dev CI / Backend — Lint (push) Successful in 10m32s
Dev CI / Frontend — Lint & Type-check (push) Successful in 11m20s
Dev CI / Backend — Unit Tests (push) Successful in 10m17s
Dev CI / Frontend — Unit Tests (push) Successful in 10m45s
Dev CI / Notify Failure (push) Has been skipped
CD Preprod / Backend — Lint (push) Successful in 10m24s
CD Preprod / Frontend — Lint & Type-check (push) Successful in 11m18s
CD Preprod / Backend — Unit Tests (push) Successful in 10m16s
CD Preprod / Frontend — Unit Tests (push) Successful in 10m45s
CD Preprod / Backend — Integration Tests (push) Successful in 9m56s
CD Preprod / Build Frontend (push) Successful in 56s
CD Preprod / Build Log Exporter (push) Successful in 32s
CD Preprod / Build Backend (push) Successful in 6m48s
CD Preprod / Deploy to Preprod (push) Successful in 23s
CD Preprod / Notify Failure (push) Has been skipped
CD Preprod / Notify Success (push) Successful in 2s
fix admin monter
2026-09-15 15:21:05 +02:00

102 lines
4.4 KiB
YAML

# =============================================================================
# Configuration NON SECRETE du backend
# =============================================================================
# Seules figurent ici les variables reellement lues par le code
# (verifie dans app.module.ts, security.config.ts et les adaptateurs).
# Les identifiants et cles vivent dans le Secret xpeditis-backend-secrets.
apiVersion: v1
kind: ConfigMap
metadata:
name: xpeditis-backend-config
namespace: xpeditis-prod
labels:
app.kubernetes.io/name: xpeditis-backend
app.kubernetes.io/part-of: xpeditis
data:
NODE_ENV: "production"
# Lu par les migrations (deployment-environment.ts) : bloque les comptes de
# test et neutralise ceux qui accepteraient encore leur mot de passe public.
APP_ENV: "production"
PORT: "4000"
API_PREFIX: "api/v1"
# Force la sortie pino en JSON : c'est ce que Promtail sait decouper en
# champs (level, context, reqId) pour Loki.
LOG_FORMAT: "json"
# --- URLs publiques --------------------------------------------------------
APP_URL: "https://app.xpeditis.com"
FRONTEND_URL: "https://app.xpeditis.com"
BACKEND_URL: "https://api.xpeditis.com"
# Liste blanche CORS. `credentials: true` interdit le joker `*` : chaque
# origine autorisee doit etre enumeree (security.config.ts).
CORS_ORIGIN: "https://app.xpeditis.com,https://www.xpeditis.com,https://xpeditis.com"
# --- Cookies d'authentification -------------------------------------------
# Le point initial rend le cookie valide pour tous les sous-domaines : l'API
# (api.xpeditis.com) le pose, le middleware Next.js (app.xpeditis.com) le lit.
# Sans cela, la connexion reussit mais l'utilisateur est renvoye sur /login.
COOKIE_DOMAIN: ".xpeditis.com"
# app et api partagent le meme site : 'lax' suffit et reste le plus sur.
# Ne passer a 'none' que si le front devient reellement cross-site (et 'none'
# impose Secure).
COOKIE_SAMESITE: "lax"
# --- PostgreSQL (db-01, reseau prive) --------------------------------------
DATABASE_HOST: "10.10.1.20"
DATABASE_PORT: "5432"
DATABASE_NAME: "xpeditis_prod"
# pg_hba n'accepte que des lignes `hostssl` : sans cette valeur a "true",
# le backend ne peut tout simplement pas se connecter.
DATABASE_SSL: "true"
DATABASE_LOGGING: "false"
# --- Redis (db-01, reseau prive) -------------------------------------------
REDIS_HOST: "10.10.1.20"
REDIS_PORT: "6379"
REDIS_DB: "0"
# --- JWT -------------------------------------------------------------------
JWT_ACCESS_EXPIRATION: "15m"
JWT_REFRESH_EXPIRATION: "7d"
# --- SMTP (Brevo) ----------------------------------------------------------
SMTP_HOST: "smtp-relay.brevo.com"
SMTP_PORT: "587"
SMTP_SECURE: "false"
SMTP_FROM: "noreply@xpeditis.com"
# --- Stockage objet (Hetzner Object Storage, compatible S3) ----------------
# Aucun changement de code : le SDK AWS parle a Hetzner via AWS_S3_ENDPOINT.
AWS_REGION: "fsn1"
AWS_S3_ENDPOINT: "https://fsn1.your-objectstorage.com"
AWS_S3_BUCKET: "xpeditis-prod-documents"
# --- Collecteur de logs applicatifs ---------------------------------------
LOG_EXPORTER_URL: "http://xpeditis-log-exporter:3200"
# --- Premier administrateur ------------------------------------------------
# Lu a CHAQUE demarrage des pods par AdminBootstrapService (et, sur une base
# neuve, par la migration 1756000000001-BootstrapAdminFromEnv). Le compte est
# garanti ADMIN et actif, et cree s'il n'existe pas ; les replicas qui
# demarrent ensemble sont serialises par un verrou PostgreSQL.
#
# Mot de passe : BOOTSTRAP_ADMIN_PASSWORD_HASH dans le Secret (recommande au
# premier deploiement). Sans hash, le compte n'a PAS de mot de passe
# utilisable : « mot de passe oublie » (SMTP requis) ou, sans SMTP :
# kubectl -n xpeditis-prod exec -it deploy/xpeditis-backend -- node admin-password.js ops@xpeditis.com
#
# Cette adresse doit etre RELEVABLE.
BOOTSTRAP_ADMIN_EMAIL: "ops@xpeditis.com"
BOOTSTRAP_ADMIN_FIRST_NAME: "Admin"
BOOTSTRAP_ADMIN_LAST_NAME: "Xpeditis"
# Organisation de rattachement (users.organization_id est NOT NULL).
# Creee si elle n'existe pas ; a completer ensuite dans l'interface.
BOOTSTRAP_ADMIN_ORG_NAME: "Xpeditis"
BOOTSTRAP_ADMIN_ORG_STREET: "A completer"
BOOTSTRAP_ADMIN_ORG_CITY: "A completer"
BOOTSTRAP_ADMIN_ORG_POSTAL_CODE: "00000"
BOOTSTRAP_ADMIN_ORG_COUNTRY: "FR"