Port Brave Sync server to Rust
Use SQLite for persistence and generate Rust protobuf bindings at build time. Add Docker image support for containerized deployment. Co-Authored-By: codex <[email protected]>
This commit is contained in:
commit
28826af88d
93 files changed
+11666
No files matched your search
@@ -0,0 +1,43 @@
|
||||
# Brave Sync Server v2 Rust Port
|
||||
|
||||
Rust port of the Brave Sync v2 command server from `/home/user/go-sync`.
|
||||
|
||||
The server exposes:
|
||||
|
||||
- `GET /`
|
||||
- `GET /health-check`
|
||||
- `POST /v2/command/`
|
||||
- `GET /metrics`
|
||||
|
||||
## Storage
|
||||
|
||||
This port uses SQLite instead of DynamoDB. On startup it creates the required
|
||||
tables automatically.
|
||||
|
||||
Environment variables:
|
||||
|
||||
- `SQLITE_PATH`: SQLite database path. Defaults to `brave-sync.sqlite3`.
|
||||
- `LISTEN_ADDR`: HTTP listen address. Defaults to `0.0.0.0:8295`.
|
||||
- `BLOCKED_CLIENT_IDS`: comma-separated lowercase or uppercase client public key hex values.
|
||||
- `HIGH_DEVICE_LIMIT_CLIENT_IDS`: comma-separated client IDs allowed up to 100 active devices.
|
||||
|
||||
## Build and Test
|
||||
|
||||
```sh
|
||||
cargo test
|
||||
cargo run
|
||||
```
|
||||
|
||||
## Docker
|
||||
|
||||
```sh
|
||||
docker build -t brave-sync-rs .
|
||||
docker run --rm -p 8295:8295 -v brave-sync-data:/var/lib/brave-sync brave-sync-rs
|
||||
```
|
||||
|
||||
For bind mounts, the container starts as root only long enough to create/chown
|
||||
the SQLite directory, then runs the server as the `brave-sync` user.
|
||||
|
||||
The protobuf Rust bindings are generated at build time from
|
||||
`schema/protobuf/sync_pb`. A vendored `protoc` binary is used, so a system
|
||||
`protoc` install is not required.
|
||||
Reference in new issue
Block a user