diff options
| author | hachem <im@hachem.wtf> | 2026-08-25 11:50:07 +0200 |
|---|---|---|
| committer | hachem <im@hachem.wtf> | 2026-08-25 11:50:07 +0200 |
| commit | 43d92fd60d75c4a1260757c75b1e1eefc0ea8952 (patch) | |
| tree | 4d7472c41af2448bb892e9a4f90e889f392f8591 | |
| parent | 880b0c7db57f9bbb7864a1893ad30e62a1b37e8e (diff) | |
[chore]: update README
| -rw-r--r-- | README.md | 90 |
1 files changed, 28 insertions, 62 deletions
@@ -1,17 +1,18 @@ # Benson -Mod Manager from hell, for Willy World +A Minecraft server manager from hell. -## Setup +Benson started as a little server manager for the Minecraft server a few friends and I play on. The server runs on one of our machines, and originally Benson was just a way to make managing that server a little less annoying. Then it progressively grew. I added automatic mod updates through Modrinth. Then compatibility checking. Then backups. Then a way to generate a fresh server without having to manually download everything and set it up again. At some point, Benson stopped being just a server manager and became a tool for spinning up Minecraft servers whenever we feel like doing something stupid. It can manage mods for an existing server, keep them up to date, back up the server before making changes, and generate completely new servers from a configuration. -```bash -npm install -``` +It's probably way more complicated than it needs to be, but that's kind of the point. The only reason this is public is because a friend of mine told me it might be useful for other people. -## Configuration +> [!WARNING] +> This is currently held together with duct tape and Node.js. I plan to rewrite the entire thing in Go properly at some point. -### `config/config.json` +## Setup +Install the Node dependencies with `npm i` and create the configuration files under `config/`. ```json +# `config/config.json` { "channel_id": "YOUR_CHANNEL_ID_HERE", "check_interval_minutes": 60, @@ -27,77 +28,42 @@ npm install "simple-voice-chat" ] } -``` - -### `config/api.json` (for Discord bot) -```json +# `config/api.json` { "token": "your-bot-token-here" } ``` -## Discord Bot +## Discord bot +The Discord bot periodically checks the configured mods on Modrinth and posts compatibility reports and update information to a given Discord channel. -Monitors Modrinth for mod updates and posts compatibility reports to a Discord channel. +The bot runs in a separate process so it can be hosted on a server independently from the server manager. Just run: ```bash npm run bot ``` -## Server Manager CLI - -Interactive CLI for managing mods and server files. +## Server manager +To interact with Benson, use the interactive CLI: ```bash npm run benson ``` -``` - ╔══════════════════════════════════════╗ - ║ BENSON CLI v1.0 ║ - ║ Fabric Server for MC 1.21.10 ║ - ╚══════════════════════════════════════╝ - - Type 'help' for commands. - -benson> _ -``` +The CLI provides the following commands: -### Commands +| Command | Description | +| ----------------- | ----------------------------------------------------------------- | +| `list-mods` | List the configured mods | +| `check` | Check whether the configured mods are compatible | +| `generate` | Download the server and mods and generate a server directory | +| `merge` | Back up the existing server and merge the generated files into it | +| `clean generated` | Remove the generated server directory | +| `clean latest` | Remove the latest backup | +| `clean all` | Remove both generated files and the latest backup | +| `help` | Show available commands | +| `exit` | Exit Benson | -| Command | Description | -|---------|-------------| -| `list-mods` | List configured mods | -| `check` | Check if all mods are compatible before generating | -| `generate` | Download mods + server, run to generate files | -| `merge` | Backup server, move generated files to server location | -| `clean generated` | Remove server directory | -| `clean latest` | Remove latest backup zip | -| `clean all` | Remove both generated and latest backup | -| `help` | Show available commands | -| `exit` | Exit the CLI | - -## Project Structure - -``` -Benson/ -├── lib/ -│ ├── modrinth.js # Shared Modrinth API functions -│ └── config.js # Shared config/cache utilities -├── bot/ -│ └── app.js # Discord bot -├── cli/ -│ ├── app.js # CLI entry point -│ └── commands/ -│ ├── check.js # Check command -│ ├── clean.js # Clean commands -│ ├── generate.js # Generate command -│ ├── list.js # List-mods command -│ └── merge.js # Merge command -├── config/ -│ ├── config.json # Main configuration -│ └── api.json # Discord token (not in repo) -├── cache/ # Version cache (auto-generated) -└── server/ # Server files (auto-generated) -``` +## License +Benson is licensed under the Apache License 2.0. See [LICENSE](LICENSE) for more details. |
