A full-stack Discord authentication and ticket management system with a modular Discord bot, REST API backend, and web frontend.
This project is designed for Discord communities that need user authentication, ticketing, and admin tools, all deployable with Docker.
Full-stack Discord authentication and ticket management system with bot, API, and web frontend.
| Section | Description |
|---|---|
| Features | Key features of the project |
| Folder Structure | How the project is organized |
| Getting Started | Steps to install and run locally or with Docker |
| Usage | How to use the bot, API, and web frontend |
| Documentation | Links to API, bot, and deployment docs |
| Contributing | How to contribute to the project |
| License | License information |
| Credits | Technologies and libraries used |
| Support the Project | Donate or sponsor development |
| Stay Connected | Links to profiles and store |
-
Discord Bot
- Modular ticket system (open, close, claim, etc.)
- Admin commands (warn, ban, add/remove admin, etc.)
- SQLite database for tickets and admin management
- Permission checks for owner/admins
- Dockerized for easy deployment
-
Backend (Node.js/Express)
- REST API for authentication and user management
- Discord OAuth2 integration
- User data stored in MongoDB or JSON
- Modular controllers, routes, and models
-
Frontend
- Simple web interface for authentication and callback
- Static assets and JS for Discord login
-
Shared Utilities
- Common config, database, and logger modules
-
Dockerized
- Compose file for bot, backend, and persistent database volumes
discord-auth/
├─ backend/ # Node.js/Express API for Discord OAuth and user management
│ ├─ src/
│ │ ├─ config/
│ │ ├─ controllers/
│ │ ├─ models/
│ │ ├─ routes/
│ │ └─ utils/
│ ├─ .env
│ ├─ package.json
│ └─ users.json
├─ bot/ # Discord.py bot with modular cogs and logic
│ ├─ cogs/
│ │ ├─ logic/
│ │ ├─ ui/
│ │ └─ admin/
│ ├─ .env
│ ├─ main.py
│ └─ requirements.txt
├─ database/ # SQLite DBs and migration scripts
│ ├─ tickets.db
│ ├─ admins.db
│ └─ ...
├─ docker/ # Dockerfiles and compose
│ ├─ bot.Dockerfile
│ ├─ backend.Dockerfile
│ └─ docker-compose.yml
├─ frontend/ # Static web frontend for Discord login
│ ├─ public/
│ └─ src/
├─ shared/ # Shared JS utilities
├─ docs/ # Documentation
├─ logs/ # Log files
└─ README.md
git clone https://github.com/NullStudio-dev/discord-auth.git
cd discord-auth-
bot/.env
TOKEN=your_discord_bot_token PREFIX=! TICKET_CATEGORY_ID=your_discord_category_id BOT_OWNER_ID=your_discord_user_id -
backend/.env
CLIENT_ID=your_discord_client_id CLIENT_SECRET=your_discord_client_secret REDIRECT_URI=http://localhost:3000/callback SESSION_SECRET=your_session_secret
For SQLite (bot):
python bot/database/migrate.py
python bot/database/migrate_admins.pyFor backend (if using MongoDB, set up your connection string in backend/.env).
cd docker
docker compose up --build- The bot will run from
/bot - The backend API will run from
/backend - Database files are persisted in
/database
Bot:
cd bot
pip install -r requirements.txt
python main.pyBackend:
cd backend
npm install
npm startFrontend:
Open frontend/public/index.html in your browser.
- Use the Discord bot for ticket management and admin commands in your server.
- Use the web frontend for Discord OAuth login.
- Use the backend API for user management and authentication.
- docs/API.md — Backend API documentation
- docs/BOT.md — Discord bot commands and setup
- docs/DEPLOYMENT.md — Deployment instructions
- Fork the repo
- Create your feature branch (
git checkout -b feature/YourFeature) - Commit your changes
- Push to the branch
- Open a pull request
MIT
If you find this project useful and want to support its development, you can help through the following platforms:
- GitHub Profile: RDXFGXY1
- GitHub Organization: NullStudio-dev
- Gumroad Store: NullStudio Gumroad
- discord.py
- Express.js
- Docker