Cool little discord profile page
Find a file
2025-04-26 07:29:56 -04:00
.forgejo/workflows update biome.json and add workflow 2025-04-10 06:29:21 -04:00
.vscode move to biomejs 2025-04-07 04:36:07 -04:00
config add redis, game icons and fix readme 2025-04-20 14:39:15 -04:00
public fix issue with badge loading, profile indef loading if no user, remove unused files, organize the js 2025-04-26 07:29:56 -04:00
src fix issue with badge loading, profile indef loading if no user, remove unused files, organize the js 2025-04-26 07:29:56 -04:00
types fix issue with badge loading, profile indef loading if no user, remove unused files, organize the js 2025-04-26 07:29:56 -04:00
.editorconfig stinky editor configs 2025-04-05 01:29:03 -04:00
.env.example add env var, add docker files, idk how i forgot there in the readme 2025-04-22 20:21:24 -04:00
.gitattributes stinky editor configs 2025-04-05 01:29:03 -04:00
.gitignore Add image processing route with color extraction using node-vibrant 2025-04-05 02:29:23 -04:00
biome.json add css kv var, move away from ssr ( multiple queries ), remove colors kv var, add option to disable logging per route 2025-04-25 21:20:08 -04:00
compose.yml add env var, add docker files, idk how i forgot there in the readme 2025-04-22 20:21:24 -04:00
Dockerfile add env var, add docker files, idk how i forgot there in the readme 2025-04-22 20:21:24 -04:00
LICENSE add a readme and license 2025-04-11 19:31:10 -04:00
package.json add css kv var, move away from ssr ( multiple queries ), remove colors kv var, add option to disable logging per route 2025-04-25 21:20:08 -04:00
README.md fix readme 2025-04-26 06:38:03 -04:00
tsconfig.json move to biomejs 2025-04-07 04:36:07 -04:00

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 doesnt 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.


License

MIT