Ajout du readme install

This commit is contained in:
Grizouille
2025-11-10 13:54:35 +01:00
parent 5b126f3a5e
commit a78e200ea1
2 changed files with 171 additions and 37 deletions

192
README.md
View File

@@ -16,11 +16,170 @@ Les téléchargement sont directement accessible des **Fichiers** de Nextcloud.
## 🔧 Modifications apportées par rapport au dépôt original ## 🔧 Modifications apportées par rapport au dépôt original
* 🔐 Utilisation du **JWT de Nextcloud** pour obtenir les informations didentification de lutilisateur connecté. * 🔐 Utilisation du **JWT de Nextcloud** pour obtenir les informations didentification de lutilisateur connecté.
* 📂 Téléchargement des fichiers dans le **dossier personnel** de lutilisateur connecté, dans un répertoire créé à la racine : `DeezerDl`. * 📂 Téléchargement des fichiers dans le **dossier personnel** de lutilisateur connecté, dans un répertoire créé à la racine : `Music/DeezerDl`.
* 🍪 Utilisation dun **cookie** pour sauvegarder le répertoire de destination choisi par lutilisateur.
* 🚫 Vérification de la **connexion à Nextcloud** : si non connecté → retour **403 Forbidden**. * 🚫 Vérification de la **connexion à Nextcloud** : si non connecté → retour **403 Forbidden**.
## Dev sous windows (vsCode):
# Installation sur NextCloud (Debian 12)
## Dans le container DeezerDownloader
### Mettre à jour le container
```
apt update
apt upgrade
```
### Créer le point de montage où son stoké les données Nextcloud.
J'ai créé un point de montage directement vers les fichiers de nextcloud:
`mp0: /Data/NAS/nextcloud/data_directory/data/,mp=/nextcloud_user_data`
### Créer un utilisateur `www-data` pour faire tourner le service.
Verifier si deja existant: `id www-data`
Si vous obtenez des informations sur lutilisateur et le groupe, il existe déjà.
Sinon, vous aurez un message du type no such user.
Créer lutilisateur et le groupe `www-data`:
```
groupadd www-data
useradd -r -s /usr/sbin/nologin -g www-data www-data
```
### Donner à l'utilisateur `www-data` le meme `uid` user et group que celui de `www-data` du contenair Nextcloud.
```
ls -ln /nextcloud_user_data/
> drwxr-xr-x 5 100033 100033 5 Oct 19 14:57 Parent
```
`100033 100033` est l uid et le gid
```
usermod -u 100033 www-data
groupmod -g 100033 www-data
```
Résultat:
`id www-data
uid=100033(www-data) gid=100033(www-data) groups=100033(www-data)`
### Installer `python` et le `venv`
```
apt install -y python3 python3-venv python3-pip sudo ffmpeg
```
Créer le `venv` pour `www-data`
```
mkdir -p /var/www/venv
chown www-data:www-data /var/www/venv
chmod 750 /var/www/venv
sudo -u www-data python3 -m venv /var/www/venv
sudo -u www-data bash
source /var/www/venv/bin/activate
python --version
pip --version
deactivate
```
**Pour désactiver le venv** `deactivate`
### Installer le site DeezerDownloader
```
sudo mkdir -p /var/www/app
sudo chown www-data:www-data /var/www/app
apt install git
sudo -u www-data git clone -b cleanAndCustom --single-branch https://git.bonisco.fr/Grizouille/Deezer-Downloader-Nextcloud.git /var/www/app
```
#### Installer les dépandences:
```
sudo -u www-data /var/www/venv/bin/pip install /var/www/app
sudo -u www-data /var/www/venv/bin/pip install yt-dlp
sudo -u www-data /var/www/venv/bin/pip install paramiko
sudo -u www-data /var/www/venv/bin/pip install PyJWT
```
#### Ajouter le fichier de config
```
sudo -u www-data bash
source /var/www/venv/bin/activate
deezer-downloader --show-config-template > /var/www/app/config.ini
deactivate
```
Rester sous `www-data` et aller éditer le fichier `config.ini`, les explication son à l'interieur...
### Créer le service pour qu'il soit autonome
```
nano /etc/systemd/system/deezer_downloader.service
[Unit]
Description=Deezer Downloader Service
After=network.target
[Service]
# Répertoire de travail (là où est ton config.ini)
WorkingDirectory=/var/www/app
# Commande de lancement (binaire du venv)
ExecStart=/var/www/venv/bin/deezer-downloader --config /var/www/app/config.ini
# Redémarrage automatique en cas derreur
Restart=on-failure
# Exécution sous root (puisque ton venv est dans /root)
User=www-data
Group=www-data
# Variables denvironnement
Environment="PATH=/var/www/venv/bin:/usr/bin"
Environment=PYTHONUNBUFFERED=1
[Install]
WantedBy=multi-user.target
```
Puis l'activer et le lancer:
```
sudo systemctl daemon-reload
sudo systemctl enable deezer_downloader.service
sudo systemctl start deezer_downloader.service
sudo journalctl -u deezer_downloader.service -f
```
### Configurer les settings
Dans le container nextcloud:
```
adduser nextclouddeezer
apt install sudo
nano visudo
```
ajouter en fin de fichier la ligne:
```
nextclouddeezer ALL=(www-data) NOPASSWD: /usr/bin/php
```
cela permet d'executer des command php avec l'utilisateur `nextclouddeezer`
Dans le confg.ini dans la container deezer-dowloader, ajouter le mdp de l'utilisateur ue vous venez de dréer.
# Dev sous windows (vsCode):
Pour que powershell accepte d'exécuter des scripts: Pour que powershell accepte d'exécuter des scripts:
``` ```
@@ -44,29 +203,4 @@ poetry run deezer-downloader --show-config-template > settings.ini
run du srv en ligne de cmd: run du srv en ligne de cmd:
``` ```
poetry run deezer-downloader --config .\deezer_downloader\settings.ini poetry run deezer-downloader --config .\deezer_downloader\settings.ini
``` ```
# Installation sur NextCloud (Debian 12)
Dans le container nextcloud:
```
adduser nextclouddeezer
```
installer `sudo`, puis taper `visudo`,
ajouter en fin de fichier la ligne:
```
nextclouddeezer ALL=(www-data) NOPASSWD: /usr/bin/php
```
cela permet d'executer des command php avec l'utilisateur `nextclouddeezer`
Dans le container DeezerDownloader
* Créer le point de montage où son stoké les données Nextcloud.
* Créer un utilisateur `www-data` pour faire tourner le service.
* Donner à l'utilisateur `www-data` le meme `uid` user et group que celui de `www-data` du contenair Nextcloud.
* `ls -ln /nextcloud_user_data/`
* Installer `python` et le `venv`
* Installer le site DeezerDownloader
* Créer le service pour qu'il soit autonome
* Configurer les settings

View File

@@ -10,13 +10,13 @@ port = 6600
music_dir_root = /tmp/deezer-downloader music_dir_root = /tmp/deezer-downloader
[download_dirs] [download_dirs]
base = /tmp/deezer-downloader base = /nextcloud_user_data
songs = %(base)s/songs songs = %(base)s/{uid}/files/Music/DeezerDl/songs
albums = %(base)s/albums albums = %(base)s/{uid}/files/Music/DeezerDl/albums
zips = %(base)s/zips zips = %(base)s/{uid}/files/Music/DeezerDl/zips
playlists = %(base)s/playlists playlists = %(base)s/{uid}/files/Music/DeezerDl/playlists
youtubedl = %(base)s/youtube-dl youtubedl = %(base)s/{uid}/files/Music/DeezerDl/youtube-dl
[debug] [debug]
; debug output used for /debug ; debug output used for /debug
@@ -54,7 +54,7 @@ quality = mp3
[youtubedl] [youtubedl]
; you are responsible for keeping yt-dlp up-to-date (https://github.com/yt-dlp/yt-dlp) ; you are responsible for keeping yt-dlp up-to-date (https://github.com/yt-dlp/yt-dlp)
; command = /home/kmille/projects/deezer-downloader/app/venv/bin/yt-dlp ; command = /home/kmille/projects/deezer-downloader/app/venv/bin/yt-dlp
command = /usr/bin/yt-dlp command = /var/www/venv/bin/yt-dlp
[nextcloud] [nextcloud]
@@ -73,7 +73,7 @@ port = 22
; username ssh nextcloud server ; username ssh nextcloud server
username = nextclouddeezer username = nextclouddeezer
; password ssh nextcloud server ; password ssh nextcloud server
password = Q8QbqQru3hRc16vK password = dqflfgkfgmvgv615vs
; occ path nextcloud server ; occ path nextcloud server
occ_path = /var/www/nextcloud/occ occ_path = /var/www/nextcloud/occ