Riz
Rust API (and CLI) for controlling Wiz lights
[![crate-badge]][crate] [![docs-badge]][docs] ![min-rust] ![lic-badge]
[![ci-badge]][ci] [![downloads-badge]][crate] [![docker-badge]][docker] [![size-badge]][docker]
[![sec-badge]][sec] [![dep-badge]][dep] [![codecov][cov-badge]][cov]
## UI
Check out [Riz UI](https://github.com/a-tal/riz-ui) for an example of integrating a web UI with this API.
## Dev
Both dev utilities are designed to be quick to iterate with, but `dev.sh` is faster.
### `run.sh`
- Use the separate build & run dockerfiles to start the API with Docker locally
### `dev.sh`
- Start the API without docker (requires Rust installed)
## Config
| Env Var | Default | Description |
| ------------------ | --------------------- | -------------------------------------------------------------- |
| `RIZ_PORT` | 8080 | API listening port |
| `RIZ_STORAGE_PATH` | . | Path to storage (`rooms.json` must be writable by running UID) |
| `RIZ_CORS_ORIGIN` | http://localhost:8000 | Allowed CORS origin |
## Docker
| Build Arg | Default | Description |
| --------- | ------- | ----------- |
| `UID` | 10010 | Running UID |
By default, `RIZ_STORAGE_PATH` is configured to `/data`; which is a VOLUME mount you may use.
The running dockerfiles include a healthcheck configuration.
## CLI
To use the CLI; either pull the binary from the build container, or build this project locally with `cargo build --release`. The CLI will built as `target/release/riz`. Move that into your `$PATH` somewhere if you want to use `riz` anywhere.
```bash
$ riz --help
Riz light control CLI
Usage: riz [OPTIONS] [IP]...
Arguments:
[IP]... Bulb IPv4 address(es)
Options:
-b, --brightness