{"id":16308796,"url":"https://github.com/dgl/redis-irc-bot","last_synced_at":"2025-10-06T21:55:44.644Z","repository":{"id":192961045,"uuid":"687817330","full_name":"dgl/redis-irc-bot","owner":"dgl","description":"The minimal IRC bot framework: a bash script backed by Redis","archived":false,"fork":false,"pushed_at":"2024-08-24T09:31:43.000Z","size":18,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-09-11T09:44:38.836Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://dgl.cx/redis-irc-bot","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2023-09-06T04:19:55.000Z","updated_at":"2024-08-24T09:31:47.000Z","dependencies_parsed_at":"2023-12-23T13:38:23.563Z","dependency_job_id":"3d031ad5-4386-4f36-806c-8bbad7bd97ed","html_url":"https://github.com/dgl/redis-irc-bot","commit_stats":null,"previous_names":["dgl/redis-irc-bot"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/dgl/redis-irc-bot","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgl%2Fredis-irc-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgl%2Fredis-irc-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgl%2Fredis-irc-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgl%2Fredis-irc-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgl","download_url":"https://codeload.github.com/dgl/redis-irc-bot/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgl%2Fredis-irc-bot/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278686634,"owners_count":26028325,"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","status":"online","status_checked_at":"2025-10-06T02:00:05.630Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2024-10-10T21:18:45.156Z","updated_at":"2025-10-06T21:55:44.618Z","avatar_url":"https://github.com/dgl.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A redis IRC bot framework\n\nRedis pubsub is great. How about the most simple IRC bot framework based on\nthat? The idea is this stays connected to IRC and your logic just sits\nelsewhere, potentially multiple services, for microservice IRC action; all\ncommunicating via Redis.\n\n_(lol; it's just a shell script)_\n\nAt its most simple this can be used like a Redis backed\n[irccat](https://github.com/irccloud/irccat). But more minimal.\n\nYou could also consider [ii](https://tools.suckless.org/ii/).\n\n## Usage\n\nRun this somewhere:\n\n```cli\n$ ./redis-irc-bot localhost irc.example.com disbot channel\n```\n\nSend stuff:\n\n```cli\n$ redis-cli publish channel hello\n```\n\nFor receiving stuff you can subscribe to `channel:in` and do what you like (see\n[bot.sh](examples/bot.sh)), send responses on `channel`.\n\n## Requirements\n\n- Redis somewhere and redis-cli on your machine\n- [Stdbuf](https://www.gnu.org/software/coreutils/manual/html_node/stdbuf-invocation.html) from coreutils (because redis-cli does [strange buffering things](https://stackoverflow.com/a/66103101))\n- I assume you're in the modern world, so you need a netcat with the `-c` (TLS) option and a TLS IRC server.\n  - You might need to compile this from [LibreSSL portable's](https://github.com/libressl/portable) version of nc, as `-c` is what OpenBSD has but `netcat-openbsd` on Debian is [different](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1027124).\n\n## Docker\n\nYou can run this via Docker:\n\n```cli\n$ docker run --init --restart=unless-stopped -d -e REDIS_HOST=my-redis -e IRC_SERVER=irc.example.com -e IRC_NICK=somebot -e IRC_CHANNEL=foo davidgl/redis-irc-bot\n```\n\nFor Kubernetes, just arrange to set the environment variables correctly in your pod spec.\n\n## Old TLS versions\n\nSome IRC servers run old TLS versions. You can pass options to nc via the IRC sever parameter, e.g.\n\n```\n./redis-irc-bot localhost '-T protocols=legacy -T ciphers=all irc.example.com' bot channel\n```\n\nSimilar is possible for Docker.\n\n## Things built on this\n\n- [sandbox](https://gi.tl/dgl/sandbot): Crazy code execution security hole in one\n\n## License\n\n[0BSD](https://dgl.cx/0bsd). No warranty.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgl%2Fredis-irc-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgl%2Fredis-irc-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgl%2Fredis-irc-bot/lists"}