e69553af024250a68fa04374891e420284bdf019
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
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
Description
A chaotic, self-hosted Discord-like platform for ~12 degenerates.
Built for fun, maintained with pride, named with intent.
https://dumpster.dustin.coffee
Releases
1
v0.2.0 — Desktop App
Latest
Languages
TypeScript
62.3%
Go
36.5%
JavaScript
0.4%
HTML
0.4%
CSS
0.2%
Other
0.1%