first commit
This commit is contained in:
commit
73943d33b6
111
README.md
Normal file
111
README.md
Normal file
@ -0,0 +1,111 @@
|
|||||||
|
# Streaming services
|
||||||
|
|
||||||
|
Automatise l'installation d'un setup jellyfin + sonarr/radarr
|
||||||
|
|
||||||
|
## Dependences :
|
||||||
|
- curl
|
||||||
|
- jq
|
||||||
|
- sed
|
||||||
|
|
||||||
|
## Installation :
|
||||||
|
|
||||||
|
1. Changer les paramettres dans `install.sh`
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Username for all paramettrable services
|
||||||
|
# You will use this username to connect to sonarr/radarr/etc
|
||||||
|
|
||||||
|
GLOBAL_USER="A_user_name"
|
||||||
|
|
||||||
|
# If you want a different username for each services
|
||||||
|
SONARR_USER=$GLOBAL_USER
|
||||||
|
RADARR_USER=$GLOBAL_USER
|
||||||
|
PROWLARR_USER=$GLOBAL_USER
|
||||||
|
TRANSMISSION_USER=$GLOBAL_USER
|
||||||
|
|
||||||
|
# Passwords
|
||||||
|
SONARR_PASSWORD="a very secure password"
|
||||||
|
RADARR_PASSWORD="so secure any hacker would"
|
||||||
|
PROWLARR_PASSWORD="have to social engineer it"
|
||||||
|
TRANSMISSION_PASSWORD="in order to get it"
|
||||||
|
|
||||||
|
# ! MAKE SURE THE USER RUNNING THIS SCRIPT CAN READ
|
||||||
|
# **AND** WRITE TO THE FOLDERS YOU WRITE
|
||||||
|
|
||||||
|
# Main Folders
|
||||||
|
SERIES_PATH="path/to/series"
|
||||||
|
FILM_PATH="path/to/films"
|
||||||
|
|
||||||
|
# Config Folder
|
||||||
|
DOWNLOAD_FOLDER="path/to/downloads"
|
||||||
|
SONARR_CONFIG="path/to/config/sonarr"
|
||||||
|
RADARR_CONFIG="path/to/config/radarr"
|
||||||
|
PROWLARR_CONFIG="path/to/config/prowlarr"
|
||||||
|
TRANSMISSION_CONFIG="path/to/config/transmission"
|
||||||
|
JELLYSEERR_CONFIG="path/to/config/jellyseerr"
|
||||||
|
JELLYFIN_CONFIG="path/to/config/jellyfin"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
2. lancer install.sh et laisser la magie operer .w.
|
||||||
|
|
||||||
|
## Post install
|
||||||
|
|
||||||
|
### Configurer Jellyfin
|
||||||
|
|
||||||
|
Le premier service a check est jellyfin :
|
||||||
|
|
||||||
|
- go a [http://localhost:8096](http://localhost:8096)
|
||||||
|
- Creer un compte
|
||||||
|
- Creer deux mediatheques :
|
||||||
|
- un pour les films avec le dossier : /movies
|
||||||
|
- un pour les series avec le dossier : /tvshows
|
||||||
|
- Change le reste comme ca te plait
|
||||||
|
- Enjoy
|
||||||
|
|
||||||
|
### Configurer Jellyseerr
|
||||||
|
|
||||||
|
- go a [http://localhost:5055](http:localhost:8096)
|
||||||
|
- Connecte toi avec Jellyfin
|
||||||
|
- ip de jellyfin `http://jellyfin:8096`
|
||||||
|
- addresse email : met ce que tu veux, ca a pas besoin d'exister genre a@b.fr
|
||||||
|
- username et password de jellyfin, ceux que t'as Creer
|
||||||
|
- Ajoute les mediatheques de jellyfin
|
||||||
|
- Clique sur sync et coche les deux mediatheques
|
||||||
|
- Ajoute Sonarr et Radarr
|
||||||
|
- Radarr
|
||||||
|
- Default server : True
|
||||||
|
- Name : Radarr
|
||||||
|
- hostname : http://radarr
|
||||||
|
- api key : Check dans post_install.md
|
||||||
|
- root folder : /movies
|
||||||
|
- Sonarr
|
||||||
|
- Default server : True
|
||||||
|
- Name : Sonarr
|
||||||
|
- hostname : http://sonarr
|
||||||
|
- api key : Check dans post_install.md
|
||||||
|
- root folder : /tv
|
||||||
|
- je te laisse utiliser ton cerveau pour le reste
|
||||||
|
- Enjoy
|
||||||
|
|
||||||
|
## Commandes utiles
|
||||||
|
|
||||||
|
- recup la cle api sans passer par la web ui de radarr/sonarr/prowlarr
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker exec -it [radarr/sonarr/prowlarr] cat /config/config.xml | grep ApiKey | cut -d'>' -f2
|
||||||
|
```
|
||||||
|
|
||||||
|
## Services
|
||||||
|
|
||||||
|
Streaming des videos -> Jellyfin : http://localhost:8096
|
||||||
|
|
||||||
|
Rerchercher et Ajouter -> Jellyseerr : http://localhost:5055
|
||||||
|
|
||||||
|
Gerer les films -> Radarr http://localhost:7878
|
||||||
|
|
||||||
|
Gerer les series -> Sonarr : http://localhost:8989
|
||||||
|
|
||||||
|
Rerchercher sur les sites de torrents -> Prowlarr : http://localhost:9696
|
||||||
|
|
||||||
|
Telecharger -> Transmission : http://localhost:9091
|
113
base.yml
Normal file
113
base.yml
Normal file
@ -0,0 +1,113 @@
|
|||||||
|
version: "3.0"
|
||||||
|
services:
|
||||||
|
prowlarr:
|
||||||
|
image: lscr.io/linuxserver/prowlarr:latest
|
||||||
|
container_name: prowlarr
|
||||||
|
environment:
|
||||||
|
- PUID=USER_ID
|
||||||
|
- PGID=GROUP_ID
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- PROWLARR_CONFIG:/config
|
||||||
|
ports:
|
||||||
|
- 9696:9696
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
sonarr:
|
||||||
|
image: lscr.io/linuxserver/sonarr:latest
|
||||||
|
container_name: sonarr
|
||||||
|
environment:
|
||||||
|
- PUID=USER_ID
|
||||||
|
- PGID=GROUP_ID
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- SONARR_CONFIG:/config
|
||||||
|
- SERIES_PATH:/tv
|
||||||
|
- DOWNLOAD_FOLDER:/downloads
|
||||||
|
ports:
|
||||||
|
- 8989:8989
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
radarr:
|
||||||
|
image: lscr.io/linuxserver/radarr:latest
|
||||||
|
container_name: radarr
|
||||||
|
environment:
|
||||||
|
- PUID=USER_ID
|
||||||
|
- PGID=GROUP_ID
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
volumes:
|
||||||
|
- RADARR_CONFIG:/config
|
||||||
|
- FILM_PATH:/movies
|
||||||
|
- DOWNLOAD_FOLDER:/downloads
|
||||||
|
ports:
|
||||||
|
- 7878:7878
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
transmission:
|
||||||
|
image: lscr.io/linuxserver/transmission:latest
|
||||||
|
container_name: transmission
|
||||||
|
environment:
|
||||||
|
- PUID=USER_ID
|
||||||
|
- PGID=GROUP_ID
|
||||||
|
- TZ=Etc/UTC
|
||||||
|
- TRANSMISSION_WEB_HOME= #optional
|
||||||
|
- USER=TRANSMISSION_USER
|
||||||
|
- PASS=TRANSMISSION_PASSWORD
|
||||||
|
- WHITELIST= #optional
|
||||||
|
- PEERPORT= #optional
|
||||||
|
- HOST_WHITELIST= #optional
|
||||||
|
volumes:
|
||||||
|
- TRANSMISSION_CONFIG:/config
|
||||||
|
- DOWNLOAD_FOLDER:/downloads
|
||||||
|
ports:
|
||||||
|
- 9091:9091
|
||||||
|
- 51413:51413
|
||||||
|
- 51413:51413/udp
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
jellyfin:
|
||||||
|
image: lscr.io/linuxserver/jellyfin:latest
|
||||||
|
container_name: jellyfin
|
||||||
|
environment:
|
||||||
|
- PUID=USER_ID
|
||||||
|
- PGID=GROUP_ID
|
||||||
|
- TZ=Europe/Paris
|
||||||
|
#- NVIDIA_VISIBLE_DEVICES=all
|
||||||
|
volumes:
|
||||||
|
- JELLYFIN_CONFIG:/config
|
||||||
|
- SERIES_PATH:/data/tvshows
|
||||||
|
- FILM_PATH:/data/movies
|
||||||
|
ports:
|
||||||
|
- 8096:8096
|
||||||
|
- 8920:8920 #optional
|
||||||
|
- 7359:7359/udp #optional
|
||||||
|
- 1900:1900/udp #optional
|
||||||
|
restart: unless-stopped
|
||||||
|
#runtime: nvidia
|
||||||
|
#deploy:
|
||||||
|
#resources:
|
||||||
|
#reservations:
|
||||||
|
#devices:
|
||||||
|
#- capabilities: [gpu]
|
||||||
|
|
||||||
|
jellyseerr:
|
||||||
|
image: fallenbagel/jellyseerr:latest
|
||||||
|
container_name: jellyseerr
|
||||||
|
environment:
|
||||||
|
- LOG_LEVEL=debug
|
||||||
|
- TZ=Europe/Paris
|
||||||
|
- PORT=5055 #optional
|
||||||
|
ports:
|
||||||
|
- 5055:5055
|
||||||
|
volumes:
|
||||||
|
- JELLYSEERR_CONFIG:/app/config
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
flaresolverr:
|
||||||
|
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||||
|
container_name: flaresolverr
|
||||||
|
environment:
|
||||||
|
- LOG_LEVEL=info
|
||||||
|
ports:
|
||||||
|
- 8191:8191
|
||||||
|
restart: unless-stopped
|
350
install.sh
Executable file
350
install.sh
Executable file
@ -0,0 +1,350 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
## User config
|
||||||
|
|
||||||
|
# Username for all paramettrable services
|
||||||
|
# You will use this username to connect to sonarr/radarr/etc
|
||||||
|
GLOBAL_USER="A_user_name"
|
||||||
|
|
||||||
|
# If you want a different username for each services
|
||||||
|
SONARR_USER=$GLOBAL_USER
|
||||||
|
RADARR_USER=$GLOBAL_USER
|
||||||
|
PROWLARR_USER=$GLOBAL_USER
|
||||||
|
TRANSMISSION_USER=$GLOBAL_USER
|
||||||
|
|
||||||
|
#Passwords
|
||||||
|
SONARR_PASSWORD="a very secure password"
|
||||||
|
RADARR_PASSWORD="so secure any hacker would"
|
||||||
|
PROWLARR_PASSWORD="have to social engineer it"
|
||||||
|
TRANSMISSION_PASSWORD="in order to get it"
|
||||||
|
|
||||||
|
# ! MAKE SURE THE USER RUNNING THIS SCRIPT CAN READ
|
||||||
|
# **AND** WRITE TO THE FOLDERS YOU WRITE
|
||||||
|
|
||||||
|
# Main Folder
|
||||||
|
SERIES_PATH="path/to/series"
|
||||||
|
FILM_PATH="path/to/films"
|
||||||
|
|
||||||
|
# Config Folder
|
||||||
|
DOWNLOAD_FOLDER="path/to/downloads"
|
||||||
|
SONARR_CONFIG="path/to/config/sonarr"
|
||||||
|
RADARR_CONFIG="path/to/config/radarr"
|
||||||
|
PROWLARR_CONFIG="path/to/config/prowlarr"
|
||||||
|
TRANSMISSION_CONFIG="path/to/config/transmission"
|
||||||
|
JELLYSEERR_CONFIG="path/to/config/jellyseerr"
|
||||||
|
JELLYFIN_CONFIG="path/to/config/jellyfin"
|
||||||
|
|
||||||
|
|
||||||
|
######################
|
||||||
|
#
|
||||||
|
# End of parameters
|
||||||
|
#
|
||||||
|
######################
|
||||||
|
|
||||||
|
|
||||||
|
## Creations des dossiers
|
||||||
|
|
||||||
|
echo "Creating folder : $SERIES_PATH"
|
||||||
|
mkdir -p "$SERIES_PATH"
|
||||||
|
|
||||||
|
echo "Creating folder : $FILM_PATH"
|
||||||
|
mkdir -p "$FILM_PATH"
|
||||||
|
|
||||||
|
echo "Creating folder : $DOWNLOAD_FOLDER"
|
||||||
|
mkdir -p "$DOWNLOAD_FOLDER"
|
||||||
|
|
||||||
|
echo "Creating folder : $SONARR_CONFIG"
|
||||||
|
mkdir -p "$SONARR_CONFIG"
|
||||||
|
|
||||||
|
echo "Creating folder : $RADARR_CONFIG"
|
||||||
|
mkdir -p "$RADARR_CONFIG"
|
||||||
|
|
||||||
|
echo "Creating folder : $PROWLARR_CONFIG"
|
||||||
|
mkdir -p "$PROWLARR_CONFIG"
|
||||||
|
|
||||||
|
echo "Creating folder : $TRANSMISSION_CONFIG"
|
||||||
|
mkdir -p "$TRANSMISSION_CONFIG"
|
||||||
|
|
||||||
|
echo "Creating folder : $JELLYSEERR_CONFIG"
|
||||||
|
mkdir -p "$JELLYSEERR_CONFIG"
|
||||||
|
|
||||||
|
echo "Creating folder : $JELLYFIN_CONFIG"
|
||||||
|
mkdir -p "$JELLYFIN_CONFIG"
|
||||||
|
|
||||||
|
## patching docker-compose
|
||||||
|
|
||||||
|
echo patching docker-compose
|
||||||
|
|
||||||
|
cp base.yml compose.yml
|
||||||
|
|
||||||
|
USER_ID=$(id -u)
|
||||||
|
GROUP_ID=$(id -g)
|
||||||
|
|
||||||
|
sed -i "s#GLOBAL_USER#$GLOBAL_USER#g" compose.yml
|
||||||
|
|
||||||
|
sed -i "s#USER_ID#$USER_ID#g" compose.yml
|
||||||
|
sed -i "s#GROUP_ID#$GROUP_ID#g" compose.yml
|
||||||
|
|
||||||
|
sed -i "s#SERIES_PATH#$SERIES_PATH#g" compose.yml
|
||||||
|
sed -i "s#FILM_PATH#$FILM_PATH#g" compose.yml
|
||||||
|
|
||||||
|
sed -i "s#DOWNLOAD_FOLDER#$DOWNLOAD_FOLDER#g" compose.yml
|
||||||
|
sed -i "s#SONARR_CONFIG#$SONARR_CONFIG#g" compose.yml
|
||||||
|
sed -i "s#RADARR_CONFIG#$RADARR_CONFIG#g" compose.yml
|
||||||
|
sed -i "s#PROWLARR_CONFIG#$PROWLARR_CONFIG#g" compose.yml
|
||||||
|
sed -i "s#JELLYSEERR_CONFIG#$JELLYSEERR_CONFIG#g" compose.yml
|
||||||
|
sed -i "s#JELLYFIN_CONFIG#$JELLYFIN_CONFIG#g" compose.yml
|
||||||
|
sed -i "s#TRANSMISSION_CONFIG#$TRANSMISSION_CONFIG#g" compose.yml
|
||||||
|
sed -i "s#TRANSMISSION_PASSWORD#$TRANSMISSION_PASSWORD#g" compose.yml
|
||||||
|
sed -i "s#TRANSMISSION_USER#$TRANSMISSION_USER#g" compose.yml
|
||||||
|
|
||||||
|
## Installation de basiquement tout
|
||||||
|
echo docker-compose time .w.
|
||||||
|
docker-compose --file compose.yml up -d
|
||||||
|
|
||||||
|
echo sleep 30 sec to wait for everyone to wake up
|
||||||
|
sleep 30
|
||||||
|
|
||||||
|
# Config de transmission
|
||||||
|
cp ./transmission.json ./temp_transmission.json
|
||||||
|
|
||||||
|
sed -i "s#TRANSMISSION_USER#$TRANSMISSION_USER#g" temp_transmission.json
|
||||||
|
sed -i "s#TRANSMISSION_PASSWORD#$TRANSMISSION_PASSWORD#g" temp_transmission.json
|
||||||
|
|
||||||
|
TEMP_TRANSMISSION_CONFIG=$(cat temp_transmission.json)
|
||||||
|
|
||||||
|
## Config Sonarr
|
||||||
|
|
||||||
|
SONARR_API_KEY=$(docker exec -it sonarr cat /config/config.xml | grep ApiKey | cut -d'>' -f2 | cut -d '<' -f1)
|
||||||
|
|
||||||
|
TEMP_SONARR_CONFIG=$(curl "http://localhost:8989/api/v3/config/host/1?apikey=$SONARR_API_KEY")
|
||||||
|
TEMP_SONARR_CONFIG="$(echo "$TEMP_SONARR_CONFIG" | sed 's/"authenticationMethod.*"/"authenticationMethod": "forms"/g')"
|
||||||
|
TEMP_SONARR_CONFIG="$(echo "$TEMP_SONARR_CONFIG" | sed 's/"username.*"/"username": "'"$SONARR_USER"'"/g')"
|
||||||
|
TEMP_SONARR_CONFIG="$(echo "$TEMP_SONARR_CONFIG" | sed 's/"password":.*"/"password": "'"$SONARR_PASSWORD"'"/g')"
|
||||||
|
TEMP_SONARR_CONFIG="$(echo "$TEMP_SONARR_CONFIG" | sed 's/"passwordConfirmation.*"/"passwordConfirmation": "'"$SONARR_PASSWORD"'"/g')"
|
||||||
|
|
||||||
|
curl --request PUT \
|
||||||
|
--url "http://localhost:8989/api/v3/config/host/1?apikey=$SONARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$TEMP_SONARR_CONFIG"
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:8989/api/v3/rootfolder?apikey=$SONARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data '{
|
||||||
|
"id": 0,
|
||||||
|
"path": "/tv",
|
||||||
|
"accessible": true
|
||||||
|
}'
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:8989/api/v3/downloadclient?apikey=$SONARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$TEMP_TRANSMISSION_CONFIG"
|
||||||
|
|
||||||
|
## Config Radarr
|
||||||
|
TEMP_RADARR_CONFIG=$(docker exec -it radarr cat /config/config.xml)
|
||||||
|
RADARR_API_KEY=$(docker exec -it radarr cat /config/config.xml | grep ApiKey | cut -d'>' -f2 | cut -d '<' -f1)
|
||||||
|
|
||||||
|
TEMP_RADARR_CONFIG=$(curl "http://localhost:7878/api/v3/config/host/1?apikey=$RADARR_API_KEY")
|
||||||
|
TEMP_RADARR_CONFIG="$(echo "$TEMP_RADARR_CONFIG" | sed 's/"authenticationMethod.*"/"authenticationMethod": "forms"/g')"
|
||||||
|
TEMP_RADARR_CONFIG="$(echo "$TEMP_RADARR_CONFIG" | sed 's/"username.*"/"username": "'"$RADARR_USER"'"/g')"
|
||||||
|
TEMP_RADARR_CONFIG="$(echo "$TEMP_RADARR_CONFIG" | sed 's/"password":.*"/"password": "'"$RADARR_PASSWORD"'"/g')"
|
||||||
|
TEMP_RADARR_CONFIG="$(echo "$TEMP_RADARR_CONFIG" | sed 's/"passwordConfirmation.*"/"passwordConfirmation": "'"$RADARR_PASSWORD"'"/g')"
|
||||||
|
|
||||||
|
curl --request PUT \
|
||||||
|
--url "http://localhost:7878/api/v3/config/host/1?apikey=$RADARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$TEMP_RADARR_CONFIG"
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:7878/api/v3/rootfolder?apikey=$RADARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data '{
|
||||||
|
"id": 0,
|
||||||
|
"path": "/movies",
|
||||||
|
"accessible": true
|
||||||
|
}'
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:7878/api/v3/downloadclient?apikey=$RADARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$TEMP_TRANSMISSION_CONFIG"
|
||||||
|
|
||||||
|
## Config Prowlarr
|
||||||
|
TEMP_PROWLARR_CONFIG=$(docker exec -it prowlarr cat /config/config.xml)
|
||||||
|
PROWLARR_API_KEY=$(docker exec -it prowlarr cat /config/config.xml | grep ApiKey | cut -d'>' -f2 | cut -d '<' -f1)
|
||||||
|
|
||||||
|
TEMP_PROWLARR_CONFIG=$(curl "http://localhost:9696/api/v1/config/host/1?apikey=$PROWLARR_API_KEY")
|
||||||
|
TEMP_PROWLARR_CONFIG="$(echo "$TEMP_PROWLARR_CONFIG" | sed 's/"authenticationMethod.*"/"authenticationMethod": "forms"/g')"
|
||||||
|
TEMP_PROWLARR_CONFIG="$(echo "$TEMP_PROWLARR_CONFIG" | sed 's/"username.*"/"username": "'"$PROWLARR_USER"'"/g')"
|
||||||
|
TEMP_PROWLARR_CONFIG="$(echo "$TEMP_PROWLARR_CONFIG" | sed 's/"password":.*"/"password": "'"$PROWLARR_PASSWORD"'"/g')"
|
||||||
|
TEMP_PROWLARR_CONFIG="$(echo "$TEMP_PROWLARR_CONFIG" | sed 's/"passwordConfirmation.*"/"passwordConfirmation": "'"$PROWLARR_PASSWORD"'"/g')"
|
||||||
|
|
||||||
|
curl --request PUT \
|
||||||
|
--url "http://localhost:9696/api/v1/config/host/1?apikey=$PROWLARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$TEMP_PROWLARR_CONFIG"
|
||||||
|
|
||||||
|
cp prowlarr_radarr_app.json temp_prowlarr_radarr_app.json
|
||||||
|
cp prowlarr_sonarr_app.json temp_prowlarr_sonarr_app.json
|
||||||
|
|
||||||
|
sed -i "s/RADARR_API_KEY/$RADARR_API_KEY/g" temp_prowlarr_radarr_app.json
|
||||||
|
sed -i "s/SONARR_API_KEY/$SONARR_API_KEY/g" temp_prowlarr_sonarr_app.json
|
||||||
|
|
||||||
|
RADARR_APP_CONFIG=$(cat temp_prowlarr_radarr_app.json)
|
||||||
|
SONARR_APP_CONFIG=$(cat temp_prowlarr_sonarr_app.json)
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:9696/api/v1/applications?apikey=$PROWLARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$SONARR_APP_CONFIG"
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:9696/api/v1/applications?apikey=$PROWLARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$RADARR_APP_CONFIG"
|
||||||
|
|
||||||
|
## Ajouter flaresolverr
|
||||||
|
|
||||||
|
FLARESOLVERR_PROXY_CONFIG=$(cat prowlarr_flaresolverr.json)
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:9696/api/v1/tag?apikey=$PROWLARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data '{"id": 0,"label": "flaresolverr"}'
|
||||||
|
|
||||||
|
curl --request POST \
|
||||||
|
--url "http://localhost:9696/api/v1/indexerproxy?apikey=$PROWLARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$FLARESOLVERR_PROXY_CONFIG"
|
||||||
|
|
||||||
|
|
||||||
|
## Ajouter des indexers
|
||||||
|
INDEXER_LENGHT=$(cat prowlarr_indexers.json | jq length)
|
||||||
|
INDEXER_LENGHT=$(($INDEXER_LENGHT - 1))
|
||||||
|
echo $INDEXER_LENGHT
|
||||||
|
|
||||||
|
for index in $(eval echo "{0..$INDEXER_LENGHT}");do
|
||||||
|
echo "########################"
|
||||||
|
indexer=$(cat prowlarr_indexers.json | jq ".[$index]")
|
||||||
|
indexer=$(echo $indexer | jq 'del(.id)')
|
||||||
|
echo $indexer | jq '.name'
|
||||||
|
curl --request POST \
|
||||||
|
-s -S \
|
||||||
|
--url "http://localhost:9696/api/v1/indexer?apikey=$PROWLARR_API_KEY" \
|
||||||
|
--header 'Content-Type: application/json' \
|
||||||
|
--data "$indexer"
|
||||||
|
done
|
||||||
|
|
||||||
|
# post install
|
||||||
|
clear
|
||||||
|
echo Done !
|
||||||
|
|
||||||
|
echo '
|
||||||
|
# Jellyfin Config :
|
||||||
|
|
||||||
|
head over to http://localhost:8096/ then
|
||||||
|
- Create an account
|
||||||
|
- Create two libraries
|
||||||
|
- One for movies : select type "movies", folder /data/movies
|
||||||
|
- One for tv show : select type "tv shows", folder /data/tvshows
|
||||||
|
|
||||||
|
And there is your media center !
|
||||||
|
|
||||||
|
# Jellyseerr Config :
|
||||||
|
|
||||||
|
head over to http://localhost:5055/ then
|
||||||
|
- Login with your previously created jellyfin account
|
||||||
|
- jellyfin url "http://jellyfin:8096"
|
||||||
|
- you must put a email address but it does not need to be valid
|
||||||
|
- enter Jellyfin username and password
|
||||||
|
- Sync the libraries with jellyfin and select the previously libraries
|
||||||
|
- Add Radarr and Sonarr :'
|
||||||
|
|
||||||
|
echo "
|
||||||
|
|
||||||
|
## Radarr
|
||||||
|
|
||||||
|
Default server : True
|
||||||
|
name : Radarr
|
||||||
|
hostname : http://radarr
|
||||||
|
api key : $RADARR_API_KEY
|
||||||
|
root folder : /movies (click 'test' button below if not changeable )
|
||||||
|
|
||||||
|
## Sonarr
|
||||||
|
|
||||||
|
Default server : True
|
||||||
|
name : Sonarr
|
||||||
|
hostname : http://sonarr
|
||||||
|
api key : $SONARR_API_KEY
|
||||||
|
root folder : /tv (click 'test' button below if not changeable )
|
||||||
|
"
|
||||||
|
|
||||||
|
echo "this has also been written to POST_INSTALL.md"
|
||||||
|
rm temp*
|
||||||
|
rm compose.yml
|
||||||
|
|
||||||
|
###############################
|
||||||
|
|
||||||
|
echo '
|
||||||
|
# Jellyfin Config :
|
||||||
|
|
||||||
|
head over to http://localhost:8096/ then
|
||||||
|
- Create an account
|
||||||
|
- Create two libraries
|
||||||
|
- One for movies : select type "movies", folder /data/movies
|
||||||
|
- One for tv show : select type "tv shows", folder /data/tvshows
|
||||||
|
|
||||||
|
And there is your media center !
|
||||||
|
|
||||||
|
# Jellyseerr Config :
|
||||||
|
|
||||||
|
head over to http://localhost:5055/ then
|
||||||
|
- Login with your previously created jellyfin account
|
||||||
|
- jellyfin url "http://jellyfin:8096"
|
||||||
|
- you must put a email address but it does not need to be valid
|
||||||
|
- enter Jellyfin username and password
|
||||||
|
- Sync the libraries with jellyfin and select the previously libraries
|
||||||
|
- Add Radarr and Sonarr :' >> POST_INSTALL.md
|
||||||
|
|
||||||
|
echo "
|
||||||
|
|
||||||
|
## Radarr
|
||||||
|
|
||||||
|
Default server : True
|
||||||
|
name : Radarr
|
||||||
|
hostname : http://radarr
|
||||||
|
api key : $RADARR_API_KEY
|
||||||
|
root folder : /movies (click 'test' button below if not changeable )
|
||||||
|
|
||||||
|
## Sonarr
|
||||||
|
|
||||||
|
Default server : True
|
||||||
|
name : Sonarr
|
||||||
|
hostname : http://sonarr
|
||||||
|
api key : $SONARR_API_KEY
|
||||||
|
root folder : /tv (click 'test' button below if not changeable )
|
||||||
|
" >> POST_INSTALL.md
|
||||||
|
|
||||||
|
echo "
|
||||||
|
# Services
|
||||||
|
|
||||||
|
Streaming des videos
|
||||||
|
-> Jellyfin : http://localhost:8096
|
||||||
|
|
||||||
|
Rerchercher et Ajouter
|
||||||
|
-> Jellyseerr : http://localhost:5055
|
||||||
|
|
||||||
|
Gerer les films
|
||||||
|
-> Radarr http://localhost:7878
|
||||||
|
|
||||||
|
Gerer les series
|
||||||
|
-> Sonarr : http://localhost:8989
|
||||||
|
|
||||||
|
Rerchercher sur les sites de torrents
|
||||||
|
-> Prowlarr : http://localhost:9696
|
||||||
|
|
||||||
|
Telecharger
|
||||||
|
-> Transmission : http://localhost:9091
|
||||||
|
" >> POST_INSTALL.md
|
35
prowlarr_flaresolverr.json
Normal file
35
prowlarr_flaresolverr.json
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"enable": true,
|
||||||
|
"name": "flaresolverr",
|
||||||
|
"onHealthIssue": false,
|
||||||
|
"supportsOnHealthIssue": false,
|
||||||
|
"includeHealthWarnings": false,
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"order": 0,
|
||||||
|
"name": "host",
|
||||||
|
"label": "Host",
|
||||||
|
"value": "http://flaresolverr:8191/",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 1,
|
||||||
|
"name": "requestTimeout",
|
||||||
|
"label": "Request Timeout",
|
||||||
|
"unit": "seconds",
|
||||||
|
"helpText": "FlareSolverr maxTimeout Request Parameter",
|
||||||
|
"value": 60,
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": true,
|
||||||
|
"isFloat": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"implementationName": "FlareSolverr",
|
||||||
|
"implementation": "FlareSolverr",
|
||||||
|
"configContract": "FlareSolverrSettings",
|
||||||
|
"infoLink": "https://wiki.servarr.com/prowlarr/supported#flaresolverr",
|
||||||
|
"tags": [1],
|
||||||
|
"presets": []
|
||||||
|
}
|
18341
prowlarr_indexers.json
Normal file
18341
prowlarr_indexers.json
Normal file
File diff suppressed because it is too large
Load Diff
63
prowlarr_radarr_app.json
Normal file
63
prowlarr_radarr_app.json
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
{
|
||||||
|
"syncLevel": "fullSync",
|
||||||
|
"name": "Radarr",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"order": 0,
|
||||||
|
"name": "prowlarrUrl",
|
||||||
|
"label": "Prowlarr Server",
|
||||||
|
"helpText": "Prowlarr server URL as Radarr sees it, including http(s)://, port, and urlbase if needed",
|
||||||
|
"value": "http://prowlarr:9696",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"placeholder": "http://localhost:9696",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 1,
|
||||||
|
"name": "baseUrl",
|
||||||
|
"label": "Radarr Server",
|
||||||
|
"helpText": "URL used to connect to Radarr server, including http(s)://, port, and urlbase if required",
|
||||||
|
"value": "http://radarr:7878",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"placeholder": "http://radarr:7878",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 2,
|
||||||
|
"name": "apiKey",
|
||||||
|
"label": "API Key",
|
||||||
|
"helpText": "The ApiKey generated by Radarr in Settings/General",
|
||||||
|
"value" : "RADARR_API_KEY",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 3,
|
||||||
|
"name": "syncCategories",
|
||||||
|
"label": "Sync Categories",
|
||||||
|
"helpText": "Only Indexers that support these categories will be synced",
|
||||||
|
"value": [
|
||||||
|
2000,
|
||||||
|
2010,
|
||||||
|
2020,
|
||||||
|
2030,
|
||||||
|
2040,
|
||||||
|
2045,
|
||||||
|
2050,
|
||||||
|
2060,
|
||||||
|
2070,
|
||||||
|
2080,
|
||||||
|
2090
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"implementationName": "Radarr",
|
||||||
|
"implementation": "Radarr",
|
||||||
|
"configContract": "RadarrSettings",
|
||||||
|
"infoLink": "https://wiki.servarr.com/prowlarr/supported#radarr",
|
||||||
|
"tags": [],
|
||||||
|
"presets": []
|
||||||
|
}
|
79
prowlarr_sonarr_app.json
Normal file
79
prowlarr_sonarr_app.json
Normal file
@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"name" : "Sonarr",
|
||||||
|
"syncLevel": "fullSync",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"order": 0,
|
||||||
|
"name": "prowlarrUrl",
|
||||||
|
"label": "Prowlarr Server",
|
||||||
|
"helpText": "Prowlarr server URL as Sonarr sees it, including http(s)://, port, and urlbase if needed",
|
||||||
|
"value": "http://prowlarr:9696",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"placeholder": "http://localhost:9696",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 1,
|
||||||
|
"name": "baseUrl",
|
||||||
|
"label": "Sonarr Server",
|
||||||
|
"helpText": "URL used to connect to Sonarr server, including http(s)://, port, and urlbase if required",
|
||||||
|
"value": "http://sonarr:8989",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"placeholder": "http://localhost:8989",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 2,
|
||||||
|
"name": "apiKey",
|
||||||
|
"label": "API Key",
|
||||||
|
"helpText": "The ApiKey generated by Sonarr in Settings/General",
|
||||||
|
"type": "textbox",
|
||||||
|
"value" : "SONARR_API_KEY",
|
||||||
|
"advanced": false,
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 3,
|
||||||
|
"name": "syncCategories",
|
||||||
|
"label": "Sync Categories",
|
||||||
|
"helpText": "Only Indexers that support these categories will be synced",
|
||||||
|
"value": [
|
||||||
|
5000,
|
||||||
|
5010,
|
||||||
|
5020,
|
||||||
|
5030,
|
||||||
|
5040,
|
||||||
|
5045,
|
||||||
|
5050,
|
||||||
|
5090
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 4,
|
||||||
|
"name": "animeSyncCategories",
|
||||||
|
"label": "Anime Sync Categories",
|
||||||
|
"helpText": "Only Indexers that support these categories will be synced",
|
||||||
|
"value": [
|
||||||
|
5070
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 5,
|
||||||
|
"name": "syncAnimeStandardFormatSearch",
|
||||||
|
"label": "Sync Anime Standard Format Search",
|
||||||
|
"helpText": "Sync also searching for anime using the standard numbering",
|
||||||
|
"value": false,
|
||||||
|
"type": "checkbox",
|
||||||
|
"advanced": true,
|
||||||
|
"isFloat": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"implementationName": "Sonarr",
|
||||||
|
"implementation": "Sonarr",
|
||||||
|
"configContract": "SonarrSettings",
|
||||||
|
"infoLink": "https://wiki.servarr.com/prowlarr/supported#sonarr",
|
||||||
|
"tags": [],
|
||||||
|
"presets": []
|
||||||
|
}
|
154
transmission.json
Normal file
154
transmission.json
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
{
|
||||||
|
"enable": true,
|
||||||
|
"protocol": "torrent",
|
||||||
|
"priority": 1,
|
||||||
|
"removeCompletedDownloads": true,
|
||||||
|
"removeFailedDownloads": true,
|
||||||
|
"name": "Transmission",
|
||||||
|
"fields": [
|
||||||
|
{
|
||||||
|
"order": 0,
|
||||||
|
"name": "host",
|
||||||
|
"label": "Host",
|
||||||
|
"value": "transmission",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 1,
|
||||||
|
"name": "port",
|
||||||
|
"label": "Port",
|
||||||
|
"value": 9091,
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 2,
|
||||||
|
"name": "useSsl",
|
||||||
|
"label": "Use SSL",
|
||||||
|
"helpText": "Use secure connection when connection to Transmission",
|
||||||
|
"value": false,
|
||||||
|
"type": "checkbox",
|
||||||
|
"advanced": false,
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 3,
|
||||||
|
"name": "urlBase",
|
||||||
|
"label": "URL Base",
|
||||||
|
"helpText": "Adds a prefix to the transmission rpc url, eg http://[host]:[port]/[urlBase]/rpc, defaults to '/transmission/'",
|
||||||
|
"value": "/transmission/",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": true,
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 4,
|
||||||
|
"name": "username",
|
||||||
|
"label": "Username",
|
||||||
|
"value": "TRANSMISSION_USER",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"privacy": "userName",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 5,
|
||||||
|
"name": "password",
|
||||||
|
"label": "Password",
|
||||||
|
"type": "password",
|
||||||
|
"value": "TRANSMISSION_PASSWORD",
|
||||||
|
"advanced": false,
|
||||||
|
"privacy": "password",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 6,
|
||||||
|
"name": "tvCategory",
|
||||||
|
"label": "Category",
|
||||||
|
"helpText": "Adding a category specific to Sonarr avoids conflicts with unrelated non-Sonarr downloads. Using a category is optional, but strongly recommended. Creates a [category] subdirectory in the output directory.",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": false,
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 7,
|
||||||
|
"name": "tvDirectory",
|
||||||
|
"label": "Directory",
|
||||||
|
"helpText": "Optional location to put downloads in, leave blank to use the default Transmission location",
|
||||||
|
"type": "textbox",
|
||||||
|
"advanced": true,
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 8,
|
||||||
|
"name": "recentTvPriority",
|
||||||
|
"label": "Recent Priority",
|
||||||
|
"helpText": "Priority to use when grabbing episodes that aired within the last 14 days",
|
||||||
|
"value": 0,
|
||||||
|
"type": "select",
|
||||||
|
"advanced": false,
|
||||||
|
"selectOptions": [
|
||||||
|
{
|
||||||
|
"value": 0,
|
||||||
|
"name": "Last",
|
||||||
|
"order": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": 1,
|
||||||
|
"name": "First",
|
||||||
|
"order": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 9,
|
||||||
|
"name": "olderTvPriority",
|
||||||
|
"label": "Older Priority",
|
||||||
|
"helpText": "Priority to use when grabbing episodes that aired over 14 days ago",
|
||||||
|
"value": 0,
|
||||||
|
"type": "select",
|
||||||
|
"advanced": false,
|
||||||
|
"selectOptions": [
|
||||||
|
{
|
||||||
|
"value": 0,
|
||||||
|
"name": "Last",
|
||||||
|
"order": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": 1,
|
||||||
|
"name": "First",
|
||||||
|
"order": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"order": 10,
|
||||||
|
"name": "addPaused",
|
||||||
|
"label": "Add Paused",
|
||||||
|
"value": false,
|
||||||
|
"type": "checkbox",
|
||||||
|
"advanced": false,
|
||||||
|
"privacy": "normal",
|
||||||
|
"isFloat": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"implementationName": "Transmission",
|
||||||
|
"implementation": "Transmission",
|
||||||
|
"configContract": "TransmissionSettings",
|
||||||
|
"infoLink": "https://wiki.servarr.com/sonarr/supported#transmission",
|
||||||
|
"tags": [],
|
||||||
|
"presets": []
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user