bb5a56816b20985f164315b21c986ea6c13d81d7
Backend: - WebSocket gateway (hub, client, events) with fanout broadcast - Server CRUD handlers (create, list, get, update, delete) - Channel CRUD handlers (create, list, get, update, delete) - Message CRUD handlers (list with cursor pagination, create, update, delete) - cmd/migrate standalone migration CLI (up/down) - cmd/server wired to all handlers + WebSocket + static file serving Frontend: - Zustand stores: auth, server, channel, message, websocket - API client with fetch wrapper - Terminal-styled components: Layout, LoginForm, ChatArea, ChannelList, ServerBar, MemberList - React Router with login and main routes - Gruvbox dark palette throughout Ops: - Docker Compose with app service (multi-stage build) - Caddyfile with WebSocket upgrade support - Makefile for common tasks
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%