Needle
Needle is a Discord bot that helps you declutter your server by creating Discord threads automatically.👋 Getting started
The easiest way to start using Needle in your server is to use the hosted instance. Click here to invite Needle to your Discord server! If you have any questions, feel free to join the support server and check the Frequently Asked Questions.
🛠️ Self-hosting (advanced)
The hosted instance of Needle is customizeable and should be enough for most users. However, if you have special requirements and want to modify the functionality of Needle, you will have to fork the repository and self-host your own instance. This requires programming knowledge and is only for advanced users - support for this will be limited.
Needle requires an environment with Node.js version 16.9.0
or higher, along with persistent storage for per-server config files - shared hosts (like Replit and Heroku) will not work.
- Clone or download the latest release of Needle (branch:
stable
). - Copy
.env.example
to.env
and fill in your bot's token and application ID. - Run
npm install
to install Needle's dependencies. - Run
npm run build
to compile Needle's code. - Run
npm run deploy
to setup slash commands.- Slash commands can take up to one hour to show up in all servers.
- Run
npm start
to start Needle 🎉
Needle requires the following permissions to function, along with the applications.commands
and bot
scopes.
- View channels
- Send messages
- Send messages in threads
- Create public threads
- Read message history
You can use this link to invite your self-hosted version of Needle, replacing <APP ID>
with your bot's application ID:
https://discord.com/oauth2/authorize?client_id=<APP ID>&permissions=309237713920&scope=bot%20applications.commands
🐳 Docker
Needle has an official Docker image. Releases are tagged by their minor & patch version (e.g. 2.0.0
& 2.0
), with the latest release tagged latest
. Branches are tagged by their name. To run the image, write the following command, replacing token
with your bot's token:
docker run -d --name Needle --env DISCORD_API_TOKEN=token discord-needle ghcr.io/MarcusOtter/discord-needle:latest
By default, this will create an anonymous volume for /configs
. To change the location, add -v /path/to/configs:/configs
to the command.
There is also an example docker-compose.yml
file.
You'll still need to deploy Needle's slash commands - follow the regular self-hosting instructions apart from step 6.
🤝 Contributing
Contribution guidelines coming soon ™️
Join the Discord if interested!
If you want to support Needle in other ways, consider sponsoring the development of Needle.
You can also vote for and review the bot on top.gg.
📜 License
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.