It's publicly archived at rovelstars/discord-list-old.
This project is licensed under the GNU GPLv3 License. You can view the license here. Permissions of this strong copyleft license are conditioned on making available complete source code of licensed works and modifications, which include larger works using a licensed work, under the same license. Copyright and license notices must be preserved. Contributors provide an express grant of patent rights. When a modified version is used to provide a service over a network, the complete source code of the modified version must be made available.
We use SvelteKit to build the website, with Turso (libSQL) as the database and Drizzle ORM for queries. To run the website locally you need Node.js or Bun installed. The project is configured to deploy on Netlify.
-
Clone the repository
git clone https://github.com/rovelstars/discord-list
-
Change into the project directory
cd discord-list -
Copy the example environment file and fill in your values
cp .env.example .env
See the Environment Variables section below for a description of every variable.
-
Install the dependencies
bun install # or: npm install -
Start the development server
bun dev # or: npm run devThe site will be available at
http://localhost:5173by default.
bun run build # or: npm run buildDiscord CDN attachment URLs (used as bot background images) expire after ~24 hours. This project includes a Netlify Scheduled Function that automatically refreshes them every 12 hours with zero site downtime:
netlify/functions/scheduled-cdn-refresh.mts- runs on cron0 */12 * * *, calls the internal endpoint below.src/routes/api/internals/refresh-cdn-bgs/+server.ts- fetches onlyid+bgcolumns, classifies URLs in memory (no CDN fetches), sends expired ones to Discord'sPOST /attachments/refresh-urlsAPI in batches of 50, and writes back only the rows that actually changed.
Make sure INTERNAL_SECRET, SITE_URL, and DISCORD_TOKEN are set in your Netlify environment variables for this to work.
This project is kept open source so we are transparent in our services, and so that interested people can contribute to it.
Thank you for your time, love and support that make this project possible!


