{"id":20993659,"url":"https://github.com/Melijn/melijn-bot","last_synced_at":"2025-05-14T20:34:52.391Z","repository":{"id":38020643,"uuid":"408783187","full_name":"Melijn/melijn-bot","owner":"Melijn","description":"A multipurpose discord bot written in kotlin, using jda","archived":false,"fork":false,"pushed_at":"2024-11-01T23:16:21.000Z","size":17638,"stargazers_count":18,"open_issues_count":14,"forks_count":9,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-11-02T00:18:35.169Z","etag":null,"topics":["discord","discord-bot","hacktoberfest","jda","jda-ktx","kotlin"],"latest_commit_sha":null,"homepage":"https://melijn.com","language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Melijn.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":"2021-09-21T10:53:46.000Z","updated_at":"2024-11-01T23:16:26.000Z","dependencies_parsed_at":"2024-06-23T00:13:02.372Z","dependency_job_id":null,"html_url":"https://github.com/Melijn/melijn-bot","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/Melijn%2Fmelijn-bot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Melijn%2Fmelijn-bot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Melijn%2Fmelijn-bot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Melijn%2Fmelijn-bot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Melijn","download_url":"https://codeload.github.com/Melijn/melijn-bot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225309918,"owners_count":17454089,"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":["discord","discord-bot","hacktoberfest","jda","jda-ktx","kotlin"],"created_at":"2024-11-19T07:15:34.478Z","updated_at":"2024-11-19T07:15:38.192Z","avatar_url":"https://github.com/Melijn.png","language":"Kotlin","funding_links":[],"categories":["Bots"],"sub_categories":[],"readme":"# melijn-bot\nA multipurpose [discord](https://discord.com) bot written in [kotlin](https://kotlinlang.org/)\nSome libraries we use:\n - [jda](https://github.com/DV8FromTheWorld/JDA) - java discord api\n - [kord-extensions](https://github.com/Melijn/kord-extensions) - kord command framework and utils\n - [kord-kommons](https://github.com/ToxicMushroom/kord-kommons) - kord discord bot utilities and exposed SQL code generation utils\n - [ktor](https://ktor.io/) - kotlin http client/server\n - [exposed](https://github.com/JetBrains/Exposed) - kotlin SQL framework from jetbrains (we don't use the DAO's)\n\n## general information\nThis is the third rewrite of Melijn (links to [previous](https://github.com/ToxicMushroom/Melijn) and [first](https://github.com/ToxicMushroom/melijn-legacy) repositories).\nThese projects serve as a fun hobby project and learning place for me. Over the years we have grown a lot in size (amount of users) and our current codebase was messy and kinda unmaintainable (over 260 top level commands and about 80 database tables).\nThis rewrite will keep scalability and maintainability in mind. Our website will also reside in this repository and use ktor. ~~NO MORE JS FRAMEWORK WOOHOO~~.\n\n## Contributions\nContributions are welcome \u003c3\n\u003cbr\u003ePlease follow the following guidelines to make it a nice experience for everyone.\n 1. Check if there is an issue for what you want to add (if not create one)\n 2. If there is an issue, check that there is no one working on it already (open draft PRS or replies indicating that someone is working on it).\n 3. Don't solve multiple github issues in one PR (bug fixes or typos are acceptable)\n 4. Follow our coding style and naming conventions.\n\n## Development environment\nYou will need: \n- a Postgresql server\n- a Redis server\n- a discord user account, bot user and server\n\nIf you want to use docker for your dev environment: [example-docker-compose.yml](./example-docker-compose.yml) \n\nOptional (related features won't work unless supplied ofcourse):\n- [Lavalink](https://github.com/freyacodes/Lavalink) server (for music)\n- Spotify developer application tokens\n- Other API keys\n\n*Make sure intellij is using UTF-8 for property files, otherwise unicode might replaced with ? in messages.*\n*KSP code generation may sometimes print random errors (e.g. -1), just recompile will fix them normally :/*\n\nStarting the bot is done using the main function in [Melijn.kt](./bot/src/main/kotlin/me/melijn/bot/Melijn.kt) at the bottom.\n\nAn example configuration can be found here: [./example.env](./example.env)\u003cbr\u003e\nCopy it to `.env` and place it in the root (same level as example.env)\n\n## Selfhosting\nYou will need:\n- a Postgresql server\n- a Redis server\n- a discord user account, bot user and server\n\u003cbr\u003e\nand optionally:\n- [Lavalink](https://github.com/freyacodes/Lavalink) server (for music)\n- Spotify developer application tokens\n- Other API keys\n\nIt is recommended to run the bot inside docker using the [example-docker-compose.yml](./example-docker-compose.yml). \u003cbr\u003e\nTo update the version you can use the `:latest` version tag OR you can manually update the version hash (you can find the latest version hashes [here](https://github.com/Melijn/melijn-bot/pkgs/container/melijn-bot)).\u003cbr\u003e\n\n`docker compose pull; docker compose down; docker compose up -d` pulls the latest version if using `:latest` and restarts the containers.\n\nFor installing docker and docker-compose follow these instructions:\n- https://docs.docker.com/engine/install/#server\n- https://docs.docker.com/compose/install/compose-plugin/#installing-compose-on-linux-systems\n\n*Inside the .env file you can point to the service name of the other containers inside this file as host (e.g. DB_HOST=melijn-postgres), docker will route it to the correct container*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMelijn%2Fmelijn-bot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMelijn%2Fmelijn-bot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMelijn%2Fmelijn-bot/lists"}