Skip to main content
Glama
config.ts2.9 kB
// src/config.ts (Simplifié) import path from 'path'; import { fileURLToPath } from 'url'; import fs from 'fs'; import dotenv from 'dotenv'; import { z } from 'zod'; import { DEFAULT_HEALTH_CHECK_OPTIONS } from './utils/constants.js'; const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); // Charger les variables d'environnement depuis le fichier .env à la racine du projet, sauf en mode test if (process.env.NODE_ENV !== 'test') { // Essayer d'abord le répertoire du projet, puis le répertoire de l'utilisateur const projectEnvPath = path.resolve(__dirname, '..', '.env'); const userEnvPath = path.resolve(process.cwd(), '.env'); // Charger depuis le répertoire du projet si disponible, sinon depuis le répertoire utilisateur if (fs.existsSync(projectEnvPath)) { dotenv.config({ path: projectEnvPath }); } else if (fs.existsSync(userEnvPath)) { dotenv.config({ path: userEnvPath }); } else { // Pas de fichier .env trouvé, utiliser les valeurs par défaut console.log('ℹ️ Aucun fichier .env trouvé, utilisation des valeurs par défaut.'); } } const envSchema = z.object({ NODE_ENV: z.enum(['development', 'production', 'test']).default('development'), PORT: z.coerce.number().int().positive().default(8081), LOG_LEVEL: z.enum(['fatal', 'error', 'warn', 'info', 'debug', 'trace']).default('info'), HTTP_STREAM_ENDPOINT: z.string().startsWith('/').default('/mcp'), AUTH_TOKEN: z.string().optional().default('browser-manager-mcp-server-default-token-2024'), REQUIRE_AUTH: z.coerce.boolean().default(false), HEALTH_CHECK_PATH: z .string() .startsWith('/') .default(DEFAULT_HEALTH_CHECK_OPTIONS.path) .describe("Chemin pour le point de terminaison de vérification de l'état."), // Les variables FASTMCP_SOURCE et FASTMCP_REMOTE_VERSION ont été retirées. }); export type Config = z.infer<typeof envSchema>; const parsedEnv = envSchema.safeParse(process.env); if (!parsedEnv.success) { console.error("❌ Variables d'environnement invalides détectées dans .env:"); for (const error of parsedEnv.error.issues) { console.error(` - Champ: ${error.path.join('.') || 'global'}, Problème: ${error.message}`); } console.error("Veuillez corriger les variables d'environnement et redémarrer l'application."); process.exit(1); } export const config = parsedEnv.data; // Vérification de sécurité critique pour AUTH_TOKEN en production if ( config.NODE_ENV === 'production' && (!config.AUTH_TOKEN || config.AUTH_TOKEN === 'browser-manager-mcp-server-default-token-2024' || config.AUTH_TOKEN.length < 16) ) { console.warn( 'ATTENTION : AUTH_TOKEN utilise une valeur par défaut en environnement de PRODUCTION.' ); console.warn( 'Pour une sécurité optimale, définissez un AUTH_TOKEN personnalisé dans votre fichier .env.' ); }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DeamonDev888/Browser-Manager-MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server