103 lines
4.3 KiB
YAML
103 lines
4.3 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 par la migration 1756000000001-BootstrapAdminFromEnv, qui remplace le
|
|
# compte de demonstration admin@xpeditis.com / Password123!.
|
|
#
|
|
# Renseigne SEUL (sans BOOTSTRAP_ADMIN_PASSWORD_HASH dans le Secret), il cree
|
|
# un compte ADMIN actif SANS mot de passe utilisable : vous definissez le
|
|
# votre via « mot de passe oublie ». Aucun secret n'existe alors nulle part.
|
|
#
|
|
# La migration ne fait rien s'il existe deja un administrateur actif : elle ne
|
|
# peut donc pas en creer un second lors d'un deploiement ulterieur.
|
|
#
|
|
# Cette adresse doit etre RELEVABLE : c'est par elle que passe le lien de
|
|
# definition du mot de passe.
|
|
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"
|