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:
@@ -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
|
||||
Reference in New Issue
Block a user