arcast/doc/configuration.md

6.4 KiB

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:

{
  // 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 :

${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 :

${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

{{ 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

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

rappel :

[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 :

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.

ARCAST_DESKTOP_ADDITIONAL_CHROME_ARGS="incognito,kiosk" arcast-player run