Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | 1x | // Configuration d'environnement unique pour développement et production
// Utilise des URLs relatives (/api) qui fonctionnent avec Traefik en local et en production
import { Environment } from './environment.d';
export const environment: Environment = {
production: false, // Mode développement (logs visibles)
enableDebugLogs: true, // ✅ Logs de debug activés
enableConsoleLogs: true, // ✅ Console logs activés
// Configuration MySQL Database (local)
database: {
host: 'localhost',
port: 3306,
name: 'faildaily_bdd',
charset: 'utf8mb4',
},
// Configuration Firebase (notifications push uniquement)
firebase: {
apiKey: 'AIzaSyB_T4whbgp5_AgGX2m_SjJPh7Ui2e1T5S0',
authDomain: 'faildaily-8efdd.firebaseapp.com',
projectId: 'faildaily-8efdd',
storageBucket: 'faildaily-8efdd.firebasestorage.app',
messagingSenderId: '903740944900',
appId: '1:903740944900:web:8fad55851ecbdddbb7fb51',
measurementId: 'G-3MW14JBHJB',
},
// APIs backend MySQL et externes
api: {
baseUrl: '/api', // URL relative pour Traefik (local et production)
moderationUrl: 'https://api.openai.com/v1',
moderationKey: '', // À remplir avec votre clé OpenAI
uploadMaxSize: 3 * 1024 * 1024, // 3MB max en production
imageQuality: 75, // Qualité optimisée pour la production
timeout: 30000, // 30 secondes timeout
retryAttempts: 3, // Retry API calls
},
// Configuration authentification JWT
auth: {
tokenKey: 'auth_token',
userKey: 'current_user',
expiresIn: '7d', // 7 jours en production
refreshThreshold: 3600, // Refresh 1 heure avant expiration
},
// Configuration du storage
storage: {
baseUrl: '/uploads', // Utilise le même domaine que le frontend
uploadsPath: '',
maxFileSize: 3 * 1024 * 1024, // 3MB en production
allowedImageTypes: ['image/jpeg', 'image/png', 'image/webp'],
compressionQuality: 0.75, // Compression plus agressive en prod
},
// Configuration des notifications
notifications: {
vapidKey:
'BPZynayDkO_mZlZegESabpVK43c7cpJDouoY4shF0f212KfHplFsD7T50zj_FqJ7q84vv6q8JOzfoVAfTQ2-9mY', // Clé VAPID Firebase
reminderTimes: {
min: 18, // 18h minimum
max: 22, // 22h maximum
default: 19, // 19h par défaut
},
enablePush: true,
enableInApp: true,
debugMode: false, // Debug désactivé en production
retryAttempts: 5,
retryDelay: 5000,
},
// Configuration de l'app
app: {
name: 'FailDaily',
version: '2.0.0-mysql',
maxFailsPerDay: 3, // Limite plus stricte en production
courageHeartCooldown: 5000, // 5 secondes entre réactions
anonymousMode: false, // Mode anonyme désactivé en prod
locationEnabled: true, // Géolocalisation activée en prod
cacheEnabled: true,
offlineMode: true, // Mode hors ligne activé en prod
},
// Configuration des badges et points
badges: {
firstFailPoints: 10,
dailyStreakPoints: 5,
courageHeartPoints: 2,
communityHelpPoints: 15,
maxDailyPoints: 50, // Limite plus stricte en prod
pointsMultiplier: 1.5, // Bonus en production
},
// Configuration MySQL optimisée pour la production
mysql: {
connectionPoolSize: 50, // Pool plus important en prod
queryTimeout: 10000, // Timeout plus court en prod
reconnectAttempts: 5,
enableQueryLogging: false, // Logs désactivés en prod pour performance
},
// Fonctionnalités (optimisées pour la production)
features: {
groupChallenges: false, // Pas encore prêt pour la prod
aiCounselor: false, // En développement
darkModeAuto: true,
hapticFeedback: true,
realTimeUpdates: true,
advancedAnalytics: true,
betaFeatures: false, // Features beta désactivées en prod
},
};
|