.. -*- coding: utf-8 -*-

Configuration d'une instance
============================

À la création d'une instance, un fichier de configuration est généré dans ::

   $(CW_REGISTRY)/<instance>/<nom configuration>.conf

par exemple ::

   /etc/cubicweb.d/jpl/all-in-one.conf

C'est un simple fichier texte au format INI. Dans la description suivante,
chaque nom d'option est préfixé de sa section et suivi de sa valeur par défaut
le cas échéant, e.g. "`<section>.<option>` [valeur]".


Configuration du serveur web
----------------------------
:`web.auth-mode` [cookie]: 
   mode d'authentification, cookie ou http
:`web.realm`: 
   realm de l'application en mode d'authentification http
:`web.http-session-time` [0]:
   délai d'inactivité d'une session HTTP avant sa fermeture automatique. Durée
   en secondes, 0 signifiant pas d'expiration (ou plus exactement lors de la
   fermeture du navigateur du client)

:`main.anonymous-user`, `main.anonymous-password`:
   login et mot de passe à utiliser pour se connecter au serveur RQL lors des
   connexions HTTP anonymes. Il faut que le compte CWUser associé existe.

:`main.base-url`:
   url de base du site, à utiliser pour générer les urls des pages web

Configuration https
```````````````````
Il est possible de rendre un site accessible en http pour les connections 
anonymes et en https pour les utilisateurs authentifié. Il faut pour cela
utiliser apache (par ex.) pour la redirection et la variable `main.https-url` du
fichier de configuration.

:Exemple:

  pour une redirection apache d'un site accessible via `http://localhost/demo`
  et `https://localhost/demo` et qui tourne en réalité sur le port 8080, il 
  faut avoir pour la version http : ::

    RewriteCond %{REQUEST_URI} ^/demo
    RewriteRule ^/demo$ /demo/
    RewriteRule ^/demo/(.*) http://127.0.0.1:8080/$1 [L,P]
  
  et pour la version https : ::

    RewriteCond %{REQUEST_URI} ^/demo
    RewriteRule ^/demo$ /demo/
    RewriteRule ^/demo/(.*) http://127.0.0.1:8080/https/$1 [L,P]


  et on aura dans le fichier all-in-one.conf de l'instance : ::

    base-url = http://localhost/demo
    https-url = `https://localhost/demo`

Configuration de l'interface web
--------------------------------
:`web.embed-allowed`:
   expression régulière correspondant aux sites pouvant être "incorporé" dans
   le site (controleur 'embed')
:`web.submit-url`:
   url à laquelle les bugs rencontrés dans l'application peuvent être posté


Configuration du serveur RQL
----------------------------
:`main.host`:
   nom de l'hôte s'il ne peut être détecter correctement
:`main.pid-file`:
   fichier où sera écrit le pid du serveur
:`main.uid`:
   compte utilisateur à utiliser pour le lancement du serveur quand il est
   lancé en root par init
:`main.session-time [30*60]`:
   temps d'expiration d'une session RQL
:`main.query-log-file`:
   fichier dans lequel écrire toutes les requêtes RQL éxécutées par le serveur


Configuration Pyro pour l'instance
-----------------------------------
Coté serveur web :

:`pyro-client.pyro-application-id`: 
   identifiant pyro du serveur RQL (e.g. le nom de l'instance)

Coté serveur RQL :

:`pyro-server.pyro-port`:
   numéro de port pyro. Si aucune valeur n'est spécifiée, un port est attribué
   automatiquement.

Coté serveur RQL et serveur web :

:`pyro-name-server.pyro-ns-host`:
   nom de l'hôte hébergeant le serveur de nom pyro. Si aucune valeur n'est
   spécifié, il est localisé par une requête de broadcast
:`pyro-name-server.pyro-ns-group` [cubicweb]:
   groupe pyro sous lequel enregistrer l'application


Configuration courriel
----------------------
Coté serveur RQL et serveur web :

:`email.mangle-emails [no]`:
   indique si les adresses email doivent être affichées telle quelle ou
   transformée

Coté serveur RQL :

:`email.smtp-host [mail]`:
   nom de l'hôte hébergeant le serveur SMTP à utiliser pour le courriel sortant
:`email.smtp-port [25]`:
   port du serveur SMTP à utiliser pour le courriel sortant
:`email.sender-name`:
   nom à utiliser pour les courriels sortant de l'application
:`email.sender-addr`:
   adresse à utiliser pour les courriels sortant de l'application
:`email.default-dest-addrs`:
   adresses de destination par défaut, si utilisé par la configuration de la 
   diffusion du modèle (séparées par des virgules)
:`email.supervising-addrs`:
   addresses de destination des courriels de supervision (séparées par des 
   virgules)


Configuration journalisation
----------------------------
:`main.log-threshold`:
   niveau de filtrage des messages (DEBUG, INFO, WARNING, ERROR)
:`main.log-file`:
   fichier dans lequel écrire les messages


Configuration Eproperties
-------------------------
D'autres paramètres de configuration sont sous la forme d'entités `CWProperty`
dans la base de données. Il faut donc les éditer via l'interface web ou par des
requêtes rql.

:`ui.encoding`:
   encodage de caractères à utiliser pour l'interface web
:`navigation.short-line-size`: # XXX should be in ui
   nombre de caractères maximum pour les affichages "courts"
:`navigation.page-size`:
   nombre d'entités maximum à afficher par page de résultat
:`navigation.related-limit`:
   nombre d'entités liées maximum à afficher sur la vue primaire d'une entité
:`navigation.combobox-limit`:
   nombre d'entités non liées maximum à afficher sur les listes déroulantes de
   la vue d'édition d'une entité
