All checks were successful
Code quality checks / biome (push) Successful in 15s
|
||
---|---|---|
.forgejo/workflows | ||
.vscode | ||
config | ||
public | ||
src | ||
types | ||
.editorconfig | ||
.env.example | ||
.gitattributes | ||
.gitignore | ||
biome.json | ||
compose.yml | ||
Dockerfile | ||
LICENSE | ||
package.json | ||
README.md | ||
tsconfig.json |
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 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, 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
git clone https://git.creations.works/creations/profilePage.git
cd profilePage
bun install
2. Configure Environment
Copy the example environment file and update it:
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) |
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
bun run start
Docker Support
Build & Start with Docker Compose
docker compose up -d --build
Make sure the .env
file is configured correctly before starting the container.