Bonjour à tous,

Pour mes besoins personnel et parce que j'avais du temps à tuer, j'ai écris un script qui, partant d'un serveur debian (vierge ou non), installe automatiquement :

  • docker et docker-compose (s'ils ne sont pas déjà présents sur le système).

Puis, via un menu sur lequel chacun choisi ce qu'il veut, propose les softs suivants :

Téléchargement :

rTorrent : Téléchargement de torrents avec une chouette UI ( Flood ). Maintenu par Wonderfall.
SabNZB : Téléchargement de Newsgroups. Maintenu par linuxserver.io.
Pyload : Téléchargement direct. Pas encore implémenté, je cherche un bon maintainer.

Automatisation des téléchargements :

Radarr : Pour les films. Maintenu par linuxserver.io.
SickGear : Pour les séries TV. Maintenu par ressu.
Headphones : Pour la musique. Maintenu par linuxserver.io.
Mylar : Pour les BDs/Comics. Maintenu par linuxserver.io.

Streaming :

Emby : Streaming de video. Maintenu par Emby.media.
Ubooquity : BDs/Comics streaming. Maintenu par Cromigon.
Libresonic : Streaming de musiques. Maintenu par linuxserver.io

Outils :

Muximux : Sert à gérer les différentes applications. Maintenu par linuxserver.io.
Watchtower : Outil docker qui vérifie et maintien les autres containers à jour. Maintenu par l'éditeur.
Portainer : Outil docker qui rajoute une couche graphique à docker. Maintenu par l'éditeur.

Installation :

1- Clonez mon repository :

git clone https://github.com/zerpex/seedbox_docker.git seedbox

2- Placez vous dans le dossier nouvellement créé :

cd seedbox

2b- OPTIONNEL

Le nom des containers, le port exposé ainsi que les icones utilisées pour la page de démarrage sont définis dans files/scripts/var.sh n'hésitez pas à les changer en cas de besoin.
(Seulement si vous savez ce que vous faites !) : Vous pouvez changer toutes les options docker dans ./files/samples/APP.docker (où "APP" est le nom de l'application à mettre à jour). Ne touchez pas aux variables par contre 😃

3- Executez :

./seedbox_docker.sh

4- Répondez aux questions 🙂


Mis à part la page d'acceuil et le script d'installation, tout le reste est maintenu par les différentes personnes/groupes que je site. Mon travail a simplement consisté à trouver les meilleurs gestionnaires et à les inclure dans mon menu.

Je suis bien conscient que le choix des applications présenté est discutable, mais comme dit au tout début, je l'ai écris pour mes besoins personnels. Si certains préfèrent Plex à Emby (par exemple), libre à vous de forker et d'y incorporer Plex. Je mergerai avec plaisir si une pull request est faite et que le travail est bien intégré 🙂

Vous trouverez toutes les sources ici :
https://github.com/zerpex/seedbox_docker

N'hésitez pas à me faire part des bugs/améliorations que vous trouvez 🙂

zer.

Update du jour : rajout de Syncthing qui a bien sa place au milieux de tout ça.

J'en profite pour rajouter que pour tout virer, un petit :

docker-compose down

lancé depuis le dossier du script suffit 🙂

Pour virer une seule application :

docker stop <nom du container>
docker rm <nom du container>

J'ai voulu l’exécuter en root et cela ne fonctionne pas....

./seedbox_docker.sh: ligne 137: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 138: sudo : commande introuvable
./seedbox_docker.sh: ligne 139: sudo : commande introuvable
./seedbox_docker.sh: ligne 140: sudo : commande introuvable
./seedbox_docker.sh: ligne 144: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 145: sudo : commande introuvable
./seedbox_docker.sh: ligne 146: sudo : commande introuvable
./seedbox_docker.sh: ligne 147: sudo : commande introuvable
Third Option
./seedbox_docker.sh: ligne 154: sudo : commande introuvable
./seedbox_docker.sh: ligne 155: sudo : commande introuvable
./seedbox_docker.sh: ligne 156: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 157: sudo : commande introuvable
./seedbox_docker.sh: ligne 158: sudo : commande introuvable
./seedbox_docker.sh: ligne 159: sudo : commande introuvable
./seedbox_docker.sh: ligne 160: sudo : commande introuvable
./seedbox_docker.sh: ligne 164: sudo : commande introuvable
./seedbox_docker.sh: ligne 165: sudo : commande introuvable
./seedbox_docker.sh: ligne 166: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 167: sudo : commande introuvable
./seedbox_docker.sh: ligne 168: sudo : commande introuvable
./seedbox_docker.sh: ligne 169: sudo : commande introuvable
./seedbox_docker.sh: ligne 170: sudo : commande introuvable
./seedbox_docker.sh: ligne 174: sudo : commande introuvable
./seedbox_docker.sh: ligne 175: sudo : commande introuvable
./seedbox_docker.sh: ligne 176: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 177: sudo : commande introuvable
./seedbox_docker.sh: ligne 178: sudo : commande introuvable
./seedbox_docker.sh: ligne 179: sudo : commande introuvable
./seedbox_docker.sh: ligne 180: sudo : commande introuvable
./seedbox_docker.sh: ligne 184: sudo : commande introuvable
./seedbox_docker.sh: ligne 185: sudo : commande introuvable
./seedbox_docker.sh: ligne 186: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 187: sudo : commande introuvable
./seedbox_docker.sh: ligne 188: sudo : commande introuvable
./seedbox_docker.sh: ligne 189: sudo : commande introuvable
./seedbox_docker.sh: ligne 190: sudo : commande introuvable
./seedbox_docker.sh: ligne 194: sudo : commande introuvable
./seedbox_docker.sh: ligne 195: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 196: sudo : commande introuvable
./seedbox_docker.sh: ligne 197: sudo : commande introuvable
./seedbox_docker.sh: ligne 198: sudo : commande introuvable
./seedbox_docker.sh: ligne 202: sudo : commande introuvable
./seedbox_docker.sh: ligne 203: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 204: sudo : commande introuvable
./seedbox_docker.sh: ligne 205: sudo : commande introuvable
./seedbox_docker.sh: ligne 206: sudo : commande introuvable
./seedbox_docker.sh: ligne 210: sudo : commande introuvable
./seedbox_docker.sh: ligne 211: sudo : commande introuvable
./seedbox_docker.sh: ligne 212: sudo : commande introuvable
./seedbox_docker.sh: ligne 213: sudo : commande introuvable
./seedbox_docker.sh: ligne 214: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 215: sudo : commande introuvable
./seedbox_docker.sh: ligne 216: sudo : commande introuvable
./seedbox_docker.sh: ligne 217: sudo : commande introuvable
./seedbox_docker.sh: ligne 218: sudo : commande introuvable
./seedbox_docker.sh: ligne 219: sudo : commande introuvable
./seedbox_docker.sh: ligne 220: sudo : commande introuvable
./seedbox_docker.sh: ligne 224: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 225: sudo : commande introuvable
./seedbox_docker.sh: ligne 226: sudo : commande introuvable
./seedbox_docker.sh: ligne 230: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 233: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 234: sudo : commande introuvable
./seedbox_docker.sh: ligne 237: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 238: sudo : commande introuvable
./seedbox_docker.sh: ligne 242: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 243: sudo : commande introuvable
./seedbox_docker.sh: ligne 244: sudo : commande introuvable
./seedbox_docker.sh: ligne 245: sudo : commande introuvable
./seedbox_docker.sh: ligne 246: sudo : commande introuvable
./seedbox_docker.sh: ligne 253: docker-compose.yml: Permission non accordée
./seedbox_docker.sh: ligne 255: sudo : commande introuvable
./seedbox_docker.sh: ligne 256: sudo : commande introuvable
./seedbox_docker.sh: ligne 259: sudo : commande introuvable
./seedbox_docker.sh: ligne 260: sudo : commande introuvable
./seedbox_docker.sh: ligne 261: sudo : commande introuvable
./seedbox_docker.sh: ligne 264: /usr/local/bin/docker-compose: Permission non accordée
rm : supprimer fichier (protégé en écriture) « files/start_menu/www/dl.html » ? y
rm: impossible de supprimer « files/start_menu/www/dl.html »: Permission non accordée
rm : supprimer fichier (protégé en écriture) « files/start_menu/www/autodl.html » ? y
rm: impossible de supprimer « files/start_menu/www/autodl.html »: Permission non accordée
rm : supprimer fichier (protégé en écriture) « files/start_menu/www/stream.html » ? y
rm: impossible de supprimer « files/start_menu/www/stream.html »: Permission non accordée
rm : supprimer fichier (protégé en écriture) « files/start_menu/www/tools.html » ? y
rm: impossible de supprimer « files/start_menu/www/tools.html »: Permission non accordée
touch: impossible de faire un touch « files/start_menu/www/dl.html »: Permission non accordée
touch: impossible de faire un touch « files/start_menu/www/autodl.html »: Permission non accordée
touch: impossible de faire un touch « files/start_menu/www/stream.html »: Permission non accordée
touch: impossible de faire un touch « files/start_menu/www/tools.html »: Permission non accordée

#######################
# Installation Status #
#######################

files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 27: files/start_menu/www/dl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 28: files/start_menu/www/dl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 29: files/start_menu/www/dl.html: Permission non accordée
!! [ KO ] rTorrent is not installed, but not running. Please check logs with docker logs dl-torrent_rTorrent !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 27: files/start_menu/www/dl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 28: files/start_menu/www/dl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 29: files/start_menu/www/dl.html: Permission non accordée
!! [ KO ] SabnNZB is not installed, but not running. Please check logs with docker logs dl-newsgroups_SabnNZB !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 45: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 46: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 47: files/start_menu/www/autodl.html: Permission non accordée
!! [ KO ] Radarr is not installed, but not running. Please check logs with docker logs autodl-movies_Radarr !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 45: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 46: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 47: files/start_menu/www/autodl.html: Permission non accordée
!! [ KO ] SickGear is not installed, but not running. Please check logs with docker logs autodl-tv_SickGear !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 45: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 46: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 47: files/start_menu/www/autodl.html: Permission non accordée
!! [ KO ] Headphones is not installed, but not running. Please check logs with docker logs autodl-music_Headphones !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 45: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 46: files/start_menu/www/autodl.html: Permission non accordée
files/scripts/gen_links.sh: ligne 47: files/start_menu/www/autodl.html: Permission non accordée
!! [ KO ] Mylar is not installed, but not running. Please check logs with docker logs autodl-comics_Mylar !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 63: files/start_menu/www/stream.html: Permission non accordée
files/scripts/gen_links.sh: ligne 64: files/start_menu/www/stream.html: Permission non accordée
files/scripts/gen_links.sh: ligne 65: files/start_menu/www/stream.html: Permission non accordée
!! [ KO ] Emby is not installed, but not running. Please check logs with docker logs stream-video_Emby !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 63: files/start_menu/www/stream.html: Permission non accordée
files/scripts/gen_links.sh: ligne 64: files/start_menu/www/stream.html: Permission non accordée
files/scripts/gen_links.sh: ligne 65: files/start_menu/www/stream.html: Permission non accordée
!! [ KO ] Ubooquity is not installed, but not running. Please check logs with docker logs stream-comics_Ubooquity !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 63: files/start_menu/www/stream.html: Permission non accordée
files/scripts/gen_links.sh: ligne 64: files/start_menu/www/stream.html: Permission non accordée
files/scripts/gen_links.sh: ligne 65: files/start_menu/www/stream.html: Permission non accordée
!! [ KO ] Libresonic is not installed, but not running. Please check logs with docker logs stream-music_Libresonic !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 81: files/start_menu/www/tools.html: Permission non accordée
files/scripts/gen_links.sh: ligne 82: files/start_menu/www/tools.html: Permission non accordée
files/scripts/gen_links.sh: ligne 83: files/start_menu/www/tools.html: Permission non accordée
!! [ KO ] HTPCManager is not installed, but not running. Please check logs with docker logs tool-manage_HTPCManager !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 81: files/start_menu/www/tools.html: Permission non accordée
files/scripts/gen_links.sh: ligne 82: files/start_menu/www/tools.html: Permission non accordée
files/scripts/gen_links.sh: ligne 83: files/start_menu/www/tools.html: Permission non accordée
!! [ KO ] Portainer is not installed, but not running. Please check logs with docker logs tool-docker_Portainer !
files/scripts/gen_links.sh: ligne 21: docker : commande introuvable
files/scripts/gen_links.sh: ligne 81: files/start_menu/www/tools.html: Permission non accordée
files/scripts/gen_links.sh: ligne 82: files/start_menu/www/tools.html: Permission non accordée
files/scripts/gen_links.sh: ligne 83: files/start_menu/www/tools.html: Permission non accordée
!! [ KO ] Syncthing is not installed, but not running. Please check logs with docker logs tool-syncro_Syncthing !

Bonjour,

Merci de ton retour. Après relecture, ma boucle de détection sudo/root me parait bancale (bien que ça fonctionne chez moi).

Peux-tu me donner le résultat des commandes suivantes STP ?

ls -la /usr/bin/sudo

puis

whoami

(Je sais, tu as dis que tu l'exécutais en root, mais je veux vérifier l'output exact 😉 )

Question subsidiaire : Debian ou Ubuntu ?
(je n'ai pas testé le script sur Ubuntu jusque là).

Merci,
zer

Hello,

root@debian:/home/tonio# ls -la /usr/bin/sudo
ls: impossible d'accéder à /usr/bin/sudo: Aucun fichier ou dossier de ce type

root@debian:/home/tonio# whoami
root

En tout cas vraiment une bonne idée ce script !

Merci, quand ça fonctionne, c'est encore mieux 🙂

ça risque de faire beaucoup, mais peux-tu exécuter le script avec la commande

bash -x seedbox_docker.sh

Et me copier toute la sortie (peut-être plutôt dans un pastebin que sur le forum pour le coup 😃 ) STP ?

Sinon faut installer sudo (apt install sudo) et créer un user sudoer. C'est "globalement" mieux que de tout faire en root.

Je suis d'accord sur le principe, mais l'idée derrière mon script, c'est surtout de laisser le choix à l'utilisateur, donc autant le débugger 🙂

Désolé pas le temps de faire plus de test pour le moment...

Dommage, je n'arrive pas à reproduire chez moi.
Hésites pas à me relancer quand tu auras le temps 🙂

Ok je te ferais un retour dès que possible, par contre tu n'a pas précisé si ton script fait l'installation de docker ou si il faut l'installer avant ?
J'ai fais le test sur une VM cela doit pouvoir se reproduire.

Le script vérifie si docker et docker-compose sont installés ou non et si non, il les installes automatiquement.

Je viens de tester ton script sur un scaleway. Il est pas mal du tout!

Le seul hic, c'est qu'il prend en compte l'ip privé et non le public... comme les autres scripts. Si on met un nom de domaine, c'est bon, mais dans la page d'accueil, l'url pointe vers l'ip privé.

Effectivement.

En fait, il y a une ébauche pour le faire (variables FDQN et WAN déjà définies ), mais je ne l'ai pas implémenté pour 2 raisons :
- Pas encore eu le temps 😉
- Cette page n'est pas sécurisée et pointe vers des outils sensibles, donc en l'état, elle n'est pas destinée à être publiée sur internet.

Si tu veux tester, tu peux l'adapter facilement :
ouvres le fichier "files/scripts/vars.sh" en édition

Tout en bas, les variables LAN et WAN sont définies :

LAN=$(hostname -I | awk '{print $1}')
WAN=$(dig +short myip.opendns.com @resolver1.opendns.com)

Commentes la ligne "LAN..." en rajoutant un "#" devant et remplace "WAN" par "LAN" sur la ligne du dessous. Relances le script. ça devrait écraser et donc remplacer l'IP local par l'IP WAN.

Après, à toi de bien vérifier que les ports sont ouverts 😉
Je ne saurai également que trop te conseiller de protéger l'accès à cette page par un mot de passe !

c'est un peu bricolage, mais ça fait le job.

Je rajouterai un menu qui permettra de définir sa préférence ainsi que le titre de la page d'acceuil la semaine prochaine 🙂

J'ai rajouté la possibilité de choisir la génération des liens sur l'interface LAN ou sur l'interface WAN.

cloneMe J'ai jeté un oeil à ton script que je découvre, et je pense qu'il y a moyen de faire quelque chose de sympa avec nos deux projets. Si tu le permet, je vais m'inspirer de ton reverse et voir si je garde la gestion multi-user ou non (je n'en ai pas l'utilité, donc si c'est trop complexe à reprendre => je zappe 😃 ).

bonjour,

j'ai une erreur au lancement. pouvez vous s'il vous plait m'aider ?

ERROR: yaml.scanner.ScannerError: mapping values are not allowed here
  in "./docker-compose.yml", line 15, column 38
rm: impossible de supprimer « dl.html »: Aucun fichier ou dossier de ce type
rm: impossible de supprimer « autodl.html »: Aucun fichier ou dossier de ce type
rm: impossible de supprimer « stream.html »: Aucun fichier ou dossier de ce type
rm: impossible de supprimer « tools.html »: Aucun fichier ou dossier de ce type

Oups, j'ai oublié d'uploader le fix on dirait... Je fais ça d'ici 1h, je suis dans les transports là 😁

ok merci.

Merci Aerya pour l'édite je n'arrive plus à avoir accès au code sur le forum.