Features: - SQLite database with better-sqlite3 for guild configurations - Auto-registration when bot joins new guilds with welcome messages - Soft delete system preserves settings when bot is removed - Dynamic configuration via /config slash command with subcommands - Automatic migration from config.json to database on first run - Support for scheduled events with timezone preservation Technical Implementation: - Node.js 20 for better SQLite compatibility in Docker - Full Debian base image with npm for reliable native module compilation - Database persistence via Docker volume (./data) - Hybrid configuration system (database primary, file fallback) - JSON storage for complex schedule objects with timezone support Database Schema: - guilds table with soft delete (is_active flag) - scheduled_events table with JSON schedule storage - bot_config table for global settings - Auto-initialization and seeding from existing config Admin Features: - /config show - View current server settings - /config subcommands - Update prefix, volume, features, etc. - Administrator permissions required for configuration changes - Graceful handling of missing or malformed data 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
16 lines
364 B
Docker
16 lines
364 B
Docker
# Use Node 20 LTS with full Debian for better compatibility
|
|
FROM node:20
|
|
|
|
WORKDIR /app
|
|
|
|
# Copy package files (npm will work better for native modules in Docker)
|
|
COPY package*.json ./
|
|
|
|
# Install dependencies using npm (no security restrictions like pnpm)
|
|
RUN npm install --production
|
|
|
|
# Copy application code
|
|
COPY . .
|
|
|
|
# Start the bot
|
|
CMD [ "node", "src/index.js" ] |