Frappe Framework
Sites
Chaque locataire est un dossier de site. La requête HTTP le choisit par le nom d’hôte, ou par un en-tête explicite.
Dossier des sites
Frappe est multi-locataire. Chaque locataire est un site. Les sites vivent dans le dossier sites, pris comme répertoire courant quand une commande Frappe, un worker Celery ou un serveur WSGI démarre. sites_dir se fixe avec la variable SITES_DIR ou l’option --sites_dir.
À côté des sites, ce dossier contient :
| Fichier | Rôle |
|---|---|
apps.txt | Paquets Python traités comme applications. Chacune doit y figurer et être sur le PYTHONPATH. Voir Apps Frappe. |
common_site_config.json | Facultatif. Configuration commune à tous les sites. |
assets | Fichiers servis au navigateur, en général js, css et png. Produit par bench build. |
languages.txt | Fichier généré qui associe chaque langue à son code. |
Un site
Un site est un dossier de sites_dir. On y trouve locks, private/backups, public/files et site_config.json.
locks sert au planificateur pour synchroniser les travaux par verrou de fichier. private contient les fichiers qui exigent une authentification. La source le limite pour l’instant aux sauvegardes. public est servi directement : testfile.txt répond à http://site/files/testfile.txt. site_config.json porte la configuration propre au site. Les clés sont dans Configuration (site_config.json).
Résolution
Pour une requête HTTP, le site est choisi si l’en-tête Host correspond à un site, ou si l’en-tête X-Frappe-Site-Name correspond à un site. En développement, on force le site avec bench --site SITENAME serve.
Créer et choisir
bench new-site SITENAME ajoute un site. Le détail des options est dans bench new-site. bench use SITENAME en fait le site par défaut. currentsite.txt, dans le dossier sites, doit alors contenir ce nom.
