{"id":22080551,"url":"https://github.com/electronic-mango/rss-reader-telegram-bot-docker-deployment","last_synced_at":"2026-04-10T15:52:54.058Z","repository":{"id":47424657,"uuid":"513297805","full_name":"Electronic-Mango/rss-reader-telegram-bot-docker-deployment","owner":"Electronic-Mango","description":"Example of Docker deployment of my RSS reader Telegram bot.","archived":false,"fork":false,"pushed_at":"2024-06-22T13:31:30.000Z","size":57,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-06-22T21:44:24.848Z","etag":null,"topics":["docker","docker-compose","docker-container","docker-image","mongodb","rss","rss-bridge","rss-hub","telegram","telegram-bot"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Electronic-Mango.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-07-12T21:30:29.000Z","updated_at":"2024-06-22T13:31:33.000Z","dependencies_parsed_at":"2024-06-22T21:42:46.727Z","dependency_job_id":null,"html_url":"https://github.com/Electronic-Mango/rss-reader-telegram-bot-docker-deployment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Frss-reader-telegram-bot-docker-deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Frss-reader-telegram-bot-docker-deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Frss-reader-telegram-bot-docker-deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Frss-reader-telegram-bot-docker-deployment/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Electronic-Mango","download_url":"https://codeload.github.com/Electronic-Mango/rss-reader-telegram-bot-docker-deployment/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245168808,"owners_count":20571799,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","docker-container","docker-image","mongodb","rss","rss-bridge","rss-hub","telegram","telegram-bot"],"created_at":"2024-11-30T23:15:39.160Z","updated_at":"2025-12-30T23:28:49.787Z","avatar_url":"https://github.com/Electronic-Mango.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# RSS reader Telegram bot Docker deployment\n\nThis repository provides an example of how you can set up my\n[RSS reader Telegram bot](https://github.com/Electronic-Mango/rss-reader-telegram-bot)\nvia [Docker Compose](https://docs.docker.com/compose/).\n\n`docker-compose.yml` will configure 4 containers and connect them in the same bridged network:\n - [MongoDB](https://www.mongodb.com/)\n - [RSS-Bridge](https://github.com/RSS-Bridge/rss-bridge)\n - [RSSHub](https://github.com/DIYgod/RSSHub)\n - bot itself\n\nIt will also configure bot's environment variables to correctly connect it with MongoDB,\nand add configuration files which can be used for additional configuration of all containers.\n\nTechnically only the MongoDB and bot containers are necessary,\nif you don't plan of using RSS-Bridge or RSSHub.\nHowever, this serves as a nice example of how to deploy more complicated solution.\n\n## Configuration\n\n### MongoDB\nThe DB files will be stored in a mounted volume in `./mongo-db/data` subdirectory.\nThis means, that DB data is stored on the host, rather than on the container.\n\nNo additional configuration is required.\n\n### RSS-Bridge\nRSS-Bridge container can be started with `rss-bridge` Compose profile.\nWithout it the container won't be started.\n\nConfiguration files are stored in a mounted volume in `./rss-bridge/config` subdirectory.\n\nCurrently there's only a basic `config.ini.php`, which configures RSS-Bridge to output its errors\nas HTTP codes, rather than send it in the feed itself.\n\nYou can add any additional configuration you need, custom bridges, or whitelist.\nYou can use the official\n[RSS-Bridge documentation for Docker](https://rss-bridge.github.io/rss-bridge/For_Hosts/Docker_Installation.html)\nfor reference.\n\n\n### RSSHub\nRSSHub container can be started with `rss-hub` Compose profile.\nWithout it the container won't be started.\n\nThere are no configuration changes by default,\nhowever you can add your own parameters by modifying `./rss-hub/.env` file.\nThis file stores all environment variables loaded into the RSSHub container.\n\n\n### RSS reader Telegram bot\nThe bot itself requires some configuration to work correctly:\n - `./telegram-bot/config/custom_settings.yml` should be updated with Telegram bot token\n - `./telegram-bot/config/custom_feeds.yml` should be updated with your feed links\n\nWhen using one of the self-hosting solutions keep in mind that you should use service name\ninstead of IP address. In this case it will be either `rss-bridge` or `rss-hub`.\nPort still has to be provided.\n\nYou can use the `./telegram-bot/config/custom_settings.yml` for any additional configuration of the bot.\n`docker-compose.yml` adds this file to the container as a mounted volume and sets its path via `CUSTOM_SETTINGS_PATH` environment variable.\nYou can check out the [RSS reader Telegram bot](https://github.com/Electronic-Mango/rss-reader-telegram-bot)\nrepository for more details.\nThis way you can change bot's configuration without the need of modifying the source code\nand rebuilding bot's Docker image.\n\nWhole `./telegram-bot/config/` subdirectory is mounted as a container volume,\nso there's no need to rebuild the image if you change any files there (like the feeds YAML).\n\nBy default bot will also put there its interal logs, so you can access them without\ngetting into the container.\n\nDB host parameter is already set to MongoDB container (as service name `mongo-db`),\nso no additional configuration is required.\n\nWhen Docker Compose is run with `--build` flag a new Docker image will be built,\nusing Dockerfile in git submodule containing bot's source code.\n\n\n### Docker Compose profiles\nIn order to start either self-hosted RSS container you have to run Compose with their profiles:\n* `RSS-Bridge` starts with profile `rss-bridge`\n* `RSS-Bridge` starts with profile `rss-hub`\n\nYou can start Compose with both profiles if you want to run both solutions.\nKeep in mind that you also need to specify profiles when stopping containers via Compose.\n\nMore details about using Compose profiles are available in\n[Using profiles with Compose](https://docs.docker.com/compose/profiles/) Docker documentation page.\n\n\n## RSS reader Telegram bot source code\n\nThe source code for the bot itself is stored as a git submodule in this repository.\n\nAfter cloing this repository you should update it to the correct version,\notherwise you won't have access to bot source code and won't be able to build the image:\n```\ngit submodule update --init\n```\n\nAdditionally after every update to this repository you should also update the submodule,\nsince it might not happen automatically:\n```\ngit submodule update\n```\n\nWhen Docker Compose is run with `--build` flag a new Docker image will be built,\nusing Dockerfile in this submodule, so it is important the submodule is up to date.\n\nBoth this and the bot source code repositories on GitHub uses workflows to ensure,\nthat source code here is always up to date.\n\n\n## Run the bot\n\nYou can run the bot and all necessary containers in just a few steps:\n\n 1. Clone this repository\n 1. Update the bot source code submodule with `git submodule update --init`\n 1. Add your Telegram bot token to `./telegram-bot/config/custom_settings.yml` file\n 1. Optionally add allowed usernames to `./telegram-bot/config/custom_settings.yml` file\n 1. Add you feeds to `./telegram-bot/config/custom_feeds.yml`\n 1. Optionally add any configuration to either `./rss-bridge/config` or `./rss-hub/.env` if you need it\n 1. Run `docker compose up -d --build`\n\nIf you want to make any changes to configuration you can stop all containers and start them again:\n```\ndocker compose down\n# make your changes\ndocker compose up -d --build\n```\n\nIf you haven't made any changes to the bot source code you can skip the `--build` flag.\nKeep in mind, however, that without it any updates to the source code won't be present in\nthe container, since old version of the image will be used.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectronic-mango%2Frss-reader-telegram-bot-docker-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felectronic-mango%2Frss-reader-telegram-bot-docker-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectronic-mango%2Frss-reader-telegram-bot-docker-deployment/lists"}