{"id":20368686,"url":"https://github.com/binn/haruna","last_synced_at":"2026-05-02T18:40:50.810Z","repository":{"id":138216059,"uuid":"144217160","full_name":"binn/haruna","owner":"binn","description":"Modular Discord Bot for the \"cakechan\" server (owned by rinixx) built on C# and Docker","archived":false,"fork":false,"pushed_at":"2018-09-12T21:48:26.000Z","size":210,"stargazers_count":4,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-14T11:30:33.097Z","etag":null,"topics":["bin","binzy","bot","c-sharp","cakechan","discord","discord-net","docker","dotnet","dotnet-core","haruna","netcore","rinixx"],"latest_commit_sha":null,"homepage":"","language":"C#","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/binn.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,"zenodo":null}},"created_at":"2018-08-10T00:31:19.000Z","updated_at":"2021-11-27T05:04:05.000Z","dependencies_parsed_at":null,"dependency_job_id":"8270e600-444e-40cd-8840-f83052e8ca64","html_url":"https://github.com/binn/haruna","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/binn/haruna","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binn%2Fharuna","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binn%2Fharuna/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binn%2Fharuna/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binn%2Fharuna/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/binn","download_url":"https://codeload.github.com/binn/haruna/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/binn%2Fharuna/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32545870,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-02T12:25:33.646Z","status":"ssl_error","status_checked_at":"2026-05-02T12:24:51.733Z","response_time":132,"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":["bin","binzy","bot","c-sharp","cakechan","discord","discord-net","docker","dotnet","dotnet-core","haruna","netcore","rinixx"],"created_at":"2024-11-15T00:42:35.935Z","updated_at":"2026-05-02T18:40:50.795Z","avatar_url":"https://github.com/binn.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://cdn.discordapp.com/avatars/477192814405484564/42cafea631db81597aa908ca353fd8b9.jpg?size=256\" style=\"border-radius: 28%\" alt=\"Haruna Logo\" height=\"128px\" width=\"128px\"\u003e\u003c/img\u003e\n\u003c/p\u003e\n\u003cbr/\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://travis-ci.org/binsenpai/haruna\"\u003e\n    \u003cimg src=\"https://travis-ci.org/binsenpai/haruna.svg?branch=master\" alt=\"Build status\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://hub.docker.com/r/binzy/haruna/\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/docker-1.0-blue.svg\" alt=\"Docker Status\" /\u003e\n  \u003c/a\u003e\n  \u003cbr/\u003e\n\u003c/p\u003e\n\n# Haruna\n\nHaruna is *the* lightweight and simple moderation bot. She's only got a handful of commands and emergency server management. She's designed and made for the \"[cakechan](https://discord.gg/QEtRdka)\" server, a Discord server owned by a friend of mine.\n\nShe's simple, easy to run, and is fast. She runs on .NET Core so she's also cross-platform!\n\nHaruna relies on the .NET Core runtime, Discord.Net, Microsoft.Extensions.Logging, and Microsoft.Extensions.DependencyInjection. All these packages can be found on NuGet and can be restored using `dotnet restore`.\n\n## Getting Started\n\nHosting Haruna is easy, but you'll need Docker to use Haruna's one-click run.\nTo run Haruna:\n\n```s\ndocker run -d -e HARUNA_TOKEN=\"YOUR_BOTS_TOKEN_HERE\" \\\n-e HARUNA_MUTE=\"MUTE_ROLE_ID\" \\\n-e HARUNA_PREFIX=\"BOT_PREFIX\" \\\n-e HARUNA_MODS=\"MOD_IDS\" \\\n-e HARUNA_CHANNELS=\"CHANNEL_IDS\" \\\n-e HARUNA_GAMES=\"being a good mod;splitting users;thanos did nothing wrong.;?!?!\" binzy/haruna\n```\n\n\u003csmall\u003e\u003cb\u003eQuick note:\u003c/b\u003e Docker environment files are also compatible.\u003c/small\u003e\n\n**Note**: Haruna's responses contain vulgar language that isn't acceptable in some areas, please modify the source code if you'd like this removed. In the future these vulgar responses will be removed from her.\n\n| Environment Variable | Description |\n|----------------------|-------------|\n| `HARUNA_TOKEN` | The token of your Discord bot. |\n| `HARUNA_PREFIX` | The prefix of Haruna's commands. Haruna also accepts @mention commands. |\n| `HARUNA_MUTE` | The ID of the role to give to muted users. |\n| `HARUNA_MODS` | A list of role IDs seperated by a semicolon (`;`) that have moderation permissions |\n| `HARUNA_CHANNELS` | A list of channel IDs seperated by a semicolon (`;`) that will get locked when using the `lock all` command. |\n| `HARUNA_GAMES` | A list of strings seperated by a semicolon (`;`) that will represent the bot's \"Playing\" tag. Updates every 5 minutes |\n\n## Commands\n\n| Base Command | Description | Example |\n|--------------|-------------|---------|\n| `.mute` / `.m` | Assigns `HARUNA_MUTE` role to a given user. Mute is permanent unless otherwhise specified | `.m @user` / `.m @user 10` |\n| `.unmute` / `.um` | Unmutes user (Unassigns `HARUNA_MUTE` role.) | `.um @user` |\n| `.prune` / `.p` | Deletes last `x` messages from the current channel, or messages from a specified user in the last `x` messages if specified. | `.p 10` / `.p 10 @user` |\n| `.kick` / `.k` | Kicks given user. Any text after mention is used as a reason in the guild's Audit Log. | `.k @user spamming` |\n| `.ban` / `.b` | Bans given user. Any text after mention is used as a reason in the guild's Audit Log. | `.b @user spamming` |\n| `.softban` / `.sb` | Bans and then immidiately unbans given user. Any text after mention is used as a reason in the guild's Audit Log. | `.sb @user spamming` |\n| `.lock` / `.l` | Denies `Send Messages` and `Add Reactions` permissions for the `@everyone` role in the specified channel, or the current channel if none is specified. | `.l #general` |\n| `.unlock` / `.ul` | Resets `Send Messages` and `Add Reactions` permissions for the `@everyone` role in the specified channel, or the current channel if none is specified. | `.ul #general` |\n| `.lock all` / `.l a` | Locks all channels specified in `HARUNA_CHANNELS` | `.l a` |\n| `.unlock all` / `.ul a` | Unlocks all channels specified in `HARUNA_CHANNELS` | `.ul a` |","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinn%2Fharuna","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbinn%2Fharuna","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbinn%2Fharuna/lists"}