All checks were successful
Code quality checks / biome (push) Successful in 15s
101 lines
3.2 KiB
Markdown
101 lines
3.2 KiB
Markdown
# Discord Profile Page
|
||
|
||
A cool little web app that shows your Discord profile, current activity, and more. Built with Bun and EJS.
|
||
|
||
---
|
||
|
||
## Requirements
|
||
|
||
This project depends on the following services to function properly:
|
||
|
||
### 1. Lanyard Backend
|
||
|
||
This project depends on a self-hosted or public [Lanyard](https://github.com/Phineas/lanyard) instance to fetch real-time Discord presence data.
|
||
Make sure the Lanyard instance is running and accessible before using this.
|
||
|
||
### 2. Redis Instance
|
||
|
||
A Redis-compatible key-value store is required to cache third-party data (e.g., SteamGridDB icons).
|
||
I recommend [Dragonfly](https://www.dragonflydb.io/), a high-performance drop-in replacement for Redis.
|
||
|
||
### 3. Badge API
|
||
|
||
A lightweight API to render Discord-style badges.
|
||
>Only needed if you want to show badges on profiles:
|
||
https://git.creations.works/creations/badgeAPI
|
||
|
||
### 4. SteamGridDB
|
||
|
||
>You only have to use this if you want to fetch game icons that Discord doesn’t provide:
|
||
https://www.steamgriddb.com/api/v2
|
||
|
||
---
|
||
|
||
## Getting Started
|
||
|
||
### 1. Clone & Install
|
||
|
||
```bash
|
||
git clone https://git.creations.works/creations/profilePage.git
|
||
cd profilePage
|
||
bun install
|
||
```
|
||
|
||
### 2. Configure Environment
|
||
|
||
Copy the example environment file and update it:
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
```
|
||
|
||
#### `.env` Variables
|
||
|
||
| Variable | Description |
|
||
|-----------------------|-----------------------------------------------------------------------------|
|
||
| `HOST` | Host to bind the Bun server (default: `0.0.0.0`) |
|
||
| `PORT` | Port to run the server on (default: `8080`) |
|
||
| `REDIS_URL` | Redis connection string |
|
||
| `LANYARD_USER_ID` | Your Discord user ID, for the default page |
|
||
| `LANYARD_INSTANCE` | Endpoint of the Lanyard instance |
|
||
| `BADGE_API_URL` | Badge API URL ([badgeAPI](https://git.creations.works/creations/badgeAPI)) |
|
||
| `STEAMGRIDDB_API_KEY` | SteamGridDB API key for fetching game icons |
|
||
|
||
#### Optional Lanyard KV Variables (per-user customization)
|
||
|
||
These can be defined in Lanyard's KV store to customize the page:
|
||
|
||
| Variable | Description |
|
||
|-----------|--------------------------------------------------------------------|
|
||
| `snow` | Enables snow background (`true` / `false`) |
|
||
| `rain` | Enables rain background (`true` / `false`) |
|
||
| `stars` | Enables starfield background (`true` / `false`) |
|
||
| `badges` | Enables badge fetching (`true` / `false`) |
|
||
| `readme` | URL to a README displayed on the profile (`.md` or `.html`) |
|
||
| `css` | URL to a css to change styles on the page, no import or require allowed |
|
||
|
||
---
|
||
|
||
### 3. Start the Instance
|
||
|
||
```bash
|
||
bun run start
|
||
```
|
||
|
||
---
|
||
|
||
## Docker Support
|
||
|
||
### Build & Start with Docker Compose
|
||
|
||
```bash
|
||
docker compose up -d --build
|
||
```
|
||
|
||
Make sure the `.env` file is configured correctly before starting the container.
|
||
|
||
---
|
||
|
||
## License
|
||
|
||
[MIT](/LICENSE)
|