CasaOS / ZimaOS [TUTO] K7, Serveur Médias - Installation

morgyann

Grand Maître Jedi
Membre Confirmé
2 Février 2023
3 379
835
263
.bzh
yapasdebug.bzh
1787762307187.png

Préambule : Ce tuto fait suite au poste de présentation de K7 Serveur et de l'invitation de son développeur @Kaybi à tester son application :

Cette application K7, un serveur médias (Films, Séries, Musique) fonctionnant, à ce jour, merveilleusement, je vous propose ci-après, une adaptation de l'installation en "mode classique" (pour console docker et/ou de gestion type Portainer) et facile pour tous : sous forme de YAML (Docker-compose).
L'installation et le docker-compose est conçue pour le système ZimaOS et / ou le logiciel CasaOS. Cependant, elle devrait fonctionner sur tout type de matériel et OS (NAS commerciaux ou serveur DIY avec Docker d'installé) : il vous suffit (je pense) de supprimer à la fin du YAML "x-casaos et ce qui suit".
L'avantage de ce type d'installation, vous permet d'opérer les modifications, mises à jour et maintenance de la pile sans à avoir à ouvrir le terminal SSH (difficile pour certains OS fermés).

NB Si vous débutez sur ZimaOS, vous trouverez l'article complet avec les illustrations étape par étape sur mon Blog'Notes à :


K7 est un serveur multimédia auto-hébergé pour un petit cercle de famille et d'amis et développé par Kaybi.

Le nom vient de la prononciation française/ka.sɛt/ (cassette). L'idée est de ramener cette sensation d'étagère à la maison : cassettes audio, VHS, tout ce qui vous appartient et local.

Démo​

Accédez à la démo en direct ici. Seule la connexion "invité" est disponible, les fonctionnalités nécessitant un compte complet ne sont donc pas accessibles.


1. Configuration sur ZimaOS​

1.1. Cliquez sur l’icône + en haut à droite de la page d’accueil au dessus des tuiles et sélectionnez Installer une application personnalisée.
1.2. La fenêtre des paramètres de votre application s’ouvre et cliquez sur l'onglet, en haut à droite, avec pour libellé YAML.
1.3. Copier-coller dans la fenêtre, à la place de ce qui est inscrit, le code de configuration ci-dessous


Code:
networks:
  k7-server:
    name: k7-server
    ipam: {}
    external: false
services:
  k7-server:
    cpu_shares: 90
    command: []
    container_name: k7-server
    depends_on:
      postgres:
        condition: service_healthy
        required: true
    deploy:
      resources:
        limits:
          memory:
          cpus: "1.00"
        reservations:
          memory: 256MB
          cpus: "0.00"
      placement: {}
    devices:
      - /dev/dri:/dev/dri
    entrypoint: null
    environment:
      Database__Name: K7
      Database__Password: zima
      Database__Port: "5432"
      Database__Provider: Postgres
      Database__Server: postgres
      Database__UserID: postgres
      K7_SETUP_TOKEN: i0HUpw9nOuSIH0PTqLz4xmQlBzB4ARwn
      PGID: "1000"
      PUID: "999"
      Paths__Config: /data/config
      Paths__Logs: /data/logs
      Paths__Metadatas: /data/metadatas
      Paths__Transcoding: /data/transcoding
      Security__ApiKeys__HashSecret: kVvjBYelv18zKP5mN2xvY07TgAyshdhC
      Security__ForceHttps: "false"
    hostname: k7-server
    healthcheck:
      test:
        - CMD
        - curl
        - -fsS
        - http://127.0.0.1:7080/health
      timeout: 5s
      interval: 30s
      retries: 3
      start_period: 40s
    image: ghcr.io/kaybi-gh/k7:latest
    labels:
      icon: https://raw.githubusercontent.com/kaybi-gh/K7/d917bc217f5c1a85e03a9291d0d62ddf93ac158f/branding/logo.svg
    networks:
      - k7-server
    ports:
      - mode: ingress
        target: 7080
        published: "7080"
        protocol: tcp
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    volumes:
      - type: bind
        source: /DATA/AppData/k7/data
        target: /data
      - type: bind
        source: /media/MEDIAS
        target: /media
  postgres:
    cpu_shares: 90
    command: []
    container_name: k7-postgres
    deploy:
      resources:
        limits:
          memory: 3.76GB
          cpus: "1.00"
        reservations:
          memory: 256MB
          cpus: "0.00"
      placement: {}
    entrypoint: null
    environment:
      POSTGRES_DB: K7
      POSTGRES_PASSWORD: zima
      POSTGRES_USER: postgres
    hostname: k7-postgres
    healthcheck:
      test:
        - CMD-SHELL
        - pg_isready -U postgres
      timeout: 3s
      interval: 5s
      retries: 5
    image: postgres:17-alpine@sha256:742f40ea20b9ff2ff31db5458d127452988a2164df9e17441e191f3b72252193
    labels:
      icon: https://raw.githubusercontent.com/kaybi-gh/K7/d917bc217f5c1a85e03a9291d0d62ddf93ac158f/branding/logo.svg
    networks:
      - k7-server
    ports:
      - mode: ingress
        host_ip: 127.0.0.1
        target: 5432
        published: "5432"
        protocol: tcp
    restart: unless-stopped
    security_opt:
      - no-new-privileges:true
    volumes:
      - type: bind
        source: /DATA/AppData/k7/postgres-data
        target: /var/lib/postgresql/data
        bind:
          create_host_path: true
x-casaos:
  author: self
  category: self
  hostname:
  icon: https://raw.githubusercontent.com/kaybi-gh/K7/d917bc217f5c1a85e03a9291d0d62ddf93ac158f/branding/logo.svg
  index: /
  is_uncontrolled: false
  main: k7-server
  port_map: "7080"
  scheme: http
  store_app_id: k7
  title:
    custom: K7
x-default-restart-security:
  restart: unless-stopped
  security_opt:
    - no-new-privileges:true
name: k7_server

1.4. Paramètres de K7 Server​

Sur l'onglet k7-server

1. Au niveau de Volumes

Liez le(s) Volume(s) et/ou dossier(s), en local (ou sur une machine externe), ou sont stockés vos médias
(en cliquant sur l'icône dossier). Indiquez face aux lignes de montage l'indication du type de média ou thématique dans la colonne "Conteneur" avec le signe "/" devant. Par exemple : /video ou /films ou /musique etc.

2. Au niveau de Environnement / Variables

Générez
sur la page de ce lien deux clés. Puis, remplacez par vos propres clés sur les lignes :

K7_SETUP_TOKEN et Security__ApiKeys__HashSecret

Copier-coller sur un bloc-note le K7_SETUP_TOKEN, vous en aurez besoin pour la première connexion.

Indiquez aussi vos PGID et PUID (autorisation d'accès aux dossiers médias).

1787762861415.png

En dépliant la console avec le curseur "Avancé (Afficher plus)", vous pouvez si vous le souhaitez augmenter la mémoire maximale allouée.

Cependant, vous pouvez laisser le réglage par défaut afin de ne pas monopoliser les ressources matérielles.

1.5. Cliquez sur Installer et patientez le temps de l’installation.

Puis, cliquez sur la nouvelle tuile créée pour ouvrir une nouvelle page web.

Si vous avez installé et activé ZFW, créez une règle pour le port 7080 (si vous n'utilisez pas le Proxy Inversé).


2. Interface Web​

Sur la nouvelle page web de K7, créez votre Compte Administrateur en remplissant les champs Nom et Mot de passe. Puis, pour finir copier-coller le K7_SETUP_TOKEN créé au point 1.4.

1787763064917.png


Pour provisionner et peupler vos bibliothèques, cliquez sur le bouton central "Configurer les bibliothèques".
Ce raccourci vous dirige directement dans la section Administration ⇾ Contenu ⇾ Bibliothèque.
Cliquez sur le bouton, en haut à droite : + Nouvelle librairie et sélectionnez le type de librairie et, Suivant
Complétez et personnalisez la fiche de la bibliothèque que vous allez choisir.

1787763158899.png


Cliquez à présent sur la fenêtre "Chemin du dossier". Et, sélectionnez parmi les dossiers ou volumes dont vous avez personnalisé le chemin à l'étape 1.4, le répertoire choisi. Pour cette démo, nous retrouvons les chemins personnalisés : /series, /films et /musique.

Puis, cliquez sur Suivant.

1787763200339.png

Vérifiez l'ensemble des informations (vous pouvez encore revenir en arrière) et Créer la librairie.
Revenez, à présent sur l'onglet Accueil et patientez le temps de... et, profitez de K7.

1787763278823.png
 
Dernière édition:
  • J'aime
  • J'adore
Réactions: Titux et Kaybi