No description
- Rust 60%
- HTML 27.1%
- JavaScript 12.9%
| .cargo | ||
| .forgejo/workflows | ||
| dev-config/mosquitto | ||
| src | ||
| static | ||
| .gitignore | ||
| Cargo.toml | ||
| compose.yml | ||
| einstellungen.toml.example | ||
| flipdoor.service | ||
| README.md | ||
Flipdoor
A door control system with Web and SSH interfaces.
Setup for Local Development
To run the project locally, you need a few configuration files and dependencies.
1. Configuration File
Copy the example configuration and fill in the required values:
cp einstellungen.toml.example einstellungen.toml
Specifically, ensure web.secret_key is a 64-character hex string. You can generate one using:
openssl rand -hex 32
2. SSH Key
The SSH server component requires a private key file named key in the root directory:
ssh-keygen -t ed25519 -f key -N ""
3. External Dependencies
- MQTT Broker: By default, the app tries to connect to an MQTT broker at
localhost:1883. The application will currently panic if the broker is not reachable.- Inspect mqtt messages with:
mosquitto_sub -t '#' -v
- Inspect mqtt messages with:
- OIDC Provider: The web interface expects a working OIDC provider for authentication.
4. Running the Application
Once the configuration is set up, you can run the application with:
RUST_LOG=flipdoor_rs=info cargo run
For Raspberry Pi with I2C support:
cargo run --features pi
ARMv7 musl build
With Podman/Docker:
podman run --rm -v "$PWD":/home/rust/src ghcr.io/rust-cross/rust-musl-cross:armv7-musleabihf cargo build --release --target armv7-unknown-linux-musleabihf --features pi
This creates:
target/armv7-unknown-linux-musleabihf/release/flipdoor-rs
Project Structure
src/: Rust source code.static/: Static assets for the web interface.templates/: HTML templates (Tera).