All checks were successful
Deploy to Production / test (push) Successful in 44s
- AGENTS.md: Update project description from web dashboard to REST API - README.md: Replace Web Dashboard section with REST API, update tech stack - docs/main.md: Refactor Web Dashboard section to REST API documentation - web/README.md: Rewrite from React setup to API endpoint documentation All React/UI references removed - web is now API-only
158 lines
5.1 KiB
Markdown
158 lines
5.1 KiB
Markdown
# Aurora
|
|
|
|
> A comprehensive, feature-rich Discord RPG bot built with modern technologies.
|
|
|
|

|
|

|
|

|
|

|
|

|
|
Aurora is a powerful Discord bot designed to facilitate RPG-like elements within a Discord server. It features a robust economy, class system, inventory management, quests, and more, all built on top of a high-performance stack using Bun and Drizzle ORM.
|
|
|
|
**New in v1.0:** Aurora now includes a fully integrated **REST API** for accessing bot data, statistics, and configuration, running alongside the bot in a single process.
|
|
|
|
## ✨ Features
|
|
|
|
### Discord Bot
|
|
* **Class System**: Users can join different classes.
|
|
* **Economy**: Complete economy system with balance, transactions, and daily rewards.
|
|
* **Inventory & Items**: Sophisticated item system with rarities, types (Material, Consumable, etc.), and inventory management.
|
|
* **Leveling**: XP-based leveling system to track user activity and progress.
|
|
* **Quests**: Quest system with requirements and rewards.
|
|
* **Trading**: Secure trading system between users.
|
|
* **Lootdrops**: Random loot drops in channels to engage users.
|
|
* **Admin Tools**: Administrative commands for server management.
|
|
|
|
### REST API
|
|
* **Live Analytics**: Real-time statistics endpoint (commands, transactions).
|
|
* **Configuration Management**: Update bot settings via API.
|
|
* **Database Inspection**: Integrated Drizzle Studio access.
|
|
* **WebSocket Support**: Real-time event streaming for live updates.
|
|
|
|
## 🏗️ Architecture
|
|
|
|
Aurora uses a **Single Process Monolith** architecture to maximize performance and simplify resource sharing.
|
|
|
|
* **Unified Runtime**: Both the Discord Client and the REST API run within the same Bun process.
|
|
* **Shared State**: This allows the API to access live bot memory (caches, gateways) directly without complex inter-process communication (IPC).
|
|
* **Simplified Deployment**: You only need to deploy a single Docker container.
|
|
|
|
## 🛠️ Tech Stack
|
|
|
|
* **Runtime**: [Bun](https://bun.sh/)
|
|
* **Bot Framework**: [Discord.js](https://discord.js.org/)
|
|
* **API Framework**: Bun HTTP Server (REST API)
|
|
* **UI**: Discord embeds and components
|
|
* **Database**: [PostgreSQL](https://www.postgresql.org/)
|
|
* **ORM**: [Drizzle ORM](https://orm.drizzle.team/)
|
|
* **Validation**: [Zod](https://zod.dev/)
|
|
* **Containerization**: [Docker](https://www.docker.com/)
|
|
|
|
## 🚀 Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
* [Bun](https://bun.sh/) (latest version)
|
|
* [Docker](https://www.docker.com/) & Docker Compose
|
|
|
|
### Installation
|
|
|
|
1. **Clone the repository**
|
|
```bash
|
|
git clone <repository-url>
|
|
cd aurora
|
|
```
|
|
|
|
2. **Install dependencies**
|
|
```bash
|
|
bun install
|
|
```
|
|
|
|
3. **Environment Setup**
|
|
Copy the example environment file and configure it:
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
Edit `.env` with your Discord bot token, Client ID, and database credentials.
|
|
|
|
> **Note**: The `DATABASE_URL` in `.env.example` is pre-configured for Docker.
|
|
|
|
4. **Start the Database**
|
|
Run the database service using Docker Compose:
|
|
```bash
|
|
docker compose up -d db
|
|
```
|
|
|
|
5. **Run Migrations**
|
|
```bash
|
|
bun run migrate
|
|
```
|
|
OR
|
|
```bash
|
|
bun run db:push
|
|
```
|
|
|
|
### Running the Bot & API
|
|
|
|
**Development Mode** (with hot reload):
|
|
```bash
|
|
bun run dev
|
|
```
|
|
* Bot: Online in Discord
|
|
* API: http://localhost:3000
|
|
|
|
**Production Mode**:
|
|
Build and run with Docker (recommended):
|
|
```bash
|
|
docker compose up -d app
|
|
```
|
|
|
|
### 🔐 Accessing Production Services (SSH Tunnel)
|
|
|
|
For security, the Production Database and API are **not exposed** to the public internet by default. They are only accessible via localhost on the server.
|
|
|
|
To access them from your local machine, use the included SSH tunnel script.
|
|
|
|
1. Add your VPS details to your local `.env` file:
|
|
```env
|
|
VPS_USER=root
|
|
VPS_HOST=123.45.67.89
|
|
```
|
|
|
|
2. Run the remote connection script:
|
|
```bash
|
|
bun run remote
|
|
```
|
|
|
|
This will establish secure tunnels for:
|
|
* **API**: http://localhost:3000
|
|
* **Drizzle Studio**: http://localhost:4983
|
|
|
|
## 📜 Scripts
|
|
|
|
* `bun run dev`: Start the bot and API server in watch mode.
|
|
* `bun run remote`: Open SSH tunnel to production services.
|
|
* `bun run generate`: Generate Drizzle migrations.
|
|
* `bun run migrate`: Apply migrations (via Docker).
|
|
* `bun run db:studio`: Open Drizzle Studio to inspect the database.
|
|
* `bun test`: Run tests.
|
|
|
|
## 📂 Project Structure
|
|
|
|
```
|
|
├── bot # Discord Bot logic & entry point
|
|
├── web # REST API Server
|
|
├── shared # Shared code (Database, Config, Types)
|
|
├── drizzle # Drizzle migration files
|
|
├── scripts # Utility scripts
|
|
├── docker-compose.yml
|
|
└── package.json
|
|
```
|
|
|
|
## 🤝 Contributing
|
|
|
|
Contributions are welcome! Please feel free to submit a Pull Request.
|
|
|
|
## 📄 License
|
|
|
|
This project is licensed under the MIT License. |