# 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.