smotsing the gifs
Find a file
2026-08-18 10:21:17 +02:00
backend Forgot to account for images that are already webps, whoops 2026-08-18 10:21:17 +02:00
frontend FUCK YOU DISCORD, FUCK YOUR STUPID ASS CDN, FUCK YOUR ENTIRE VIBECODED SLOP 2026-08-18 10:18:29 +02:00
.env apparently i kinda forgot to push to the repo 2026-08-17 14:10:50 +02:00
.env.example apparently i kinda forgot to push to the repo 2026-08-17 14:10:50 +02:00
docker-compose.yml apparently i kinda forgot to push to the repo 2026-08-17 14:10:50 +02:00
README.md apparently i kinda forgot to push to the repo 2026-08-17 14:10:50 +02:00

Smots Gif Gaming

i'm not very good at writing readmes

Quick start

cp .env.example .env

docker compose up --build

The site is then at http://localhost:3000.

Discord OAuth setup

  1. Create an app at https://discord.com/developers/applications
  2. Add a redirect URI: http://localhost:3000/auth/discord/callback (must match DISCORD_REDIRECT_URI in .env exactly)
  3. Copy the Client ID / Client Secret into .env

Making yourself a moderator

I kinda forgot to add an option to make a user a moderator so uuuuh this is how you do it

docker compose exec postgres psql -U usernamein.env -d databasein.env \
  -c "UPDATE users SET is_moderator = TRUE WHERE discord_id = 'DISCORD_ID';"

Public API

Any logged-in user can self-issue a key from /apikeys.html (POST /api/apikeys) the raw key is shown once, pass it as X-API-Key to:

  • GET /api/v1/search?q=&tag=&sort=date|popularity|score&page=
  • GET /api/v1/gifs/:id

Both return each gif's direct S3 URL.