hobokenchicken e69553af02 Profiles, Giphy, uploads, settings UI
Backend:
- Auth: split routes into RegisterPublicRoutes + RegisterProtectedRoutes
- Auth: PATCH /me for profile updates (display_name, bio, accent_color, status_text)
- Auth: Gravatar fallback for avatars on register
- DB: users table now has bio, accent_color, status_text columns
- giphy/client.go: Search() and GetTrending() against Giphy API
- upload/handlers.go: MinIO file upload + serve
- config: added GiphyConfig and MinIO config
- cmd/server: wired giphy (/gifs/search, /gifs/trending), upload (/upload), files (/files/*) routes

Frontend:
- auth store: updated User interface with new profile fields, added updateProfile()
- UserSettings.tsx: terminal-styled profile editor (display_name, bio, accent_color, status_text, avatar upload)
- GiphyPicker.tsx: terminal-styled GIF picker with search + trending
- ChatArea.tsx: integrated [GIF] button into message input
- App.tsx: imports UserSettings, added /settings route
2026-06-28 16:06:08 -04:00
2026-06-28 16:06:08 -04:00
2026-06-28 16:06:08 -04:00
2026-06-28 16:06:08 -04:00
2026-06-28 16:06:08 -04:00

Dumpster

A chaotic, self-hosted Discord-like platform for ~12 degenerates.

Built for fun, maintained with pride, named with intent.

Quick Start

# Copy and edit environment variables
cp .env.example .env
$EDITOR .env

# Start backing services
docker compose -f docker/compose.yml up -d

# Run migrations
go run ./cmd/migrate

# Start the server
go run ./cmd/server

# In another terminal, start the web dev server
cd web
npm install
npm run dev

Project Structure

dumpster/
├── cmd/
│   ├── server/           # Main API + WebSocket gateway
│   ├── tui/              # Terminal client (Phase 5)
│   └── migrate/          # Database migrations CLI
├── internal/
│   ├── auth/             # Auth logic
│   ├── server/           # Server CRUD + membership
│   ├── channel/          # Channel CRUD
│   ├── message/          # Message CRUD
│   ├── voice/            # LiveKit integration
│   ├── role/             # Roles + permissions
│   ├── gateway/          # WebSocket gateway
│   ├── upload/           # File upload (minio)
│   └── middleware/        # Auth, rate limiting, CORS
├── migrations/           # SQL migrations
├── web/                  # React frontend (PWA)
├── docker/               # Docker Compose + Caddyfile
├── scripts/              # Helper scripts
└── docs/                 # Documentation

License

AGPLv3

S
Description
A chaotic, self-hosted Discord-like platform for ~12 degenerates. Built for fun, maintained with pride, named with intent.
https://dumpster.dustin.coffee
Readme 202 MiB
2026-07-07 18:19:22 +00:00
Languages
TypeScript 62.3%
Go 36.5%
JavaScript 0.4%
HTML 0.4%
CSS 0.2%
Other 0.1%