No description
  • Rust 81.9%
  • JavaScript 17.5%
  • Dockerfile 0.6%
Find a file
soerface 789e1a97eb
All checks were successful
CI - Rust Check and Test / check-and-test (push) Successful in 5m3s
Build and Release for Raspberry Pi / build (push) Successful in 6m40s
Merge pull request 'Add test runs via CI on PRs' (#6) from ci-test-runs into main
Reviewed-on: #6
Reviewed-by: malled <malled@noreply.localhost>
2026-03-02 00:27:38 +00:00
.cargo add raspberry build and Dockerfile 2025-12-09 23:18:04 +01:00
.forgejo/workflows Add test runs via CI on PRs 2026-03-02 00:41:31 +01:00
dev-config/mosquitto Add mosquitto.conf 2026-02-17 22:48:27 +01:00
src Add test runs via CI on PRs 2026-03-02 00:41:31 +01:00
static Auto-redirect on open door click when logged out 2026-03-01 23:12:56 +00:00
templates add favicon 2026-01-04 21:36:40 +01:00
.gitignore Add project readme (AI generated) and adjust the toml example 2026-02-11 01:27:09 +01:00
Cargo.toml rework web using claude.ai 2025-12-09 23:16:30 +01:00
compose.yml Add README and compose file 2026-02-11 01:44:37 +01:00
Dockerfile use rustup in dockerfile 2026-03-01 15:24:34 +01:00
einstellungen.toml.example Build CSP dynamically 2026-03-01 16:11:49 +00:00
flipdoor.service always restart systemd unit 2026-03-01 15:16:15 +01:00
README.md Use correct log statement in README. Switch println! with info! 2026-03-01 15:15:48 +01:00

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
  • 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

Project Structure

  • src/: Rust source code.
  • static/: Static assets for the web interface.
  • templates/: HTML templates (Tera).
  • GEMINI.md: Detailed technical context for AI assistants.
  • REVIEW.md: Code review and potential improvements.