Aller au contenu

📝 Configuration

Les options de dĂ©marrage se trouvent dans un fichier .env : ports, dossier de donnĂ©es, journalisation, sessions de connexion et quelques fonctionnalitĂ©s facultatives. Il se trouve Ă  la racine du projet, ou Ă  cĂŽtĂ© de docker-compose.yml avec Docker. Les options que vous modifiez depuis l’application relĂšvent des ParamĂštres globaux.


🔧 CrĂ©er le fichier .env

Dans le dossier du projet, copiez le fichier d’exemple, puis modifiez les valeurs dont vous avez besoin :

cp .env.example .env

Avec l’image Docker prĂ©construite, le guide Installation Docker tĂ©lĂ©charge le mĂȘme exemple sous le nom .env.

  • LibreFolio lit .env au dĂ©marrage : redĂ©marrez-le aprĂšs une modification. Avec Docker Compose, exĂ©cutez docker compose up -d, car docker compose restart conserve les anciennes valeurs.
  • Les noms sont sensibles Ă  la casse. Dans les options principales et les paramĂštres de risque ci-dessous, une valeur du mauvais type ou hors limites arrĂȘte le serveur au dĂ©marrage avec une erreur.

✏ Options principales

Variable Défaut Ce qu'il fait
PORT 6040 Port du serveur web. Avec Docker Compose, le port ouvert sur l’hĂŽte (le conteneur Ă©coute toujours sur 6040).
TEST_PORT 6041 Port du serveur de test (./dev.py server --test).
LIBREFOLIO_DATA_DIR ./backend/data/prod Dossier de la base de donnĂ©es, des tĂ©lĂ©versements, des rapports de courtier et des journaux ; un chemin relatif part du dossier du projet. Docker le dĂ©finit Ă  /app/backend/data/prod-docker : pour dĂ©placer les donnĂ©es sur l’hĂŽte, modifiez le cĂŽtĂ© gauche du volume ./LibreFolio-data dans docker-compose.yml.
LOG_LEVEL INFO Niveau de détail des journaux du serveur : TRACE, DEBUG, INFO, WARNING, ERROR ou CRITICAL.
JWT_SECRET non défini Clé qui signe les sessions de connexion. Non définie : une nouvelle clé à chaque démarrage, donc tout le monde doit se reconnecter aprÚs un redémarrage. Voir Maintenir les utilisateurs connectés.
SESSION_COOKIE_SECURE auto Quand le cookie de session de connexion est envoyé uniquement via HTTPS : auto (si le navigateur utilise HTTPS), always ou never. Voir HTTPS et proxies inverses.
PREVIEW_CACHE_MAX_MB 50 MĂ©moire, en Mo, du cache d’aperçu des images dans chaque processus serveur.

Les anciens fichiers .env peuvent encore contenir PORTFOLIO_BASE_CURRENCY : LibreFolio l’ignore, et les nouveaux utilisateurs partent de la Devise par dĂ©faut dans les ParamĂštres globaux.

🔒 HTTPS et proxies inverses — le cookie de session
  • auto (par dĂ©faut) : Secure lorsque le navigateur a atteint LibreFolio via HTTPS. LibreFolio lui-mĂȘme sert du HTTP en clair, donc HTTPS provient d’un proxy inverse placĂ© devant lui, qui l’indique avec l’en-tĂȘte X-Forwarded-Proto: https ; seule sa premiĂšre valeur compte. Il n’y a pas de liste de proxies de confiance Ă  configurer : l’en-tĂȘte peut uniquement activer Secure, jamais le dĂ©sactiver. En HTTP en clair, comme http://localhost:6040, une IP de rĂ©seau local ou l’IP Tailscale des niveaux 1 et 2 dans Exposition sĂ©curisĂ©e, le cookie n’est pas Secure, donc la connexion continue de fonctionner.
  • always : toujours Secure, pour une installation accessible uniquement via HTTPS. En HTTP en clair, le navigateur abandonne le cookie, donc la connexion ne persiste pas : la page suivante renvoie l’utilisateur vers la page de connexion.
  • never : jamais Secure. C’est la solution de secours lorsqu’un proxy envoie X-Forwarded-Proto: https Ă  un navigateur qui utilise en rĂ©alitĂ© du HTTP en clair, comme Nginx avec un proxy_set_header X-Forwarded-Proto https; codĂ© en dur dans un bloc server en HTTP en clair : en auto, ce navigateur serait renvoyĂ© vers la page de connexion aprĂšs chaque connexion. Mieux vaut corriger le proxy ($scheme au lieu de https) ; never est le fallback.

DerriĂšre un proxy inverse HTTPS, auto s’appuie sur son en-tĂȘte X-Forwarded-Proto :

  • Tailscale Serve et Funnel (niveaux 3 et 4 dans Exposition sĂ©curisĂ©e), Caddy et Traefik l’envoient d’eux-mĂȘmes : rien Ă  configurer.
  • Nginx ne le fait pas : ajoutez proxy_set_header X-Forwarded-Proto $scheme; au bloc location qui fait proxy vers LibreFolio.
  • Tout autre proxy : faites-lui envoyer l’en-tĂȘte ou, si LibreFolio n’est accessible qu’à travers lui, dĂ©finissez SESSION_COOKIE_SECURE=always.

Pour vérifier dans votre navigateur si le cookie de session est marqué Secure, voir Vérifier la sécurité de la connexion.

🧼 Workers du moteur de risque — rĂ©glage avancĂ©

Les simulations de risque et les optimisations de portefeuille s’exĂ©cutent dans des processus workers sĂ©parĂ©s, dĂ©marrĂ©s Ă  la premiĂšre utilisation. Les valeurs par dĂ©faut conviennent Ă  la plupart des installations : ajoutez une variable Ă  .env uniquement pour modifier ce rĂ©glage.

Variable Défaut Ce qu'il fait
RISK_SIMULATION_WORKERS, RISK_OPTIMIZATION_WORKERS 1 (1–8) Processus workers par type de tĂąche : plus ils sont nombreux, plus de tĂąches s’exĂ©cutent en mĂȘme temps.
RISK_SIMULATION_QUEUE_CAPACITY, RISK_OPTIMIZATION_QUEUE_CAPACITY 2 (0–64) TĂąches pouvant attendre un worker ; au-delĂ , les nouvelles requĂȘtes sont refusĂ©es.
RISK_SIMULATION_TIMEOUT_SECONDS, RISK_OPTIMIZATION_TIMEOUT_SECONDS 120 / 60 Limite de temps d’une tñche, en secondes.
RISK_SIMULATION_IDLE_TIMEOUT_SECONDS, RISK_OPTIMIZATION_IDLE_TIMEOUT_SECONDS 600 Les workers inactifs s’arrĂȘtent aprĂšs ce nombre de secondes et redĂ©marrent Ă  la tĂąche suivante ; 0 les maintient en fonctionnement.

đŸ’» ParamĂštres dĂ©finis par les outils

./dev.py et Docker Compose les définissent pour vous : ne les modifiez que si vous savez pourquoi.

Variable Défaut Ce qu'il fait
HOST 0.0.0.0 Adresse sur laquelle ./dev.py server Ă©coute ; 127.0.0.1 accepte uniquement les connexions locales. Docker Compose utilise toujours 0.0.0.0.
LIBREFOLIO_LOG_LEVEL — Remplace LOG_LEVEL lorsqu’il est dĂ©fini ; ./dev.py server --debug le dĂ©finit Ă  DEBUG.
LIBREFOLIO_TEST_MODE — 1, true ou yes bascule vers le dossier de donnĂ©es de test. DĂ©fini par ./dev.py server --test et les lanceurs de tests.
LIBREFOLIO_TEST_DATA_DIR ./backend/data/test Dossier des donnĂ©es de test ; il ne doit pas chevaucher celui de production.

🔎 Facultatif : recherche web pour les nouveaux actifs

Lorsque vous crĂ©ez un actif, y compris depuis l’assistant d’importation de courtier, et que la recherche propre d’un fournisseur ne trouve rien, LibreFolio peut trouver la page de l’actif par une recherche web via la bibliothĂšque ddgs. Elle est activĂ©e par dĂ©faut et n’est jamais utilisĂ©e pour les mises Ă  jour de prix. Toutes ces variables sont facultatives : dĂ©commentez une ligne de .env.example pour en modifier une.

Variable Défaut Ce qu'il fait
LIBREFOLIO_WEB_LINK_FINDER_ENABLED 1 0 dĂ©sactive la recherche web ; la recherche propre des fournisseurs continue de fonctionner.
LIBREFOLIO_WEB_LINK_FINDER_ENGINE ddgs ddgs ne nécessite aucune configuration. apikey est réservé à un service de recherche payant et ne renvoie encore aucun résultat.
LIBREFOLIO_WEB_LINK_FINDER_DDGS_REGION wt-wt Région de recherche. wt-wt (monde entier) évite que les sites nationaux tels que Borsa Italiana soient rétrogradés. Exemples : it-it, us-en.
LIBREFOLIO_WEB_LINK_FINDER_DDGS_BACKEND auto Moteurs que ddgs interroge : auto les fait tourner pour une couverture maximale ; une liste comme google,bing,duckduckgo donne des rĂ©sultats plus stables.
LIBREFOLIO_WEB_LINK_FINDER_TIMEOUT 6 Limite de temps d’une recherche, en secondes.
LIBREFOLIO_WEB_LINK_FINDER_MAX 5 Nombre maximal de liens renvoyés par une recherche.
LIBREFOLIO_WEB_LINK_FINDER_API_KEY vide Clé pour le moteur apikey.
🔁 Les rĂ©sultats changent d’une tentative Ă  l’autre — quand un actif connu n’est parfois pas trouvĂ©

Avec auto, chaque recherche peut atteindre diffĂ©rents moteurs, donc la mĂȘme requĂȘte peut donner de meilleurs ou de moins bons rĂ©sultats d’un essai Ă  l’autre. RĂ©essayez une fois, ou dĂ©finissez LIBREFOLIO_WEB_LINK_FINDER_DDGS_BACKEND=google,bing,duckduckgo.


🔝 Quelle valeur l’emporte

De la priorité la plus élevée à la plus faible :

  1. Les options --host, --port et --data-dir de ./dev.py server.
  2. Les variables définies dans le shell.
  3. Le fichier .env.
  4. Les valeurs par défaut listées sur cette page.

Avec Docker Compose, le bloc environment: de docker-compose.yml l’emporte sur .env : il dĂ©finit HOST et LIBREFOLIO_DATA_DIR. Voir Docker avancĂ©.


📂 OĂč vont les donnĂ©es

  • Production : backend/data/prod/, ou LIBREFOLIO_DATA_DIR. Ce dossier contient la base de donnĂ©es (sqlite/app.db), custom-uploads/, broker_reports/ et logs/.
  • Test : backend/data/test/, ou LIBREFOLIO_TEST_DATA_DIR. MĂȘme organisation, tenue Ă  part.

Structure du systÚme de fichiers détaille chaque dossier et comment le sauvegarder.


🔗 Voir aussi