[{"data":1,"prerenderedAt":960},["ShallowReactive",2],{"navigation_docs_fr":3,"-fr-dev-reference-technique":160,"-fr-dev-reference-technique-surround":955},[4,25,87,126,141],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":6},"Bien démarrer",false,"\u002Ffr\u002Fgetting-started","fr\u002F1.getting-started",[10,15,20],{"title":11,"path":12,"stem":13,"icon":14},"Introduction","\u002Ffr\u002Fgetting-started\u002Fintroduction","fr\u002F1.getting-started\u002F1.introduction","i-lucide-house",{"title":16,"path":17,"stem":18,"icon":19},"Installation","\u002Ffr\u002Fgetting-started\u002Finstallation","fr\u002F1.getting-started\u002F2.installation","i-lucide-download",{"title":21,"path":22,"stem":23,"icon":24},"Premier démarrage","\u002Ffr\u002Fgetting-started\u002Fpremier-demarrage","fr\u002F1.getting-started\u002F3.premier-demarrage","i-lucide-rocket",{"title":26,"icon":6,"path":27,"stem":28,"children":29,"page":6},"Guide d'utilisation","\u002Ffr\u002Fguide","fr\u002F2.guide",[30,57,62,67,72,77,82],{"title":31,"path":32,"stem":33,"children":34},"Importation de fichiers","\u002Ffr\u002Fguide\u002Fimport","fr\u002F2.guide\u002F1.import\u002Findex",[35,36,41,45,49,53],{"title":31,"path":32,"stem":33},{"title":37,"path":38,"stem":39,"icon":40},"MetaTrader 5","\u002Ffr\u002Fguide\u002Fimport\u002Fmt5","fr\u002F2.guide\u002F1.import\u002F1.mt5","i-lucide-file-spreadsheet",{"title":42,"path":43,"stem":44,"icon":40},"NinjaTrader 8","\u002Ffr\u002Fguide\u002Fimport\u002Fninja-trader","fr\u002F2.guide\u002F1.import\u002F2.ninja-trader",{"title":46,"path":47,"stem":48,"icon":40},"Interactive Brokers","\u002Ffr\u002Fguide\u002Fimport\u002Finteractive-brokers","fr\u002F2.guide\u002F1.import\u002F3.interactive-brokers",{"title":50,"path":51,"stem":52,"icon":40},"Quantower","\u002Ffr\u002Fguide\u002Fimport\u002Fquantower","fr\u002F2.guide\u002F1.import\u002F4.quantower",{"title":54,"path":55,"stem":56,"icon":40},"Standard CSV format","\u002Ffr\u002Fguide\u002Fimport\u002Fstandard-csv","fr\u002F2.guide\u002F1.import\u002F5.standard-csv",{"title":58,"path":59,"stem":60,"icon":61},"Dashboard et métriques","\u002Ffr\u002Fguide\u002Fdashboard","fr\u002F2.guide\u002F2.dashboard","i-lucide-chart-line",{"title":63,"path":64,"stem":65,"icon":66},"Calendrier","\u002Ffr\u002Fguide\u002Fcalendrier","fr\u002F2.guide\u002F3.calendrier","i-lucide-calendar",{"title":68,"path":69,"stem":70,"icon":71},"Vue quotidienne","\u002Ffr\u002Fguide\u002Fdaily-view","fr\u002F2.guide\u002F4.daily-view","i-lucide-calendar-days",{"title":73,"path":74,"stem":75,"icon":76},"Transactions","\u002Ffr\u002Fguide\u002Ftrades","fr\u002F2.guide\u002F5.trades","i-lucide-table",{"title":78,"path":79,"stem":80,"icon":81},"Panneau de notes","\u002Ffr\u002Fguide\u002Fnotes","fr\u002F2.guide\u002F6.notes","i-lucide-pen-tool",{"title":83,"path":84,"stem":85,"icon":86},"Système de tags","\u002Ffr\u002Fguide\u002Ftags","fr\u002F2.guide\u002F7.tags","i-lucide-tag",{"title":88,"icon":6,"path":89,"stem":90,"children":91,"page":6},"Paramètres","\u002Ffr\u002Fparametres","fr\u002F3.parametres",[92,97,102,106,111,116,121],{"title":93,"path":94,"stem":95,"icon":96},"Comptes","\u002Ffr\u002Fparametres\u002Fcomptes","fr\u002F3.parametres\u002F1.comptes","i-lucide-users",{"title":98,"path":99,"stem":100,"icon":101},"Symboles","\u002Ffr\u002Fparametres\u002Fsymboles","fr\u002F3.parametres\u002F2.symboles","i-lucide-chart-candlestick",{"title":103,"path":104,"stem":105,"icon":86},"Tags","\u002Ffr\u002Fparametres\u002Ftags","fr\u002F3.parametres\u002F3.tags",{"title":107,"path":108,"stem":109,"icon":110},"Backup","\u002Ffr\u002Fparametres\u002Fbackup","fr\u002F3.parametres\u002F4.backup","i-lucide-database-backup",{"title":112,"path":113,"stem":114,"icon":115},"Outils","\u002Ffr\u002Fparametres\u002Ftools","fr\u002F3.parametres\u002F5.tools","i-lucide-wrench",{"title":117,"path":118,"stem":119,"icon":120},"Plugins","\u002Ffr\u002Fparametres\u002Fplugins","fr\u002F3.parametres\u002F6.plugins","i-lucide-puzzle",{"title":122,"path":123,"stem":124,"icon":125},"Options","\u002Ffr\u002Fparametres\u002Foptions","fr\u002F3.parametres\u002F7.options","i-lucide-cog",{"title":127,"icon":6,"path":128,"stem":129,"children":130,"page":6},"Configuration avancée","\u002Ffr\u002Favance","fr\u002F4.avance",[131,136],{"title":132,"path":133,"stem":134,"icon":135},"Configuration","\u002Ffr\u002Favance\u002Fconfiguration","fr\u002F4.avance\u002F1.configuration","i-lucide-settings",{"title":137,"path":138,"stem":139,"icon":140},"FAQ","\u002Ffr\u002Favance\u002Ffaq","fr\u002F4.avance\u002F3.faq","i-lucide-circle-help",{"title":142,"icon":143,"path":144,"stem":145,"children":146,"page":6},"Développeur","i-lucide-code","\u002Ffr\u002Fdev","fr\u002F5.dev",[147,152,157],{"title":148,"path":149,"stem":150,"icon":151},"Référence technique","\u002Ffr\u002Fdev\u002Freference-technique","fr\u002F5.dev\u002F1.reference-technique","i-lucide-server",{"title":153,"path":154,"stem":155,"icon":156},"Stockage externe","\u002Ffr\u002Fdev\u002Fstockage-externe","fr\u002F5.dev\u002F2.stockage-externe","i-lucide-hard-drive",{"title":117,"path":158,"stem":159,"icon":120},"\u002Ffr\u002Fdev\u002Fplugins","fr\u002F5.dev\u002F3.plugins",{"id":161,"title":148,"body":162,"description":947,"extension":948,"links":949,"meta":950,"navigation":951,"path":149,"seo":952,"stem":150,"__hash__":954},"docs_fr\u002Ffr\u002F5.dev\u002F1.reference-technique.md",{"type":163,"value":164,"toc":924},"minimark",[165,178,183,201,205,210,244,248,264,267,277,287,291,334,338,347,353,357,373,380,393,397,416,420,424,446,450,490,492,559,562,566,570,594,598,611,613,617,620,624,632,647,659,674,681,751,761,913,917,920],[166,167,168,169,173,174,177],"p",{},"PnlTracker s'appuie sur ",[170,171,172],"strong",{},"PostgreSQL"," pour le stockage des données et sur ",[170,175,176],{},"Docker"," pour la mise en production. Ce guide couvre le développement local et le déploiement en production.",[179,180,182],"h2",{"id":181},"prérequis","Prérequis",[184,185,186,190,193],"ul",{},[187,188,189],"li",{},"Docker et Docker Compose installés",[187,191,192],{},"Node.js ≥ 20 et pnpm",[187,194,195,196,200],{},"Fichier ",[197,198,199],"code",{},".env"," configuré",[179,202,204],{"id":203},"développement-local","Développement local",[206,207,209],"h3",{"id":208},"_1-démarrer-postgresql","1. Démarrer PostgreSQL",[211,212,217],"pre",{"className":213,"code":214,"language":215,"meta":216,"style":216},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","docker compose -f .\u002Fdocker-compose.dev.yml up -d\n","bash","",[197,218,219],{"__ignoreMap":216},[220,221,224,228,232,235,238,241],"span",{"class":222,"line":223},"line",1,[220,225,227],{"class":226},"sBMFI","docker",[220,229,231],{"class":230},"sfazB"," compose",[220,233,234],{"class":230}," -f",[220,236,237],{"class":230}," .\u002Fdocker-compose.dev.yml",[220,239,240],{"class":230}," up",[220,242,243],{"class":230}," -d\n",[206,245,247],{"id":246},"_2-configurer-les-variables-denvironnement","2. Configurer les variables d'environnement",[211,249,251],{"className":213,"code":250,"language":215,"meta":216,"style":216},"cp .env.example .env\n",[197,252,253],{"__ignoreMap":216},[220,254,255,258,261],{"class":222,"line":223},[220,256,257],{"class":226},"cp",[220,259,260],{"class":230}," .env.example",[220,262,263],{"class":230}," .env\n",[166,265,266],{},"Ou via le script fourni :",[211,268,271],{"className":213,"code":269,"filename":270,"language":215,"meta":216,"style":216},".\u002Fenv-create-dev.sh\n","Linux\u002Fmac",[197,272,273],{"__ignoreMap":216},[220,274,275],{"class":222,"line":223},[220,276,269],{"class":226},[211,278,281],{"className":213,"code":279,"filename":280,"language":215,"meta":216,"style":216},".\u002Fenv-create-dev.ps1\n","Windows",[197,282,283],{"__ignoreMap":216},[220,284,285],{"class":222,"line":223},[220,286,279],{"class":226},[206,288,290],{"id":289},"_3-générer-les-clients-prisma","3. Générer les clients Prisma",[211,292,294],{"className":213,"code":293,"language":215,"meta":216,"style":216},"rm -rf generated\npnpm prisma generate --schema=prisma\u002Fauth\u002Fschema.prisma\npnpm prisma generate --schema=prisma\u002Fdata\u002Fschema.prisma\n",[197,295,296,307,322],{"__ignoreMap":216},[220,297,298,301,304],{"class":222,"line":223},[220,299,300],{"class":226},"rm",[220,302,303],{"class":230}," -rf",[220,305,306],{"class":230}," generated\n",[220,308,310,313,316,319],{"class":222,"line":309},2,[220,311,312],{"class":226},"pnpm",[220,314,315],{"class":230}," prisma",[220,317,318],{"class":230}," generate",[220,320,321],{"class":230}," --schema=prisma\u002Fauth\u002Fschema.prisma\n",[220,323,325,327,329,331],{"class":222,"line":324},3,[220,326,312],{"class":226},[220,328,315],{"class":230},[220,330,318],{"class":230},[220,332,333],{"class":230}," --schema=prisma\u002Fdata\u002Fschema.prisma\n",[206,335,337],{"id":336},"_4-initialiser-la-base-de-données","4. Initialiser la base de données",[211,339,341],{"className":213,"code":340,"language":215,"meta":216,"style":216},".\u002Fscripts\u002Freinit.sh\n",[197,342,343],{"__ignoreMap":216},[220,344,345],{"class":222,"line":223},[220,346,340],{"class":226},[348,349,352],"callout",{"icon":350,"color":351},"i-lucide-triangle-alert","orange","Cette commande supprime les données existantes. À n'utiliser que lors de la première installation ou si vous souhaitez repartir de zéro.",[206,354,356],{"id":355},"_5-lancer-lapplication","5. Lancer l'application",[211,358,360],{"className":213,"code":359,"language":215,"meta":216,"style":216},"npm run dev\n",[197,361,362],{"__ignoreMap":216},[220,363,364,367,370],{"class":222,"line":223},[220,365,366],{"class":226},"npm",[220,368,369],{"class":230}," run",[220,371,372],{"class":230}," dev\n",[166,374,375,376,379],{},"L'application est accessible sur ",[197,377,378],{},"http:\u002F\u002Flocalhost:3000",".",[166,381,382,385,386,389,390],{},[170,383,384],{},"Identifiants par défaut :"," ",[197,387,388],{},"admin@mail.fr"," \u002F ",[197,391,392],{},"admin",[206,394,396],{"id":395},"arrêter-la-base-de-données","Arrêter la base de données",[211,398,400],{"className":213,"code":399,"language":215,"meta":216,"style":216},"docker compose -f docker-compose.dev.yml down\n",[197,401,402],{"__ignoreMap":216},[220,403,404,406,408,410,413],{"class":222,"line":223},[220,405,227],{"class":226},[220,407,231],{"class":230},[220,409,234],{"class":230},[220,411,412],{"class":230}," docker-compose.dev.yml",[220,414,415],{"class":230}," down\n",[179,417,419],{"id":418},"commandes-utiles","Commandes utiles",[206,421,423],{"id":422},"prisma","Prisma",[211,425,427],{"className":213,"code":426,"language":215,"meta":216,"style":216},"# Ouvrir Prisma Studio\npnpm prisma studio --schema=prisma\u002Fauth\u002Fschema.prisma\n",[197,428,429,435],{"__ignoreMap":216},[220,430,431],{"class":222,"line":223},[220,432,434],{"class":433},"sHwdD","# Ouvrir Prisma Studio\n",[220,436,437,439,441,444],{"class":222,"line":309},[220,438,312],{"class":226},[220,440,315],{"class":230},[220,442,443],{"class":230}," studio",[220,445,321],{"class":230},[206,447,449],{"id":448},"tests","Tests",[211,451,453],{"className":213,"code":452,"language":215,"meta":216,"style":216},"# Exécuter tous les tests\npnpm test\n\n# Exécuter un fichier spécifique\npnpm test tests\u002Fmt5-parser.test.ts\n",[197,454,455,460,467,473,479],{"__ignoreMap":216},[220,456,457],{"class":222,"line":223},[220,458,459],{"class":433},"# Exécuter tous les tests\n",[220,461,462,464],{"class":222,"line":309},[220,463,312],{"class":226},[220,465,466],{"class":230}," test\n",[220,468,469],{"class":222,"line":324},[220,470,472],{"emptyLinePlaceholder":471},true,"\n",[220,474,476],{"class":222,"line":475},4,[220,477,478],{"class":433},"# Exécuter un fichier spécifique\n",[220,480,482,484,487],{"class":222,"line":481},5,[220,483,312],{"class":226},[220,485,486],{"class":230}," test",[220,488,489],{"class":230}," tests\u002Fmt5-parser.test.ts\n",[206,491,176],{"id":227},[211,493,495],{"className":213,"code":494,"language":215,"meta":216,"style":216},"# Voir les logs\ndocker compose logs -f [service]\n\n# Redémarrer un service\ndocker compose restart [service]\n\n# Nettoyer les volumes inutilisés\ndocker volume prune\n",[197,496,497,502,517,521,526,537,542,548],{"__ignoreMap":216},[220,498,499],{"class":222,"line":223},[220,500,501],{"class":433},"# Voir les logs\n",[220,503,504,506,508,511,513],{"class":222,"line":309},[220,505,227],{"class":226},[220,507,231],{"class":230},[220,509,510],{"class":230}," logs",[220,512,234],{"class":230},[220,514,516],{"class":515},"sTEyZ"," [service]\n",[220,518,519],{"class":222,"line":324},[220,520,472],{"emptyLinePlaceholder":471},[220,522,523],{"class":222,"line":475},[220,524,525],{"class":433},"# Redémarrer un service\n",[220,527,528,530,532,535],{"class":222,"line":481},[220,529,227],{"class":226},[220,531,231],{"class":230},[220,533,534],{"class":230}," restart",[220,536,516],{"class":515},[220,538,540],{"class":222,"line":539},6,[220,541,472],{"emptyLinePlaceholder":471},[220,543,545],{"class":222,"line":544},7,[220,546,547],{"class":433},"# Nettoyer les volumes inutilisés\n",[220,549,551,553,556],{"class":222,"line":550},8,[220,552,227],{"class":226},[220,554,555],{"class":230}," volume",[220,557,558],{"class":230}," prune\n",[560,561],"hr",{},[179,563,565],{"id":564},"sécurité","Sécurité",[206,567,569],{"id":568},"en-production","En production",[184,571,572,579,585,588,591],{},[187,573,574,575,578],{},"Changez ",[197,576,577],{},"POSTGRES_PASSWORD"," par un mot de passe fort.",[187,580,574,581,584],{},[197,582,583],{},"JWT_SECRET"," par une clé aléatoire longue.",[187,586,587],{},"N'exposez pas le port PostgreSQL (5432) publiquement.",[187,589,590],{},"Utilisez HTTPS avec un reverse proxy (Nginx, Caddy, Traefik).",[187,592,593],{},"Limitez les connexions PostgreSQL par IP si possible.",[206,595,597],{"id":596},"en-développement","En développement",[184,599,600,605,608],{},[187,601,602,603,379],{},"Ne jamais commiter le fichier ",[197,604,199],{},[187,606,607],{},"Utilisez des mots de passe différents entre dev et prod.",[187,609,610],{},"N'utilisez pas la même clé JWT entre les environnements.",[560,612],{},[179,614,616],{"id":615},"migrations-de-schéma","Migrations de schéma",[166,618,619],{},"PnlTracker utilise un système de migrations incrémentales pour la base de données multi-tenant (données utilisateurs). Cela permet d'ajouter ou modifier des colonnes sans perdre les données existantes.",[206,621,623],{"id":622},"créer-une-migration","Créer une migration",[625,626,627],"ol",{},[187,628,629],{},[170,630,631],{},"Sauvegarder le schéma actuel",[211,633,635],{"className":213,"code":634,"language":215,"meta":216,"style":216},"cp prisma\u002Fdata\u002Fschema.prisma prisma\u002Fdata\u002Fschema.prev.prisma.bak\n",[197,636,637],{"__ignoreMap":216},[220,638,639,641,644],{"class":222,"line":223},[220,640,257],{"class":226},[220,642,643],{"class":230}," prisma\u002Fdata\u002Fschema.prisma",[220,645,646],{"class":230}," prisma\u002Fdata\u002Fschema.prev.prisma.bak\n",[625,648,649],{"start":309},[187,650,651,654,655,658],{},[170,652,653],{},"Modifier le schéma"," dans ",[197,656,657],{},"prisma\u002Fdata\u002Fschema.prisma",", puis régénérer :",[211,660,662],{"className":213,"code":661,"language":215,"meta":216,"style":216},"pnpm prisma generate --schema=prisma\u002Fdata\u002Fschema.prisma\n",[197,663,664],{"__ignoreMap":216},[220,665,666,668,670,672],{"class":222,"line":223},[220,667,312],{"class":226},[220,669,315],{"class":230},[220,671,318],{"class":230},[220,673,333],{"class":230},[625,675,676],{"start":324},[187,677,678],{},[170,679,680],{},"Générer le script SQL",[211,682,684],{"className":213,"code":683,"language":215,"meta":216,"style":216},"pnpm prisma migrate diff \\\n  --from-schema-datamodel prisma\u002Fdata\u002Fschema.prev.prisma.bak \\\n  --to-schema-datamodel prisma\u002Fdata\u002Fschema.prisma \\\n  --script | sed 's\u002F\"public\"\\.\"\u002F\"SCHEMA_PLACEHOLDER\".\"\u002Fg' \\\n  > scripts\u002Fmigrations\u002FXXX-description.sql\n",[197,685,686,701,711,720,743],{"__ignoreMap":216},[220,687,688,690,692,695,698],{"class":222,"line":223},[220,689,312],{"class":226},[220,691,315],{"class":230},[220,693,694],{"class":230}," migrate",[220,696,697],{"class":230}," diff",[220,699,700],{"class":515}," \\\n",[220,702,703,706,709],{"class":222,"line":309},[220,704,705],{"class":230},"  --from-schema-datamodel",[220,707,708],{"class":230}," prisma\u002Fdata\u002Fschema.prev.prisma.bak",[220,710,700],{"class":515},[220,712,713,716,718],{"class":222,"line":324},[220,714,715],{"class":230},"  --to-schema-datamodel",[220,717,643],{"class":230},[220,719,700],{"class":515},[220,721,722,725,729,732,735,738,741],{"class":222,"line":475},[220,723,724],{"class":230},"  --script",[220,726,728],{"class":727},"sMK4o"," |",[220,730,731],{"class":226}," sed",[220,733,734],{"class":727}," '",[220,736,737],{"class":230},"s\u002F\"public\"\\.\"\u002F\"SCHEMA_PLACEHOLDER\".\"\u002Fg",[220,739,740],{"class":727},"'",[220,742,700],{"class":515},[220,744,745,748],{"class":222,"line":481},[220,746,747],{"class":727},"  >",[220,749,750],{"class":230}," scripts\u002Fmigrations\u002FXXX-description.sql\n",[625,752,753],{"start":475},[187,754,755,654,758],{},[170,756,757],{},"Enregistrer la migration",[197,759,760],{},"scripts\u002Fmigrations\u002Fmigrations.json",[211,762,766],{"className":763,"code":764,"filename":760,"language":765,"meta":216,"style":216},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"migrations\": [\n    {\n      \"version\": 2,\n      \"name\": \"XXX-description\",\n      \"description\": \"Description de la migration\",\n      \"file\": \"XXX-description.sql\",\n      \"date\": \"YYYY-MM-DD\"\n    }\n  ]\n}\n","json",[197,767,768,773,791,796,815,836,856,876,895,901,907],{"__ignoreMap":216},[220,769,770],{"class":222,"line":223},[220,771,772],{"class":727},"{\n",[220,774,775,778,782,785,788],{"class":222,"line":309},[220,776,777],{"class":727},"  \"",[220,779,781],{"class":780},"spNyl","migrations",[220,783,784],{"class":727},"\"",[220,786,787],{"class":727},":",[220,789,790],{"class":727}," [\n",[220,792,793],{"class":222,"line":324},[220,794,795],{"class":727},"    {\n",[220,797,798,801,804,806,808,812],{"class":222,"line":475},[220,799,800],{"class":727},"      \"",[220,802,803],{"class":226},"version",[220,805,784],{"class":727},[220,807,787],{"class":727},[220,809,811],{"class":810},"sbssI"," 2",[220,813,814],{"class":727},",\n",[220,816,817,819,822,824,826,829,832,834],{"class":222,"line":481},[220,818,800],{"class":727},[220,820,821],{"class":226},"name",[220,823,784],{"class":727},[220,825,787],{"class":727},[220,827,828],{"class":727}," \"",[220,830,831],{"class":230},"XXX-description",[220,833,784],{"class":727},[220,835,814],{"class":727},[220,837,838,840,843,845,847,849,852,854],{"class":222,"line":539},[220,839,800],{"class":727},[220,841,842],{"class":226},"description",[220,844,784],{"class":727},[220,846,787],{"class":727},[220,848,828],{"class":727},[220,850,851],{"class":230},"Description de la migration",[220,853,784],{"class":727},[220,855,814],{"class":727},[220,857,858,860,863,865,867,869,872,874],{"class":222,"line":544},[220,859,800],{"class":727},[220,861,862],{"class":226},"file",[220,864,784],{"class":727},[220,866,787],{"class":727},[220,868,828],{"class":727},[220,870,871],{"class":230},"XXX-description.sql",[220,873,784],{"class":727},[220,875,814],{"class":727},[220,877,878,880,883,885,887,889,892],{"class":222,"line":550},[220,879,800],{"class":727},[220,881,882],{"class":226},"date",[220,884,784],{"class":727},[220,886,787],{"class":727},[220,888,828],{"class":727},[220,890,891],{"class":230},"YYYY-MM-DD",[220,893,894],{"class":727},"\"\n",[220,896,898],{"class":222,"line":897},9,[220,899,900],{"class":727},"    }\n",[220,902,904],{"class":222,"line":903},10,[220,905,906],{"class":727},"  ]\n",[220,908,910],{"class":222,"line":909},11,[220,911,912],{"class":727},"}\n",[348,914,916],{"icon":915},"i-lucide-info","Les migrations sont appliquées automatiquement à chaque connexion utilisateur. Il suffit de redémarrer le serveur pour qu'elles soient prises en compte.",[348,918,919],{"icon":350,"color":351},"Testez toujours une migration sur une base de développement avant de l'appliquer en production, et effectuez une sauvegarde préalable.",[921,922,923],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}",{"title":216,"searchDepth":309,"depth":309,"links":925},[926,927,935,940,944],{"id":181,"depth":309,"text":182},{"id":203,"depth":309,"text":204,"children":928},[929,930,931,932,933,934],{"id":208,"depth":324,"text":209},{"id":246,"depth":324,"text":247},{"id":289,"depth":324,"text":290},{"id":336,"depth":324,"text":337},{"id":355,"depth":324,"text":356},{"id":395,"depth":324,"text":396},{"id":418,"depth":309,"text":419,"children":936},[937,938,939],{"id":422,"depth":324,"text":423},{"id":448,"depth":324,"text":449},{"id":227,"depth":324,"text":176},{"id":564,"depth":309,"text":565,"children":941},[942,943],{"id":568,"depth":324,"text":569},{"id":596,"depth":324,"text":597},{"id":615,"depth":309,"text":616,"children":945},[946],{"id":622,"depth":324,"text":623},"Installation locale, commandes Prisma, migrations de schéma et sécurité pour PnlTracker.","md",null,{},{"icon":151},{"title":953,"description":947},"Référence technique - PnlTracker","58WcPIbLyTpkLEYJ2hLgY--FEqP1QTE2RiMs5mxMOlg",[956,958],{"title":137,"path":138,"stem":139,"description":957,"icon":140,"children":-1},"Questions fréquemment posées sur PnlTracker.",{"title":153,"path":154,"stem":155,"description":959,"icon":156,"children":-1},"Configuration du serveur de stockage externe optionnel pour PnlTracker.",1781434700818]