62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
# Lumi Bot
|
|
|
|
Discord bot + WebUI with role-based access, plugin management, and self-update support.
|
|
|
|
## Quick start
|
|
|
|
Requires Node.js 18+.
|
|
|
|
1. Install dependencies:
|
|
```
|
|
npm install
|
|
```
|
|
2. Run with auto-restart:
|
|
```
|
|
npm run run
|
|
```
|
|
3. Open `http://localhost:3000/setup` and enter your Discord app + bot settings.
|
|
|
|
You can also seed local configuration with a `.env` file. Use `.env.example`
|
|
as the template; `.env` is ignored by git.
|
|
|
|
## Discord app setup
|
|
|
|
- OAuth2 redirect URI: `http://localhost:3000/auth/discord/callback`
|
|
- OAuth2 scopes: `identify`, `guilds`, `guilds.members.read`
|
|
- Add the bot to your server and copy the Guild ID.
|
|
|
|
## WebUI roles
|
|
|
|
The WebUI maps Discord roles to access levels:
|
|
- `DISCORD_ADMIN_ROLE_ID`
|
|
- `DISCORD_MOD_ROLE_ID`
|
|
|
|
You can set these in `.env` or change role IDs in **Admin → Settings**.
|
|
|
|
## Plugins
|
|
|
|
Use **Admin → Plugins** to install, enable, update, or uninstall plugins.
|
|
You can also create a local plugin from the WebUI.
|
|
|
|
## Twitch bot
|
|
|
|
Configure Twitch chat settings in **Admin → Settings**:
|
|
- `twitch_bot_username`
|
|
- `twitch_bot_oauth` (OAuth token)
|
|
- `twitch_channels` (comma-separated)
|
|
|
|
Custom commands can target Discord, Twitch, or both from **Admin → Commands**.
|
|
|
|
## Users and linking
|
|
|
|
Users have an internal UUID and username. Link Twitch accounts in **Profile** and manage usernames in **Profile** or **Admin → Users**.
|
|
|
|
## Theming
|
|
|
|
Use **Admin → Theming** to adjust light and dark mode colors. The UI uses your OS theme preference.
|
|
|
|
## Notes
|
|
|
|
- Auto-update uses `git pull` from the configured remote + branch.
|
|
- Auto-restart uses `run.js` to respawn the process after updates or crashes.
|