Repo to deploy the news-delivering bot MonitoRSS (formerly known as Discord.RSS)
  • JavaScript 75.8%
  • Dockerfile 23.3%
  • Procfile 0.9%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2021-02-19 15:54:58 +01:00
.github Fix if statement position 2021-01-27 21:35:17 +01:00
img include images in repo 2021-01-24 19:50:21 +01:00
migrations Replace Discord.RSS references with MonitoRSS 2020-08-20 23:09:20 -04:00
root Disable all but permissions 2021-01-30 22:11:57 +01:00
scripts Replace Discord.RSS references with MonitoRSS 2020-08-20 23:09:20 -04:00
settings Update bot cfg example with feedRequestTimeoutMs 2020-12-25 04:58:24 +03:00
.dockerignore Expand dockerignore with img and .gitlab 2021-01-24 19:48:13 +01:00
.env.example Initial Commit 2020-03-12 18:03:45 -04:00
.gitignore Replace Discord.RSS references with MonitoRSS 2020-08-20 23:09:20 -04:00
app.json Add DRSSWEB_DATABASE_URI 2020-10-25 18:17:09 -04:00
bot-web.js Fix race condition while using bot-web 2020-06-09 16:25:33 -04:00
bot.js Replace Discord.RSS references with MonitoRSS 2020-08-20 23:09:20 -04:00
docker-compose.yml Update docker-compose.yml with information from README 2021-01-25 10:27:10 +01:00
Dockerfile - Rewrite to lsiobase/alpine 2021-01-24 19:49:08 +01:00
LICENSE Initial commit 2020-03-12 17:31:07 -04:00
package-lock.json Update bot to 6.12.2 2021-02-19 09:18:53 -05:00
package.json Update bot to 6.12.2 2021-02-19 09:18:53 -05:00
Procfile Initial Commit 2020-03-12 18:03:45 -04:00
README.md Minor additions and fixes 2021-01-31 08:05:15 +01:00
server.js Support web with heroku 2020-04-16 16:49:10 -04:00
web.js Replace Discord.RSS references with MonitoRSS 2020-08-20 23:09:20 -04:00

MonitoRSS-Clone

Homepage Blog Fleet GitHub DockerHub


MonitoRSS-Clone

Docker Pulls Docker Image Size (latest by date) Docker Cloud Build Status Docker Cloud Automated build GitHub Repo stars GitHub forks

A control panel for the news-delivering MonitoRSS (formerly known as Discord.RSS) bot.

[MonitoRSS-Web](https://github.com/synzen/MonitoRSS-Clone


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

Deployment

Tags Description
latest Using the latest tag will pull the latest image for linux/amd64,linux/arm/v7,linux/arm64.
develop The latest image of, if existent, the in-dev version of this container. Use at your own risk!

Using GitHub Workflows, images for this container are multi-arch. Simply pulling :latest should retrieve the correct image for your architecture. Images are available for linux/amd64,linux/arm/v7,linux/arm64.

Full stack

version: "3.5"
services:
  mrss-redis:
    container_name: mrss-redis
    restart: on-failure:5
    image: redis:alpine
  mrss-mongo:
    container_name: mrss-mongodb
    restart: on-failure:5
    command: mongod --port 27017
    image: mongo:latest
    volumes:
      - ./path/to/data/db:/data/db
  mrss-bot-web:
    container_name: mrss-bot-web
    restart: on-failure:3
    image: griefed/monitorss-clone
    ports:
     - 8081:8081
    depends_on:
      - mrss-mongo
      - mrss-redis
    environment:
      - TZ=Europe/Berlin
      - PUID=1000
      - PGID=1000
      - DRSS_START=bot-web
      - DRSS_BOT_TOKEN=
      - DRSS_DATABASE_URI=mongodb://mrss-mongo:27017/rss
      - DRSS_BOT_PREFIX=~
      - DRSS_BOT_OWNERIDS=
      - DRSSWEB_DATABASE_URI=mongodb://mrss-mongo:27017/rss
      - DRSSWEB_DATABASE_REDIS=redis://mrss-redis:6379
      - DRSSWEB_ADMINIDS=
      - DRSSWEB_BOT_TOKEN=
      - DRSSWEB_BOT_REDIRECTURI=
      - DRSSWEB_BOT_CLIENTID=
      - DRSSWEB_BOT_CLIENTSECRET=
      - DRSSWEB_SESSION_SECRET=z3tv8mu93vtz8m9oavt3a4

Standalone

Please bear in mind that, in order for DRSS_START=web or DRSS_START=bot-web to work, you need Redis and MongoDB.

pre-built images

version: "2"
services:
  monitorss-clone:
    image: griefed/monitorss-clone:latest
    container_name: monitorss-clone
    restart: unless-stopped
    environment:
      - PUID=1000   # User ID
      - PGID=1000   # Group ID
      - DRSS_START=bot-web # Determine what parts of MonitoRSS to start. Input bot to only start the bot, web to start only the web, or bot-web to start both.
      - DRSS_DATABASE_URI=mongodb://mrss-mongo:27017/rss # MongoDB database URI. Cannot be a folder URI (data would not persist across reboots).
      - DRSS_BOT_TOKEN=123456 # Discord Bot token. Get it here: https://discordapp.com/developers/applications/.
      - DRSS_BOT_PREFIX=~ # Prefix for commands
      - DRSS_BOT_OWNERIDS=123456 # Owner ID(s), separate multiple with a comma.
      - DRSSWEB_DATABASE_URI=mongodb://mrss-mongo:27017/rss # REQUIRED IF DRSS_START IS web OR bot-web. MongoDB database URI. Must be the same as DRSS_DATABASE_URI.
      - DRSSWEB_DATABASE_REDIS=redis://mrss-redis:6379 # Redis database URI.
      - DRSSWEB_BOT_TOKEN=123456 # REQUIRED IF DRSS_START IS web OR bot-web. Use the same token as DRSS_BOT_TOKEN.
      - DRSSWEB_BOT_REDIRECTURI=http://localhost:8081/authorize # REQUIRED IF DRSS_START IS web OR bot-web. Insert the domain name appending /authorize. Example on heroku: https://APPNAME.herokuapp.com/authorize. Make sure the exact url is also set set under the application OAuth2 tab under redirects.
      - DRSSWEB_BOT_CLIENTSECRET=123456 # REQUIRED IF DRSS_START IS web OR bot-web. Found on your app page at Discord Developers at https://discordapp.com/developers/applications/
      - DRSSWEB_BOT_CLIENTID=123456 # REQUIRED IF DRSS_START IS web OR bot-web. App ID that can be found on the general information page at https://discordapp.com/developers/applications/. This should only contain numbers.
      - DRSSWEB_ADMINIDS=123456 # REQUIRED IF DRSS_START IS web OR bot-web. Web admin ID(s), separate multiple with commas.
    ports:
      - 8081:8081/tcp # (When using web) Port at which the web interface will be available at

cli

docker create \
  --name=monitorss-clone \
  -e PUID=1000   `# User ID` \
  -e PGID=1000   `# Group ID` \
  -e DRSS_START=bot-web `# Determine what parts of MonitoRSS to start. Input bot to only start the bot, web to start only the web, or bot-web to start both.` \
  -e DRSS_DATABASE_URI=mongodb://mrss-mongo:27017/rss `# MongoDB database URI. Cannot be a folder URI (data would not persist across reboots).` \
  -e DRSS_BOT_TOKEN=123456 `# Discord Bot token. Get it here: https://discordapp.com/developers/applications/.` \
  -e DRSS_BOT_PREFIX=~ `# Prefix for commands` \
  -e DRSS_BOT_OWNERIDS=123456 `# Owner ID(s), separate multiple with a comma.` \
  -e DRSSWEB_DATABASE_URI=mongodb://mrss-mongo:27017/rss `# REQUIRED IF DRSS_START IS web OR bot-web. MongoDB database URI. Must be the same as DRSS_DATABASE_URI.` \
  -e DRSSWEB_DATABASE_REDIS=redis://mrss-redis:6379 `# Redis database URI.` \
  -e DRSSWEB_BOT_TOKEN=123456 `# REQUIRED IF DRSS_START IS web OR bot-web. Use the same token as DRSS_BOT_TOKEN.` \
  -e DRSSWEB_BOT_REDIRECTURI=http://localhost:8081/authorize `# REQUIRED IF DRSS_START IS web OR bot-web. Insert the domain name appending /authorize. Example on heroku: https://APPNAME.herokuapp.com/authorize. Make sure the exact url is also set set under the application OAuth2 tab under redirects.` \
  -e DRSSWEB_BOT_CLIENTSECRET=123456 `# REQUIRED IF DRSS_START IS web OR bot-web. Found on your app page at Discord Developers at https://discordapp.com/developers/applications/` \
  -e DRSSWEB_BOT_CLIENTID=123456 `# REQUIRED IF DRSS_START IS web OR bot-web. App ID that can be found on the general information page at https://discordapp.com/developers/applications/. This should only contain numbers.` \
  -e DRSSWEB_ADMINIDS=123456 `# REQUIRED IF DRSS_START IS web OR bot-web. Web admin ID(s), separate multiple with commas.` \
  -p 8081:8081/tcp `# (When using web) Port at which the web interface will be available at` \
  --restart unless-stopped \
  griefed/monitorss-clone:latest

Configuration

Configuration Explanation
Restart policy "no", always, on-failure, unless-stopped
TZ Timezone
PUID for UserID
PGID for GroupID
ports The port where the service will be available at.
DRSS_START Determine what parts of MonitoRSS to start. Input bot to only start the bot, web to start only the web, or bot-web to start both.
DRSS_BOT_TOKEN Discord Bot token. Get it here: https://discordapp.com/developers/applications/.
DRSS_DATABASE_URI MongoDB database URI. Cannot be a folder URI (data would not persist across reboots).
DRSSWEB_DATABASE_REDIS Redis database URI.
DRSS_BOT_PREFIX Prefix for Discord commands.
DRSS_BOT_OWNERIDS Owner ID(s), separate multiple with a comma.
DRSSWEB_DATABASE_URI REQUIRED IF DRSS_START IS web OR bot-web. MongoDB database URI. Must be the same as DRSS_DATABASE_URI.
DRSSWEB_ADMINIDS REQUIRED IF DRSS_START IS web OR bot-web. Web admin ID(s), separate multiple with commas.
DRSSWEB_BOT_TOKEN REQUIRED IF DRSS_START IS web OR bot-web. Use the same token as DRSS_BOT_TOKEN.
DRSSWEB_BOT_REDIRECTURI REQUIRED IF DRSS_START IS web OR bot-web. Insert the domain name appending /authorize. Example on heroku: https://APPNAME.herokuapp.com/authorize. Make sure the exact url is also set set under the application OAuth2 tab under redirects.
DRSSWEB_BOT_CLIENTID REQUIRED IF DRSS_START IS web OR bot-web. App ID that can be found on the general information page at https://discordapp.com/developers/applications/. This should only contain numbers.
DRSSWEB_BOT_CLIENTSECRET REQUIRED IF DRSS_START IS web OR bot-web. Found on your app page at Discord Developers at https://discordapp.com/developers/applications/
DRSSWEB_SESSION_SECRET Random string e.g. tzt8q3z89gpc345qa98zmg3cg

User / Group Identifiers

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)

Building the image yourself

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: 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:
      - 'db-data:/data/db'
  mrss-bot-web:
    container_name: mrss-bot-web
    restart: on-failure:3
    build: ./MonitoRSS-Clone/.
    depends_on:
      - mrss-mongo
      - mrss-redis
    environment:
      - TZ=Europe/Berlin
      - PUID=1000
      - PGID=1000
      - DRSS_START=bot-web
      - DRSS_BOT_TOKEN=
      - DRSS_DATABASE_URI=mongodb://mrss-mongo:27017/rss
      - DRSS_BOT_PREFIX=~
      - DRSS_BOT_OWNERIDS=
      - DRSSWEB_DATABASE_URI=mongodb://mrss-mongo:27017/rss
      - DRSSWEB_DATABASE_REDIS=redis://mrss-redis:6379
      - DRSSWEB_ADMINIDS=
      - DRSSWEB_BOT_TOKEN=
      - DRSSWEB_BOT_REDIRECTURI=
      - DRSSWEB_BOT_CLIENTID=
      - DRSSWEB_BOT_CLIENTSECRET=
      - DRSSWEB_SESSION_SECRET=z3tv8mu93vtz8m9oavt3a4
  1. Clone the repository: git clone https://github.com/Griefed/MonitoRSS-Clone.git ./MonitoRSS-Clone
  2. Prepare docker-compose.yml file as seen above
  3. docker-compose up -d --build mrss-bot-web
  4. Visit IP.ADDRESS.OF.HOST:8081
  5. ???
  6. Profit!