Ajout du readme install
This commit is contained in:
190
README.md
190
README.md
@@ -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 d’identification de l’utilisateur connecté.
|
* 🔐 Utilisation du **JWT de Nextcloud** pour obtenir les informations d’identification de l’utilisateur connecté.
|
||||||
* 📂 Téléchargement des fichiers dans le **dossier personnel** de l’utilisateur connecté, dans un répertoire créé à la racine : `DeezerDl`.
|
* 📂 Téléchargement des fichiers dans le **dossier personnel** de l’utilisateur connecté, dans un répertoire créé à la racine : `Music/DeezerDl`.
|
||||||
* 🍪 Utilisation d’un **cookie** pour sauvegarder le répertoire de destination choisi par l’utilisateur.
|
|
||||||
* 🚫 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 l’utilisateur et le groupe, il existe déjà.
|
||||||
|
Sinon, vous aurez un message du type no such user.
|
||||||
|
|
||||||
|
Créer l’utilisateur 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 d’erreur
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
# Exécution sous root (puisque ton venv est dans /root)
|
||||||
|
User=www-data
|
||||||
|
Group=www-data
|
||||||
|
|
||||||
|
# Variables d’environnement
|
||||||
|
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:
|
||||||
```
|
```
|
||||||
@@ -45,28 +204,3 @@ 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
|
|
||||||
@@ -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
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user