arcast/doc/configuration.md

172 lines
6.4 KiB
Markdown

- [Configuration](#configuration)
- [Personnalisation de l'apparence](#personnalisation-de-lapparence)
- [Exemple](#exemple)
- [index.gohtml exemple](#indexgohtml-exemple)
- [Configuration arcast-player](#configuration-arcast-player)
# Configuration
Le server Arcast utilise un fichier de configuration permettant de personnaliser son comportement.
Par défaut, ce fichier de configuration est créé aux emplacements suivants au lancement de l'application:
- **Linux Desktop**:
- `${HOME}/.config/arcast-player/config.json`
- **Android**:
- `/storage/emulated/0/Android/data/com.cadoles.arcast_player`
- `/data/user/0/com.cadoles.arcast_player/files/config.json` (si le premier chemin n'est pas accessible en lecture/écriture)
Voici un exemple commenté du fichier de configuration:
```json
{
// Identifiant de l'instance
"instanceId": "<instance_id>",
// Configuration du serveur HTTP
"http": {
// Couple <address>:<port> d'écoute
// Par défaut ":" i.e. toutes les adresses avec port aléatoire
"address": ":",
// Répertoire de personnalisation de la page d'accueil
// Voir section "Personnalisation" ci-dessous
"customDir": "${CONFIG_DIR}/custom"
},
// Configuration du serveur HTTPS
"https": {
// Couple <address>:<port> d'écoute
// Par défaut ":" i.e. toutes les adresses avec port aléatoire
"address": ":",
// Certificat x509 (format PEM, encodé en base64)
"cert": "<base64_encoded_pem_cert>",
// Clé privée du certificat (format PEM, encodé en base64)
"key": "<base64_encoded_pem_key>",
// Configuration de la génération du certificat autosigné
"selfSigned": {
// Activer/désactiver la génération du certificat auto-signé
"enabled": true,
// Empreinte réseau associée au certificat autosigné
// Permet de détecter si il y a eu un changement sur les adresses IPs du player
"networkFingerprint": "40f4cd914c6163657fe4e37128f90b501b768221c77b5dbfa35ca74a84b8732a"
}
},
// Configuration des applications embarquées
"apps": {
// Activer/désactiver les applications embarquées
"enabled": true,
// Application par défaut
"defaultApp": "main"
}
}
```
## Personnalisation de l'apparence
Il est possible de personnaliser la page d'accueil du player Arcast en créant des fichiers dans le répertoire définit par l'attribut de configuration `http.customDir`.
Le contenu de ce répertoire doit répliquer l'arborescence embarquée par défaut (voir https://forge.cadoles.com/arcad/arcast/src/branch/develop/pkg/server/embed). Chaque fichier présent remplacera celui embarqué par défaut.
### Exemple
Nous voulons ajouter une image, et du texte à la page d'accueil, étant sur une ubuntu nous allons à l'emplacement : `${HOME}/.config/arcast-player/`
Soit :
```Shell
${HOME}/.config/arcast-player/
├── config.json
└── custom
```
Nous avons une image **logo.png**, un fichier css pour l'apparence **exemple.css**, et un template **index.gohtml** dans le dossier `_templates`, contenant le texte à afficher, et sa position dans la fenêtre.
Soit :
```Shell
${HOME}/.config/arcast-player/
├── config.json
└── custom
├── exemple.css
├── logo.png
└── _templates
└── index.gohtml
```
Une fois les fichiers dûments remplis, il suffit de lancer, ou re-lancer arcast-player pour voir le résultat.
#### index.gohtml exemple
```go
{{ define "message" }}
<h1 style="margin-top: 20px" class="text-centered">Bienvenue chez moi !</h1>
<hr style="margin: 20px 0 20px 0" />
<div style="margin: 20px 0 20px 0">
<p>Pensez à vous essuyer les pieds</p>
<ul>
<li>
<b style="width: 33%; display: inline-block">Pour la bière:</b>
<code>Le frigo est à droite</code>
</li>
<li>
<b style="width: 33%; display: inline-block">Pour le barbecue</b>
<code>Porte fenêtre de gauche, puis à droite ce trouve votre bonheur</code>
</li>
</ul>
<hr style="margin: 20px 0 20px 0" />
</div>
{{ end }}
{{ define "head" }}
<link rel="stylesheet" href="exemple.css" />
{{ end }}
{{ define "index" }}
{{ template "base" . }}
{{ end }}
```
Exemple de rendu avec logo cadoles.
![exemple](./resources/arcast-exemple.png)
## Configuration arcast-player
Comme constaté lors de l'affichage de l'aide pour `arcast-player run -help` il est possible d'utiliser les flags chrome pour paramétrer plus finement l'affichage.
Liens pour une liste des flags disponible à destination de chrome : [liens falgs chrome](https://peter.sh/experiments/chromium-command-line-switches/)
rappel :
```Shell
[computer@user ~]$ arcast-player run -help
NAME:
arcast run
USAGE:
arcast run [command options] [arguments...]
OPTIONS:
--config value (default: "/home/panda/.config/arcast-player/config.json") [$ARCAST_DESKTOP_CONFIG]
--additional-chrome-arg value [ --additional-chrome-arg value ] (default: "incognito") [$ARCAST_DESKTOP_ADDITIONAL_CHROME_ARGS]
--instance-id value [$ARCAST_DESKTOP_INSTANCE_ID]
--address value (default: ":") [$ARCAST_DESKTOP_ADDRESS]
--https-address value (default: ":") [$ARCAST_DESKTOP_HTTPS_ADDRESS]
--window-height value (default: 0) [$ARCAST_DESKTOP_WINDOW_HEIGHT]
--apps (default: false) [$ARCAST_DESKTOP_APPS]
--window-width value (default: 0) [$ARCAST_DESKTOP_WINDOW_WIDTH]
--allowed-origins value [ --allowed-origins value ] [$ARCAST_DESKTOP_ALLOWED_ORIGINS]
--custom-files-dir value [$ARCAST_DESKTOP_CUSTOM_FILES_DIR]
--dummy-browser (default: false) [$ARCAST_DESKTOP_DUMMY_BROWSER]
--help, -h show help
```
Exemple pour lancer chrome en ligne de commande avec le mode kiosk.
Deux possibilités :
```Shell
arcast-player run --additional-chrome-arg incognito --additional-chrome-arg kiosk
```
Il est aussi possible d'utiliser une variable d'environnement comme indiqué dans l'aide.
```Shell
ARCAST_DESKTOP_ADDITIONAL_CHROME_ARGS="incognito,kiosk" arcast-player run
```