{"id":22080559,"url":"https://github.com/electronic-mango/memes-discord-bot-docker-deployment","last_synced_at":"2026-04-13T22:34:47.412Z","repository":{"id":158860232,"uuid":"522045022","full_name":"Electronic-Mango/memes-discord-bot-docker-deployment","owner":"Electronic-Mango","description":"Combining Reddit API API and Random media Discord bot into a Memes Discord bot.","archived":false,"fork":false,"pushed_at":"2024-10-26T12:44:39.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-01T11:51:54.387Z","etag":null,"topics":["discord","discord-bot","docker","docker-compose","memes","reddit","reddit-api"],"latest_commit_sha":null,"homepage":"","language":null,"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-08-06T20:16:26.000Z","updated_at":"2024-10-26T12:44:42.000Z","dependencies_parsed_at":"2023-11-25T20:21:36.054Z","dependency_job_id":"65e926f3-831c-471b-b972-4d4bb8ed5a0e","html_url":"https://github.com/Electronic-Mango/memes-discord-bot-docker-deployment","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Electronic-Mango/memes-discord-bot-docker-deployment","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Fmemes-discord-bot-docker-deployment","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Fmemes-discord-bot-docker-deployment/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Fmemes-discord-bot-docker-deployment/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Fmemes-discord-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/memes-discord-bot-docker-deployment/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Electronic-Mango%2Fmemes-discord-bot-docker-deployment/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31774163,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-13T20:17:16.280Z","status":"ssl_error","status_checked_at":"2026-04-13T20:17:08.216Z","response_time":93,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["discord","discord-bot","docker","docker-compose","memes","reddit","reddit-api"],"created_at":"2024-11-30T23:15:45.103Z","updated_at":"2026-04-13T22:34:47.370Z","avatar_url":"https://github.com/Electronic-Mango.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Memes Discord bot Docker deployment\n\nThis repository provides an example of how you can combine my two other projects - [Random media Discord bot](https://github.com/Electronic-Mango/random-media-discord-bot) and [Reddit API API](https://github.com/Electronic-Mango/reddit-fastapi-api) - into a **Memes Discord bot** via [Docker Compose](https://docs.docker.com/compose/).\n\nBoth Reddit API API and Random media Discord bot are stored in this repository as git submodules.\n\n\n\n## Table of contents\n\n- [Updates to source code of submodules](#updates-to-source-code-of-submodules)\n- [Configuration](#configuration)\n  - [Reddit API API](#reddit-api-api)\n  - [Random media Discord bot](#random-media-discord-bot)\n- [Run the bot](#run-the-bot)\n\n\n\n## Updates to source code of submodules\n\n[Reddit API API](https://github.com/Electronic-Mango/reddit-fastapi-api) and [Random media Discord bot](https://github.com/Electronic-Mango/random-media-discord-bot) bot are stored in this repository as git submodules.\n\nAfter cloning this repository you have to update submodules to their correct versions.\nOtherwise you won't be able to build their Docker images.\nYou can update the submodules via:\n\n```bash\ngit submodule update --init\n```\n\nAfter future update to submodules you have to update them after rebasing this repository via:\n\n```bash\ngit submodule update\n```\n\nWhen Docker Compose is run with `--build` flag a new Docker images will be built, using Dockerfile in submodules, so it is important that they are up to date.\n\nThis and submodules repositories on GitHub use workflows to ensure, that source code here is always up to date.\n\n\n\n## Configuration\n\n### Reddit API API\n\n[**Reddit API API**](https://github.com/Electronic-Mango/reddit-fastapi-api) configuration is stored in `./reddit-fastapi-api/config/custom_settings.yml` file.\nThis file isn't loaded into the Docker image, it's stored in Docker container mounted volume as `/config/custom_settings.yml`.\n\n`docker-compose.yml` configures `CUSTOM_SETTINGS_PATH` environment variable to point to correct settings YAML.\n\nIn order for the API to work you have to [create a Reddit app](https://old.reddit.com/prefs/apps/) and supply its ID and secret in `./reddit-fastapi-api/config/custom_settings.yml` in this project:\n\n```yaml\nreddit:\n  client:\n    # Your Reddit app ID\n    id: \u003creddit-app-id\u003e\n    # Your Reddit app secret\n    secret: \u003creddit-app-secret\u003e\n```\n\nOther parameters will use their default values stores in `settings.yml` file in Reddit API API itself.\n\nYou can use `./reddit-fastapi-api/config/custom_settings.yml` for additional configuration of Reddit API API, but for this bot only those two parameters are necessary.\n\nMore detailed description of configuration is available in [**Reddit API API**](https://github.com/Electronic-Mango/reddit-fastapi-api) project and its default settings YAML.\n\n\n### Random media Discord bot\n\n[**Random media Discord bot**](https://github.com/Electronic-Mango/random-media-discord-bot) is stored in `./random-media-discord-bot/config/` subdirectory.\nIt consists of two files:\n\n * `custom_settings.yml` - custom parameters of the bot, similarly to Reddit API API\n * `custom_sources.yml` - file with sources of memes and copypastas to send by the bot\n\nBoth files are not stored in the Docker image, but in containers mounted volume.\n`docker-compose.yml` configures `CUSTOM_SETTINGS_PATH` environment variable to point to correct settings YAML.\nPath to `custom_sources.yml` is defined at the end of `custom_settings.yml`.\n\nThere's only one parameter needed to run the bot - its token.\nIt can be configured in `./random-media-discord-bot/config/custom_settings.yml`:\n\n```yaml\nbot:\n  # Fill with your Discord bot token\n  token: \u003cdiscord-bot-token\u003e\n```\n\n`custom_settings.yml` also contains configuration for command (and command group) names and descriptions, to better match the fact that it's going to be sending back memes and copypastas.\n\nOther parameters will use their default values stores in `settings.yml` file in Random media Discord bot itself.\n\nBoth memes and copypastas are loaded from reddit articles.\nYou can check `custom_sources.yml` whether it fits your preference for subreddits to read data from.\n\n`media` section defines sources for images loaded via `/meme get` command.\n`text` section defines sources for copypastas loaded via `/copypasta get` command.\nYou can change subreddits by supplying new entries, or modifying existing ones, and just change subreddit name in the URL.\nMore detailed description of API endpoints is available in [Reddit API API project page](https://github.com/Electronic-Mango/reddit-fastapi-api).\n\nMore detailed description of settings YAML and sources YAML is available in [Random media Discord bot](https://github.com/Electronic-Mango/random-media-discord-bot) project and its default YAML files.\n\n\n\n## Run the bot\n\nYou can run the bot in just a few steps:\n\n 1. Clone this repository\n 2. Update submodules with `git submodule update --init`\n 3. Fill Reddit app ID and secret in `./reddit-fastapi-api/config/custom_settings.yml`\n 4. Fill Discord bot token in `./random-media-discord-bot/config/custom_settings.yml`\n 5. Run `docker compose up -d --build`\n\nIf you want to restart the containers without rebuilding the images you can skip `--build` flag.\n\nConfiguration files for both submodules are stored in the container as mounted volumes.\nChanges to them will be applied after containers restart, you don't need to rebuild Docker images.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectronic-mango%2Fmemes-discord-bot-docker-deployment","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Felectronic-mango%2Fmemes-discord-bot-docker-deployment","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Felectronic-mango%2Fmemes-discord-bot-docker-deployment/lists"}