-
Notifications
You must be signed in to change notification settings - Fork 0
Home
SDAC is a Discord media submission, guessing-game, moderation, and web dashboard system. It lets Discord users submit screenshots, images, audio, and video through guided slash commands, while server staff manage categories, approvals, games, leaderboards, releases, backups, users, and server settings from Discord or the Flask dashboard.
This wiki documents the public and operational parts of the project. It intentionally does not include secrets, live tokens, private credentials, database contents, or private user data.
- Overview - what SDAC is, how the parts fit together, and where to start.
-
Installation and Setup - install order and setup map.
- Server Installation - full production server install.
- Bot Setup - Discord application, bot invite, slash commands, channels, categories, and server features.
- Server Owner Quick Setup - fast invite, /sdac setup, custom command names, command sync, and restart checks.
- Dashboard Setup - admin accounts, OAuth, Nginx/HTTPS, sidebar/theme/layout, and public pages.
-
Core Components - how the major SDAC pieces work after setup.
- Server - production path, services, environment variables, Nginx, health, and deployment.
- Bot - Discord commands, submissions, games, polls, setup, backups, and bot-owner controls.
- Dashboard - public pages, admin pages, sidebar/theme/layout controls, OAuth, and APIs.
- App - SDACCompanion, Android builds, signing, backend API expectations, and SDK app direction.
-
Administration - access, permissions, and data/privacy handling.
- Roles and Permissions - user, trusted, moderator, admin, server owner, and bot owner behavior.
- Data and Privacy - what data exists, how it is scoped, and what to avoid publishing.
-
Operations - production care, releases, and troubleshooting.
- Maintenance and Backups - backups, restores, storage cleanup, migrations, and doctor checks.
- Releases and Updates - official and experimental channels, version rules, update notifications, and scope labels.
- Troubleshooting - common failures and first checks.
SDAC is built around one shared backend/source of truth:
-
bot.pyruns the Discord bot and slash commands. -
dashboard.pyruns the Flask dashboard and lightweight API endpoints. -
database_migrations.pymanages SQLite schema evolution. -
database_backend.pyprovides the database abstraction and experimental PostgreSQL mode. -
config.jsonstores non-secret server/guild configuration. -
.envor the production env file stores secrets and deployment-specific values. -
sdac.dbstores submissions, users, games, votes, audit history, and runtime data. -
media/stores uploaded or generated media that should not be committed. -
server/mirrors files intended for deployment packaging. -
apps/sdac-official-app/contains the current SDACCompanion app scaffold.
The Flask dashboard and Discord bot both rely on the same database and configuration. The app should also treat the Flask dashboard/backend as the source of truth. Do not duplicate role rules, server selection rules, or submission state in the app without an API-backed sync path.
Never put real secrets in the wiki. Document names and locations only:
- Good:
DISCORD_TOKENbelongs in the server.env. - Bad: pasting the token value.
This applies to Discord tokens, OAuth client secrets, database dumps, private rclone configs, keystores, signing passwords, admin passwords, user emails beyond examples, and production private keys.
When a feature changes, update the matching wiki page in the same work:
- Bot command or Discord behavior: Bot
- Dashboard route, page, theme, layout, or API: Dashboard
- Deployment, service, env, backup, or doctor behavior: Server or Maintenance and Backups
- Versioning or release channel behavior: Releases and Updates
- Companion app behavior: App
Future app updates should remove the web-wrapper app approach and move to the SDK app approach.