Photo by Alexander Shatov / Unsplash

MonitoRSS : héberger son bot Discord de flux RSS

Communication 3 févr. 2022

Je relaie mes articles sur mon Discord via le site public de MonitoRSS et je voulais m'ajouter d'autres flux mais, et c'est normal, il souffre de quelques limitations quand on passe par le site.

MonitoRSS permet de lier un bot à notre compte Discord et ce bot peut être utilisé sur plusieurs serveurs et relayer plusieurs flux RSS.

Du coup, en route pour l'auto-hébergement !

Il faut commencer par créer une application et un bot Discord

Lui donner un p'tit nom, éventuellement lui mettre un avatar et une rapide description

Puis lui préciser l'URL de redirection après l'authentification. Ce sera l'URL de notre MonitoRSS suivie de /authorize

Les client ID & Secret serviront à configurer MonitoRSS

Vient enfin la création du bot

Le token servira à configurer MonitoRSS

On peut ensuite passer à l'installation, en Docker, et la configuration du bot. Pour des détails la Doc est bien fournie.

J'hébergerai la config dans /home/aerya/docker/mrss/. Je clone donc le git de ce même dossier.

git clone https://github.com/synzen/MonitoRSS-Clone.git .

Le . indiquant de cloner dans le dossier en cours et non un nouveau

Modifier le docker-compose pour l'adapter à notre configuration

version: "3.5"
services:
  mrss-redis:
    container_name: mrss-redis-container
    restart: on-failure:5
    image: redis:alpine
  mrss-mongo:
    container_name: mrss-mongodb-container
    restart: on-failure:5
    command: mongod --port 27017
    image: mongo:latest
    volumes:
      - '/home/aerya/docker/mrss/db:/data/db'
  mrss-bot:
    container_name: mrss-bot-container
    restart: on-failure:3
    build: .
    depends_on:
      - mrss-mongo
    environment:
      - DRSS_START=bot
      - DRSS_BOT_TOKEN=xxx
      - DRSS_DATABASE_URI=mongodb://mrss-mongo:27017/rss
  mrss-web:
    container_name: mrss-web-container
    build: .
    restart: on-failure:3
    depends_on:
      - mrss-redis
      - mrss-mongo
    ports:
      - "8082:8081"
    environment:
      - DRSS_START=web
      - DRSSWEB_BOT_TOKEN=xxx
      - DRSSWEB_DATABASE_REDIS=redis://mrss-redis:6379
      - DRSSWEB_DATABASE_URI=mongodb://mrss-mongo:27017/rss
      - DRSSWEB_BOT_REDIRECTURI=https://mrss.upandclear.org/authorize
      - DRSSWEB_BOT_CLIENTID=938683932843589633
      - DRSSWEB_BOT_CLIENTSECRET=xxx

Une fois qu'on y a modifié le chemin de montage de MongoDB, mis token/client ID et client Secret de notre bot et l'URL de redirection, on peut lancer tout ça

docker-compose up -d

Il va construire 2 images au passage et lancer la stack.

Creating network "mrss_default" with the default driver
Building mrss-bot
[...]
Successfully tagged mrss_mrss-bot:latest
WARNING: Image for service mrss-bot was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Building mrss-web
[...]
Successfully tagged mrss_mrss-web:latest
WARNING: Image for service mrss-web was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Creating mrss-redis-container   ... done
Creating mrss-mongodb-container ... done
Creating mrss-bot-container     ... done
Creating mrss-web-container     ... done

On peut maintenant aller sur notre site

Il faut commencer par inviter le bot sur le serveur Discord et l'autoriser à lire/envoyer des messages et y intégrer des liens

Même chose enfin pour accéder au panneau de contrôle (bouton Control Panel donc)

On arrive sur notre interface de gestion des flux

Pour ajouter un flux RSS il suffit de sélectionner le serveur concerné à gauche puis d'entrer une URL de flux à suivre et un salon où poster automatiquement

On peut laisser tel quel, c'est le cas avec mes articles de blog par exemple. Ils seront relayés quelques minutes après leur publication.

Mais on peut aussi affiner la publication d'un flux RSS en en modifiant le contenu, l'aspect voire en les filtrant via des expressions.

Mots clés