4. Déploiement Docker via Portainer


Le déploiement se fait entièrement depuis l’interface Portainer. Vous n’avez pas besoin d’accéder au terminal de votre NAS.

Maintenant que vos dossiers sont prêts et votre fichier .env configuré, il est temps de lancer le conteneur pour que mon bot puisse enfin se connecter à Discord.

Vous utilisez Portainer ? (Méthode recommandée)

Le déploiement se fait entièrement depuis l’interface Portainer. C’est de loin la méthode la plus simple car vous n’avez pas besoin d’accéder au terminal de votre NAS.

Vous n’avez pas encore Portainer ?

Si vous ne l’avez pas encore, je vous recommande vraiment de l’installer. Cela change la vie pour gérer ses projets Docker sur Synology. Vous pouvez suivre ce guide excellent et ultra-rapide : 👉 Installer Portainer sur Synology en 30 secondes (Marius Hosting)

4.1 Créer un nouveau stack

Dans Portainer, accédez à Stacks dans le menu gauche, puis cliquez sur « + Add stack ».

Donnez un nom à votre stack (ex: marvin) puis collez la configuration suivante dans l’éditeur :

version: ‘3.8’
services:
marvin-bot: # Vous pouvez renommer ceci en le-nom-de-votre-bot
image: python:3.11-slim
container_name: marvin-app # Le nom qui apparaîtra dans votre liste Docker
network_mode: bridge
volumes:
– /volume1/docker/marvin:/app
– /volume1/docker/marvin/img:/app/img
working_dir: /app
ports:
– « 5050:5050 »
environment:
– PYTHONUNBUFFERED=1
command: >
sh -c « pip install -r requirements.txt
&& python bot.py »
restart: always
Comprendre la configuration :

Image (python:3.11-slim) : C’est l’image officielle qui va faire tourner le code du bot. Elle est légère et sera téléchargée automatiquement au premier lancement.

Volumes : C’est la partie la plus importante. Elle fait le lien entre votre dossier réel sur le NAS (/volume1/docker/marvin) et l’intérieur du conteneur. Cela garantit que votre base de données et vos images ne sont pas supprimées si vous redémarrez le bot.

Ports (5050:5050) : C’est la porte d’entrée de votre dashboard. Une fois lancé, vous y accéderez via http://[IP-de-votre-NAS]:5050.

Restart (always) : Le bot redémarrera tout seul si votre NAS redémarre ou en cas de plantage imprévu.

⚠️ Attention dans Portainer : Lors des prochaines mises à jour de votre stack, ne cochez pas l’option « Re-pull image », cela est inutile ici car nous utilisons une image Python fixe.

4.3 Déployer le stack

Cliquez sur « Deploy the stack » en bas de page. Portainer va créer le conteneur et lancer le bot.

Le premier démarrage peut prendre 1 à 3 minutes le temps de télécharger les dépendances Python.

4.4 Vérifier les logs

Cliquez sur le conteneur marvin-app puis sur « Logs » pour vérifier que le démarrage s’est bien passé. Vous devriez voir :

[DB] ✅ Base de données initialisée et labels mis à jour

Marvin OS démarre…

* Running on http://0.0.0.0:5050

✅ Marvin OS connecté | Heure (Paris) : HH:MM:SS