# Serveur et fichiers de configuration

## Mise en place de la configuration sur le serveur

La configuration des kiosques (qui détermine notamment leur finalité) est réalisée à partir de 4 fichiers téléchargés à chaque démarrage. Ils doivent donc être placés sur un serveur web accessible par les kiosques (intranet, site web de la collectivité…) :

- `config.cfg`  
    contient les éléments de configuration d'OpenKiosk
- `filters.txt`  
    contient les listes d'URL accessibles (liste blanche) ou interdites (liste noire)
- `config_system.json`  
    contient les éléments de configuration du système
- `boot_script.sh`  
    contient une liste de commandes exécutées en ***root*** au démarrage du kiosque

Les paramètres sont plutôt parlants et devraient vous permettre d'adapter votre solution à des usages très différents.

#### Affichage municipal :

Pour de l'affichage d'informations municipales, l'utilisation d'une solution de type [slides.com](https://slides.com) (qui repose sur reveal.js) peut faire l'affaire. Dans ce cas, modifiez le fichier **`config.cfg`** de telle sorte que la page de lecture de la présentation s'ouvre en plein écran au démarrage, désactivez le curseur et la mise en veille de l'écran dans le fichier `<strong>config_system.json</strong>`, etc.

#### Exemples de fichiers de configuration :

<p class="callout info">**Ces exemples permettent de créer un kiosque dédié à de l'accès public sécurisé.**</p>

Fichier **`config.cfg`** :

```
// Ficher de configuration OpenKiosk
pref("browser.startup.homepage", "https://example.com/");
pref("browser.download.dir", "/tmp");
pref("openkiosk.fullscreen.enabled", false);
pref("openkiosk.filters.enabled", true);
pref("openkiosk.filters.protocol.about.enabled", false);
pref("openkiosk.filters.protocol.blob.enabled", true);
pref("openkiosk.filters.protocol.data.enabled", true);
pref("openkiosk.filters.protocol.file.enabled", false);
pref("openkiosk.filters.protocol.ftp.enabled", false);
pref("openkiosk.filters.protocol.javascript.enabled", false);
pref("openkiosk.filters.protocol.mailto.enabled", false);
pref("openkiosk.filters.protocol.res.enabled", false);
pref("openkiosk.filters.protocol.sms.enabled", false);
pref("openkiosk.filters.protocol.tel.enabled", false);
pref("openkiosk.filters.protocol.viewsource.enabled", false);
pref("openkiosk.session.inactiveTerminal.enabled", true);
pref("openkiosk.session.inactiveTerminal.minutes", 10);
pref("openkiosk.session.inactiveTerminal.warn.enabled", false);
pref("openkiosk.session.inactiveTerminal.warn.secondes", 10);
pref("openkiosk.session.inactiveTerminal.warn.manual.enabled", false);
pref("openkiosk.session.cookies.enabled", false);
pref("openkiosk.tabs.enabled", true);
pref("openkiosk.osk.enabled", false);
pref("openkiosk.ui.urlbar.enabled", false);
pref("openkiosk.ui.context.menu.enabled", false);
pref("openkiosk.ui.context.search.enabled", false);
pref("openkiosk.admin.password", "e52f15f817710380d47db05179ec4deb,98c34518c3ca6afa539bdcf87ce274b8bc56938f77d4917b02c38e6468623d43");
pref("openkiosk.print.web.enabled", false);
pref("openkiosk.keys.settings.enabled", true);
pref("openkiosk.file.upload.enabled", false);
pref("security.mixed_content.block_active_content", false);
pref("permissions.default.microphone", 0);
pref("permissions.default.camera", 0);
pref("openkiosk.filters.strictmode.enabled", true);
pref("openkiosk.filters.file", "/usr/lib/OpenKiosk/filters.txt");
pref("print.always_print_silent", false);
```

Fichier `<strong>filters.txt</strong>` :

```
# Whitelist (* = wilcard pour autoriser tous les sous-domaines)
filter[https://*.ma-mairie.fr, ALL]
filter[https://*.gouv.fr, ALL]
filter[https://*.example.com, ALL]
```

Fichier `<strong>config_system.json</strong>` :

```
{
   "screen_saver": "true",
   "screen_saver_minutes": 10,
   "cursor": "true",
   "sound": "true"
}
```

Fichier `<strong>boot_script.sh</strong>` :

```
# Script qui s'éxecute en root au démarrage
```

<p class="callout info">Auteur original de cette documentation : [Alexandre Salmetoz](https://www.linkedin.com/in/alexandre-salmetoz/).</p>