bb5a56816b
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
43 lines
933 B
Makefile
43 lines
933 B
Makefile
.PHONY: build build-web build-server run dev docker-up docker-down clean
|
|
|
|
# Build everything
|
|
build: build-web build-server
|
|
|
|
# Build the Go server
|
|
build-server:
|
|
CGO_ENABLED=0 go build -o dumpster-server ./cmd/server
|
|
|
|
# Build the web frontend
|
|
build-web:
|
|
cd web && npm run build
|
|
|
|
# Run the server locally (dev mode)
|
|
run: build-server
|
|
./dumpster-server
|
|
|
|
# Run web dev server (in a separate terminal)
|
|
dev-web:
|
|
cd web && npm run dev
|
|
|
|
# Start all backing services (no app, run that locally)
|
|
docker-dev:
|
|
docker compose -f docker/compose.yml up postgres valkey minio livekit coturn -d
|
|
|
|
# Start everything in Docker
|
|
docker-up:
|
|
docker compose -f docker/compose.yml up -d --build
|
|
|
|
# Stop everything
|
|
docker-down:
|
|
docker compose -f docker/compose.yml down
|
|
|
|
# Stop and remove volumes
|
|
docker-clean:
|
|
docker compose -f docker/compose.yml down -v
|
|
|
|
# Clean build artifacts
|
|
clean:
|
|
rm -f dumpster-server
|
|
rm -rf web/dist
|
|
rm -rf web/node_modules
|