moke
9061256d4c
Reviewed-on: #2 |
||
---|---|---|
.cargo | ||
.config | ||
src | ||
.env | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
Makefile | ||
README.md | ||
rust-toolchain | ||
shell.nix |
README.md
Spaceapi Tuerpi
Feeding our SpaceAPI with data from our entrance door.
Usage
To run the client, please change DOOR_PIN
accordingly to your setup. DOOR_PIN
defaults to a closed door, when HIGH
.
You need to provide the environment variables SPACEAPI_URL
and API_KEY
to send the status to the SpaceAPI server. Details of the server can be found on the project page.
Build
Install stable version of rust and run a regular cargo build:
cargo build
Cross compile
Install arm toolchain and libmusl for static linked binaries:
apt-get install gcc-arm-linux-gnueabihf musl-dev musl-tools
Build the application for raspberry pi:
cargo build --target=armv7-unknown-linux-musleabihf
Install
Build the project as release and place pi
binary under /usr/local/bin/spaceapi-tuerpi
sudo install -m 755 -o root -g root \
target/release/pi \
/usr/local/bin/spaceapi-tuerpi
Configure the spaceapi systemd service by placing the service description under /etc/systemd/system/spaceapi.service
:
[Unit]
Description=SpaceAPI tuerpi client
After=network.target
[Service]
Type=simple
Restart=always
EnvironmentFile=/etc/spaceapi-tuerpi.env
ExecStart=/usr/local/bin/spaceapi-tuerpi
[Install]
WantedBy=multi-user.target
Place the environment configuration with URL and API-Key under /etc/spaceapi-tuerpi.env
:
SPACEAPI_URL=<your SpaceAPI server endpoint>
API_KEY=<your secret API key>
#DOOR_PIN=27 # Set the door pin
#RUST_LOG=ERROR # Set debug level
Ensure the /etc/spaceapi-tuerpi.env
can be read only by root by executing:
sudo chmod 600 /etc/spaceapi-tuerpi.env
sudo chown root:root /etc/spaceapi-tuerpi.env
Apply changes to systemd to enable and start the service
sudo systemctl daemon-reload
sudo systemctl enable --now spaceapi