Qnap [Tuto] Installation de Photoview + MariaDB en Docker sur un NAS QNAP ( Container Station )

EVO

Administreur
Membre du personnel
25 Novembre 2019
8 232
1 577
278
/var/run/docker.sock
[Tuto] Installation de Photoview + MariaDB en Docker sur un NAS QNAP ( Container Station )

Photoview, c'est quoi ?
X

MariaDB, c'est quoi ?
Le serveur MariaDB est l'un des serveurs de bases de données les plus populaires au monde. Il a été conçu par les développeurs originaux de MySQL et garantit le maintien de l'open source. Plus d'info sur le site officiel : mariadb.org
Note : Pour le déploiement de MariaDB dans ce tutoriel, nous allons utiliser l'image linuxserver/mariadb.

Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...

Pré-requis :
- Un NAS QNAP compatible avec Container Station ( [Mémo] Installation de Container Station sur un NAS QNAP )
- Cette stack est compatible avec les CPUs de type : AMD64, ARM64v8, ARMv7
- Accès en SSH à son NAS QNAP


Sommaire :
1/ Récupération de l'ID de votre utilisateur
2/ Création des conteneurs
3/ Accès a Photoview



1/ Récupération de l'ID de votre utilisateur
Utiliser ce tuto pour vous connecter en SSH a votre NAS QNAP : [Tuto] Se connecter à son NAS QNAP par SSH

Récupérer l'ID de votre utilisateur : [Mémo] Connaitre le PUID / PGID d'un utilisateur sur un NAS QNAP




2/ Création des conteneurs
Dans la fenêtre de création d'application :
- Indiquer le nom de l'application ( au choix ), dans mon cas j'indique "photoview_mariadb".
- Le code YAML :

YAML:
version: "3"

services:
  photoview:
    image: viktorstrate/photoview:2
    restart: always
    ports:
      - "8000:80"
    depends_on:
      db:
        condition: service_healthy
    environment:
      - PHOTOVIEW_DATABASE_DRIVER=mysql
      - PHOTOVIEW_MYSQL_URL=photoview:examplepass@tcp(db)/photoview
      - PHOTOVIEW_LISTEN_IP=photoview
      - PHOTOVIEW_LISTEN_PORT=80
      - PHOTOVIEW_MEDIA_CACHE=/app/cache
      
      # Optional: If you are using Samba/CIFS-Share and experience problems with "directory not found"
      # Enable the following Godebug
      # - GODEBUG=asyncpreemptoff=1

      # Optional: To enable map related features, you need to create a mapbox token.
      # A token can be generated for free here https://account.mapbox.com/access-tokens/
      # It's a good idea to limit the scope of the token to your own domain, to prevent others from using it.
      # - MAPBOX_TOKEN=<YOUR TOKEN HERE>
    volumes:
      - api_cache:/app/cache
      - /share/Multimedia:/photos:ro

  db:
    image: lscr.io/linuxserver/mariadb:latest
    restart: always
    environment:
      PUID: 1000
      PGID: 100
      TZ: Europe/Paris
      MYSQL_ROOT_PASSWORD: ROOT_ACCESS_PASSWORD
      MYSQL_DATABASE: photoview
      MYSQL_USER: photoview
      MYSQL_PASSWORD: examplepass
    volumes:
      - /share/Container/photoview_mariadb:/config
    healthcheck:
      test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
      start_period: 15s
      interval: 60s
      timeout: 10s
      retries: 3

volumes:
  api_cache:

Dans ce code, il y a plusieurs choses a modifier :

Tout d’abord, le lieu de stockage des fichiers, j'ai choisi de tout placer dans un dossier "photoview_mariadb" dans le dossier partagé "Container" par défaut de Container Station. Mais vous pouvez le changer si vous le souhaitez :
- /share/Container/[SIZE=5]photoview_mariadb[/SIZE]:/config, dans cette ligne modifier la 1ere partie avant les : pour que cela correspond au chemin absolu vers le répertoire ou vous souhaitez stocker la configuration de MariaDB.

Nous allons aussi indiquer a Photoview, ou se trouve nos Photos :
- share/Multimedia[/SIZE]:/photos:ro, dans cette ligne modifier la 1ere partie avant les : pour que cela correspond au chemin absolu vers le répertoire ouce trouve les photos pour Photoview. Par défaut : /share/Multimedia[/SPOILER]

Nous allons reporter le PUID et PGUID retrouvez lors de l'étape 1 du tutoriel.
Dans la ligne :
- PUID=1000 remplacer 1000 pour le PUID trouvé au point 1.
- PGID=100 remplacer 100 pour le PGID trouvé au point 1.

A deux endroits dans le compose, nous allons retrouver : examplepass
- A la place de examplepass, choisissez un mot de passe pour la base de donnée, est remplacer au deux endroits du compose par le mot de passe voulu. ( 1 fois dans la ligne [SIZE=5]MYSQL_PASSWORD: examplepass , et une fois dans la ligne PHOTOVIEW_MYSQL_URL=photoview:examplepass@tcp(db)/photoview[ICODE] ) Dernière étape de personnalisation du compose ! Modifier dans le compose [ICODE]ROOT_ACCESS_PASSWORD par un mot de passe de votre choix, cela sera le mot de passe "root" de la base de données.

et on clique sur créer pour lancer la création du conteneur !

Container Station va en 1er télécharger les images des conteneurs, puis créer la DB, ensuite il va attendre que la DB soit "ok", et lancer Photoview ( cela peut prendre quelques minutes ).

Dans l'onglet présentation que l'état est "vert", notre stack est en fonctionnement !




3/ Accès a Photoview
Depuis votre navigateur, il vous suffit maintenant de taper l'adresse ip de votre NAS suivi du port 8000 pour se connecter a l'interface Web de Photoview.
Exemple : Si l'ip de votre NAS est 192.168.0.20 alors l'adresse est http://192.168.0.20:8000

Lors du 1er acces, il vous est demandé de choisir un nom d'utilisateur est un mot de passe. Aussi pour le chemin vers les photos, vous devez indiquer : /photos




2023-12-28 - Création
 
Dernière édition:
  • J'adore
  • J'aime
Réactions: Fabwiss et FX Cachem
Bonjour
Je t’ai déjà remercié ailleurs mais je tiens également à le faire ici même. Merci beaucoup pour ce tuto qualitatif. Comme d’habitude.

Fabwiss.
 
  • J'aime
Réactions: EVO
Hello @EVO,

Petite question stp.
Si je souhaite modifier le répertoire photos share/Multimedia[/SIZE]:/photos:ro ou en ajouter d'autres, j'opère comment stp ?
Bien entendu, le container est déjà créé et l'application fonctionne mais j'avais renseigné juste un répertoire de test. A présent je souhaite scanner des plus gros répertoires photos.

Fabwiss.
 
Salut,
je n'utilise pas photowiew, donc je peux pas te confirmer le fonctionnement mais photoviews indique : https://github.com/photoview/photoview/blob/master/docker-compose.example.yml

1704020419516.png

Donc pour moi, pas de soucis a avoir plusieurs dossiers sous la forme par exemple :

Code:
[...]
    volumes:
      - api_cache:/app/cache
      - /share/Multimedia:/photos:ro
      - /share/FX:/photos_fx:ro
      - /share/Miles:/photos_miles:ro
[...]

je suppose que apres dans les settings de l'applications tu dois pouvoir déclarer : /photos_fx et /photos_miles comme des dossiers "a surveiller"
 
Salut @EVO
Merci pour ce retour mais pour une application déjà installé ?
Du coup, je modifie le fichier docker et je relance ?
Il ne fera qu'à mettre à jour l'application en y ajoutant les nouveaux dossiers à scanner ?

Fabwiss.