One bot. One workspace.
Veyra’s bot and website share PostgreSQL. The dashboard saves configuration and queues actions; the bot reads the same records, verifies Discord permissions, and reports the outcome. You do not need to paste a bot token into the website.
1. Create your Discord application
Open the Discord Developer Portal, create Veyra, and add a bot. Keep the bot token and OAuth client secret in your server’s environment. Enable Server Members and Message Content intents for the documented prefix commands and member features.
2. Configure local credentials
Copy .env.example to .env in the Veyra folder. Fill in the application ID, client secret, bot token, a strong session encryption key, and database URL. Use the same database for the web and bot processes.
DISCORD_CLIENT_ID=your_application_id DISCORD_CLIENT_SECRET=your_oauth_secret DISCORD_TOKEN=your_bot_token APP_URL=http://localhost:3000 SESSION_ENCRYPTION_KEY=at_least_32_random_characters DATABASE_URL=postgresql://veyra:password@localhost:5432/veyra
3. Register the sign-in callback
In OAuth2 → Redirects, add exactly http://localhost:3000/api/auth/callback for development. For deployment, add https://your-domain.example/api/auth/callback and set APP_URL to that domain.
4. Invite and start Veyra
The invite starts with no broad permissions. Grant only the permissions needed by the modules you enable, and place Veyra’s role above the members and roles it must manage. Run the database migration before starting the bot and website. Slash registration uses the same shared command registry.
5. Your own domain and an always-on bot
Run the bot, Next.js website, PostgreSQL, and Caddy on one VPS with Docker Compose. Point the domain’s A record to the VPS IP. Open ports 80 and 443; Caddy serves the website with HTTPS. Keep PostgreSQL private inside the Docker network. A restart policy keeps services running after a reboot.
A custom domain usually has a yearly registration fee. The domain points to your server; it does not keep the bot online. The VPS runs the bot continuously, even while your computer is off.
External services
AI chat and transcription, music identification, TikTok, sports, Valorant, Discord-to-Roblox account links, and media conversion need provider integrations or additional software. The source does not identify providers for all of these. Their directory entries remain marked as blocked or in progress until an adapter and its tests exist. YouTube notifications can use public feed subscriptions; delivery must still be configured per server.
Set up your server
Sign in with Discord and choose a server you own or can manage. Configure the moderation log, jail role and channel, staff access, and module settings. Evidence is required for punishment cases. Automated security starts in alert mode until the owner completes its setup.
Connect with Discord ↗