A control panel for the news-delivering MonitoRSS (formerly known as Discord.RSS) bot.
Creates a Container which runs synzen's MonitoRSS-Clone, with lsiobase/alpine as the base image, as seen on https://monitorss.xyz/.
The lsiobase/alpine image is a custom base image built with Alpine linux and S6 overlay.
Using this image allows us to use the same user/group ids in the container as on the host, making file transfers much easier
Tags | Description |
---|---|
latest |
Using the latest tag will pull the latest image for amd64/x86_64 architecture. |
version: "3.5"
services:
mrss-redis:
container_name: mrss-redis-container
restart: unless-stopped
image: redis:alpine
mrss-mongo:
container_name: mrss-mongodb-container
restart: unless-stopped
command: mongod --port 27017
image: mongo:latest
volumes:
- 'db-data:/data/db'
mrss-bot:
container_name: mrss-bot-container
restart: unless-stopped
image: griefed/monitorss-clone
depends_on:
- mrss-mongo
environment:
- TZ=Europe/Berlin
- PUID=1000 # User ID
- PGID=1000 # Group ID
- DRSS_START=bot
- DRSS_BOT_TOKEN=
- DRSS_DATABASE_URI=mongodb://mrss-mongo:27017/rss
volumes:
- ./path/to/config/bot:/config
mrss-web:
container_name: mrss-web-container
image: griefed/monitorss-clone
restart: unless-stopped
depends_on:
- mrss-redis
- mrss-mongo
ports:
- "8081:8081"
environment:
- TZ=Europe/Berlin
- PUID=1000 # User ID
- PGID=1000 # Group ID
- DRSS_START=web
- DRSSWEB_BOT_TOKEN=
- DRSSWEB_DATABASE_REDIS=redis://mrss-redis:6379
- DRSSWEB_DATABASE_URI=mongodb://mrss-mongo:27017/rss
- DRSSWEB_BOT_REDIRECTURI=
- DRSSWEB_BOT_CLIENTID=
- DRSSWEB_BOT_CLIENTSECRET=
volumes:
- ./path/to/config/web:/config
volumes:
db-data:
Due to MongoDB not having an armv7 compatible container, I won't provide an arm compatible image for MonitoRSS-Clone.
Configuration | Explanation |
---|---|
Restart policy | "no", always, on-failure, unless-stopped |
config volume | Contains config files and logs. |
data volume | Contains your/the containers important data. |
TZ | Timezone |
PUID | for UserID |
PGID | for GroupID |
ports | The port where the service will be available at. |
DRSS_START=bot | One container must use bot and one container must use web |
DRSS_BOT_TOKEN= | Your Discord Bot Token |
DRSS_DATABASE_URI= | Address of your MongoDB. Keep default unless you know what you are doing. |
DRSSWEB_BOT_TOKEN= | Your Discord Bot Token |
DRSSWEB_DATABASE_REDIS= | Address of your Redis Instance. Keep default unless you know what you are doing. |
DRSSWEB_DATABASE_URI= | Address of your MongoDB. Keep default unless you know what you are doing. |
DRSSWEB_BOT_REDIRECTURI= | |
DRSSWEB_BOT_CLIENTID= | See https://docs.monitorss.xyz/configuration/web-interface |
DRSSWEB_BOT_CLIENTSECRET= | See https://docs.monitorss.xyz/configuration/web-interface |
When using volumes, permissions issues can arise between the host OS and the container. Linuxserver.io avoids this issue by allowing you to specify the user PUID
and group PGID
.
Ensure any volume directories on the host are owned by the same user you specify and any permissions issues will vanish like magic.
In this instance PUID=1000
and PGID=1000
, to find yours use id user
as below:
$ id username
uid=1000(dockeruser) gid=1000(dockergroup) groups=1000(dockergroup)
Use the Dockerfile to build the image yourself, in case you want to make any changes to it
docker-compose.yml:
version: "3.5"
services:
mrss-redis:
container_name: mrss-redis-container
restart: unless-stopped
image: redis:alpine
mrss-mongo:
container_name: mrss-mongodb-container
restart: unless-stopped
command: mongod --port 27017
image: mongo:latest
volumes:
- 'db-data:/data/db'
mrss-bot:
container_name: mrss-bot-container
restart: unless-stopped
build: ./MonitoRSS-Clone/.
depends_on:
- mrss-mongo
environment:
- TZ=Europe/Berlin
- PUID=1000 # User ID
- PGID=1000 # Group ID
- DRSS_START=bot
- DRSS_BOT_TOKEN=
- DRSS_DATABASE_URI=mongodb://mrss-mongo:27017/rss
volumes:
- ./path/to/config:/config
mrss-web:
container_name: mrss-web-container
build: ./MonitoRSS-Clone/.
restart: unless-stopped
depends_on:
- mrss-redis
- mrss-mongo
ports:
- "8081:8081"
environment:
- TZ=Europe/Berlin
- PUID=1000 # User ID
- PGID=1000 # Group ID
- DRSS_START=web
- DRSSWEB_BOT_TOKEN=
- DRSSWEB_DATABASE_REDIS=redis://mrss-redis:6379
- DRSSWEB_DATABASE_URI=mongodb://mrss-mongo:27017/rss
- DRSSWEB_BOT_REDIRECTURI=
- DRSSWEB_BOT_CLIENTID=
- DRSSWEB_BOT_CLIENTSECRET=
volumes:
- ./path/to/config:/config
volumes:
db-data:
git clone https://github.com/Griefed/MonitoRSS-Clone.git ./MonitoRSS-Clone
docker-compose up -d --build monitorss-clone
Driven by the lack of comprehensive RSS bots available, I have decided to try my hand at creating one of my own. Designed with as much customization as possible for both users and bot hosters, while also (or should be) easy to understand.
All documentation can be found at https://docs.monitorss.xyz/.
Don't want to bother hosting your own instance? Use the publicly hosted one!
https://discordapp.com/oauth2/authorize?client_id=268478587651358721&scope=bot&permissions=19456
MonitoRSS also comes with a web interface! To run the web interface, see the documentation.
You can deploy the bot in a simple way to Heroku using the button below. Click here for detailed instructions - you must have MongoDB hosted with its URI ready to also insert into DRSS_DATABASE_URI
environment variable.
If you want to deploy manually without the button, you can follow this guide instead.
MonitoRSS requires node.js v12.16. As of 23 May 2020, Glitch does not install v12.16 automatically, and must be manually installed. For MonitoRSS to work on Glitch, follow these steps.
git remote add origin https://github.com/synzen/MonitoRSS-Clone.git && npm install --no-save node@12.16.3
If you want the web interface, you will need to follow the web configuration and add the following in a file named .env:
The web port for Glitch is 3000.
See https://docs.monitorss.xyz/setting-up/staying-updated. Since using npm install
will remove the required node v12.16 automatically, you must install it again after updating:
git reset --hard origin/master && npm install && npm install --no-save node@12.16.3