- vite
- golang (macos: ifconfig, route), (windows: netsh)
- iptables (only needed when running the server)
- golang
NOTE: The client requires sudo/admin on windows and mac, but only narrow net admin permission on linux.
$ cd ./cmd/main
$ go build .
$ ./mainNOTE: when opening the dev ui, you must first accept the TLS certificate on port 7777 (https://127.0.0.1:7777)
$ cd ./frontend
$ pnpm install .
$ vite dev $ cd ./server
$ go build .
fresh run: $ ./server --config
$ ./serverWe accept any code, even from machine learning models as long as the code makes sense, even small spellfixing contributions. Just remember to run the linter before submitting.
these are applied automatically on startup
$ iptables -I OUTPUT -p tcp --src {interface_IP} --tcp-flags ACK,RST RST -j DROP
The project includes comprehensive test coverage for all server components.
# Run all tests
$ make test
# Run tests with verbose output
$ make test-server
# Run tests with coverage report
$ make test-coverage
# Count total number of tests
$ make test-count
# Run tests with race detection
$ make test-verbose
# Or run tests directly with go
$ go test ./server/...$ golangci-lint run --timeout=10m --config .golangci.yml
# Or use make
$ make lint
- Windows: admin
- macos: sudo
- linux: setcap 'cap_net_raw,cap_net_bind_service,cap_net_admin+eip' main
Tests are automatically run before building in the goreleaser pipeline.
- DEV: ./releaser-build-snapshot.sh (or
make release) - PROD: ./releaser-build-release.sh ( requires GITHUB_TOKEN )
# Build using make
$ make build # Build all binaries
$ make build-server # Build server only
$ make build-client # Build client only
# Test before building
$ make pre-commit # Run tests and linting
$ make ci # Run CI checks locallyWe are experimenting with a wails GUI, it will output it's build into the build directory.
These are the real MVPs:
- n00bady: creator of bluam https://github.com/n00bady/bluam
- 0xMALVEE: for major contributiosn to the front-end
- keyb1nd_'s twitch chat for the backseat debugging and support!
- comahacks for security reviews
- klauspost for development advice