Go to file
2026-06-16 10:07:11 +02:00
docs updates: allow confirmed unversioned repo updates 2026-06-16 10:05:37 +02:00
plugins ui: refine homepage builder and update controls 2026-06-16 09:19:27 +02:00
scripts ui: add streamed interactions and homepage controls 2026-06-16 08:30:40 +02:00
src updates: allow confirmed unversioned repo updates 2026-06-16 10:05:37 +02:00
.env.example Initial sanitized import 2026-05-30 20:37:42 +02:00
.gitignore ui: refine homepage builder and update controls 2026-06-16 09:19:27 +02:00
Discord profile banner.png Initial sanitized import 2026-05-30 20:37:42 +02:00
package-lock.json Initial sanitized import 2026-05-30 20:37:42 +02:00
package.json ui: modernize WebUI and add managed themes 2026-06-15 23:58:24 +02:00
README.md updates: add version-aware recovery flow 2026-06-16 09:44:16 +02:00
run.js updates: add version-aware recovery flow 2026-06-16 09:44:16 +02:00
safe-mode.js updates: add version-aware recovery flow 2026-06-16 09:44:16 +02:00

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.

Updates and recovery

Use Admin → Updates for version-aware core and plugin updates. Lumi reads repo metadata from main by default, can explicitly target the newest experimental-* branch, creates snapshots before updates, blocks unsafe major jumps without compatibility bridge metadata, and keeps advanced ZIP updates hidden behind manual reveal controls.

Recovery mode can be started with LUMI_SAFE_MODE=1 npm run run, node run.js --safe-mode, or data/recovery/safe-mode.flag. See docs/updates.md and docs/recovery-mode.md.

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 select one of six read-only Lumi themes. Duplicate a built-in or custom theme to edit colors, surfaces, controls, status colors, focus states, radius, shadows, and spacing with a live light/dark preview. Custom themes can be applied, renamed, duplicated, and deleted. Invalid or incomplete values fall back safely to the selected built-in base theme.

Developer and modding conventions are documented in docs/lumi-ui.md.

Notes

  • Auto-update uses git pull from the configured remote + branch.
  • Auto-restart uses run.js to respawn the process after updates or crashes.