Initial scaffold: Go backend, React frontend, Docker Compose

- Go backend: config, db (PostgreSQL migrations), auth (argon2id + sessions),
  middleware (cookie sessions, RequireAuth), chi router, cmd/server
- React frontend: Vite + React 18 + TS + Tailwind + Gruvbox palette + terminal CSS
- Docker: compose.yml (Postgres, Valkey, minio, LiveKit, coturn, Caddy),
  livekit.yaml, Caddyfile, Dockerfile (multi-stage Go+Node+Alpine)
- .env.example, .gitignore, README.md
This commit is contained in:
2026-06-26 14:41:10 -04:00
commit e499ce884d
41 changed files with 4451 additions and 0 deletions
+56
View File
@@ -0,0 +1,56 @@
# Dumpster
A chaotic, self-hosted Discord-like platform for ~12 degenerates.
Built for fun, maintained with pride, named with intent.
## Quick Start
```bash
# 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