unraidctl is a CLI tool to interact with unraid servers. It allows you to manage various aspects of your unraid server from the command line using the unraid GraphQL API.
It stands for "unraid control" and is inspired by tools like kubectl for Kubernetes.
unraidctl also provides a Go library that can be imported into your own Go projects to interact with unraid servers programmatically. Check out the pkg directory for more details.
Requirements:
- Go 1.25+
Clone the repository:
git clone git@github.com:unshade/unraidctl.git
cd unraidctlSet up your environment variables. You can copy the example file and modify it:
cp .env.example .envYou can find the required values in your unraid server settings. Please refer to this documentation if needed: unraid API Documentation.
When generating an API key, make sure it has the necessary permissions for the actions you want to perform with unraidctl. Please follow the least privilege principle and only grant the permissions that are absolutely necessary.
If you'd like to contribute to unraidctl, please fork the repository and create a pull request with your changes. Contributions are welcome! Please make sure to follow the existing code style and include tests for any new functionality.
Pipeline and code quality checks are automatically run on each pull request to ensure code quality. They MUST pass before your changes can be merged.