
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 :
Bonjour à tous!
Ce sujet a juste pour but de vous présenter K7, mon projet gratuit et open-source que j'ai entamé il y a un peu plus de 3 ans maintenant!

Avant de commencer ce projet, j'étais un simple utilisateur/administrateur de Plex, puis de Jellyfin mais j'ai toujours été frustré sur pas mal de points..
Côté Plex l'aspect pas entièrement selfhosté et pas open-source était déjà compliqué à accepter pour moi mais j'avais du mal à m'en séparer car à l'époque l'UI et l'UX étaient, il faut bien le reconnaitre, au dessus de Jellyfin. Mais avec les différentes directions...
Ce sujet a juste pour but de vous présenter K7, mon projet gratuit et open-source que j'ai entamé il y a un peu plus de 3 ans maintenant!

Avant de commencer ce projet, j'étais un simple utilisateur/administrateur de Plex, puis de Jellyfin mais j'ai toujours été frustré sur pas mal de points..
Côté Plex l'aspect pas entièrement selfhosté et pas open-source était déjà compliqué à accepter pour moi mais j'avais du mal à m'en séparer car à l'époque l'UI et l'UX étaient, il faut bien le reconnaitre, au dessus de Jellyfin. Mais avec les différentes directions...
- Kaybi
- Réponses: 119
- Forum: Le Bistrot
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, Serveur Médias - YAPASDEBUG
yapasdebug.bzh
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-server1. 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).

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

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.

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.

Dernière édition: