Skip to content

Repository files navigation

OneDoor 🚪

Real-time communication and control over your property.

OneDoor captures the critical seconds that matter, giving you the instant ability to communicate and act—never just be a bystander.

What is OneDoor?

Originally a hyper-focused, SIP-first PWA for a single door, OneDoor has evolved into a multi-door communication and control surface, benefiting even non-SIP devices.

OneDoor's technology makes a $40 Tapo doorbell load like a custom-tuned Axis camera and talk like an SIP intercom.

While designed primarily as a mobile notification target, it also functions well as:

  • A desktop widget for quick visual confirmation and controlled access.
  • An automation dashboard with real-time visual confirmation and human reaction.

Why use OneDoor?

Everyone

  • OneDoor is the fastest way to get to your door. Nothing else is close.
  • Get your important, real-time actions right at your fingertips.

iPhone users

  • OneDoor's technology shatters WebKit's high-latency grip on WebRTC communications.
  • The same methods help Chromium too.
  • OneDoor is 100% self-auditable unlike App Store binaries.

SIP and pro camera users:

  • No need to set up a PBX, just configure your devices.
  • Integrate to actions and your non-SIP devices on one surface without losing SIP advantages.
  • Turn 2-way RTSP/ONVIF cameras into SIP-like communication devices.
  • Enjoy private protocol talkback for Dahua cameras.

Retail camera users:

  • Preload and GOP cache features significantly reduce load times.
  • Access to your doorbell is faster than any other app.
  • Give doorbells and 2-way cameras features like multi-caller conferencing that don't exist elsewhere.
  • Turn walkie-talkie like audio into telephone speed.

📖 Documentation

Full deployment and configuration guide → docs/README.md


📸 Interface Preview

OneDoor's interface is intentionally minimal: a single stream. Only one client stream is ever active at a time, keeping CPU/GPU usage extremely low. Speed comes from server‑side preload + GOP caching and rewriting timestamps.

Mobile App

Desktop Widget (Video Preview)

widget.mp4

🚀 Key Features

  • Multi‑door support — Add as many doors/cameras as you want and swipe between them instantly.
  • Multiple audio modes
    • sip for the best pure UDP experience
    • generic transform generic doorbells and 2-way cameras into SIP endpoints
    • none for video‑channel audio without 2‑way talk
  • Per‑door action sets — Configurable DTMF payloads, private backend webhooks, frontend links, and state‑aware toggle actions for locks, lights, and automations.
  • Deep‑linked notifications — Alerts take you directly to the door that was pressed.
  • Unified multi‑door config — Powerful, simple, and self‑explanatory. Legacy SIP‑only configs remain valid.
  • Ultra‑low latency — Full‑duplex SIP audio + go2rtc WebRTC video tuned for sub‑second response.
  • Perfect notification target — Tap → live video + audio in under a second.
  • Next‑step actions — Instantly jump to your NVR, another door, or any external system.
  • Secure by design — Split‑token signaling, isolated webhooks, no secrets in the browser, no cloud, no telemetry.
  • Zero‑knowledge setup — No PBX, SIP, RTP, SRTP, or dialplan expertise required.
  • Automatic key + credential generation — Strong defaults.
  • PWA + desktop widget — Fast, minimal UI optimized for door response. Also keyboard support.
  • Ecosystem‑friendly — Works cleanly alongside Home Assistant, Frigate NVR, and existing SIP hardware.
  • Appliance-like design — Designed to run unattended, accessible to clients behind CGNAT, VPNs, and complex networks.
  • Fast Notifications — Pure WebPush straight to Apple/Google. No Firebase. No app. Custom hooks accepted.

🔀 App Flow

flowchart TD
    %% Styling with explicit high-contrast text colors
    classDef client fill:#e1f5fe,stroke:#01579b,stroke-width:2px,color:#000;
    classDef backend fill:#fff3e0,stroke:#e65100,stroke-width:2px,color:#000;
    classDef media fill:#e8f5e9,stroke:#2e7d32,stroke-width:2px,color:#000;
    classDef hardware fill:#4a148c,stroke:#ab47bc,stroke-width:2px,color:#fff;
    classDef camera fill:#37474f,stroke:#90a4ae,stroke-width:2px,color:#fff;

    %% Components
    subgraph Client ["OneDoor Client (PWA)"]
        PWA["PWA Interface"]:::client
    end

    subgraph Backend ["Backend & Media Services"]
        Node["Node Server"]:::backend
        Asterisk["Asterisk / ConfBridge"]:::media
        Go2RTC["custom go2rtc"]:::media
    end

    subgraph Intercom ["Hardware"]
        DoorStation["Intercom / Door Station"]:::hardware
    end

    subgraph Cameras ["Perimeter"]
        CamSys["Cameras (Multiple Integrations)"]:::camera
    end

    %% PWA Connections
    PWA <-->|"1. JS / Signaling"| Node
    Go2RTC -->|"2. WebRTC Video (Audio only if call_mode=none)"| PWA
    PWA <-->|"3. DTLS/SRTP (Audio To & From)"| Asterisk

    %% Signaling (Node to Media Services)
    Node <-->|"SIP Signaling"| Asterisk
    Node <-->|"Signaling"| Go2RTC

    %% Media / Backend Connections
    Asterisk <-->|"go2sip"| Go2RTC
    Asterisk <-->|"SIP (To & From)"| DoorStation

    %% Camera Connections
    Go2RTC <-->|"Multiple Integrations (Both Ways)"| CamSys
Loading

⚡ Quick Start

OneDoor is optimized and documented for setup using AI agents. Deepseek v4 Flash via Cline agent can configure an extensive 40-action OneDoor config in under 5 minutes for about $0.06 by referencing /docs/README.md.

Manually:

  1. Copy docker-compose.yml and config.yaml. Use makepass.example to generate your password hash.
  2. Modify the files as per the documentation.
  3. Add OneDoor port 8099 to your reverse proxy with WebSocket support and TLS enabled.
  4. Forward P2P media ports on your gateway.
  5. Start the service: docker compose up -d

Minimum Configuration

domain:  # "door.yourdomain.com"
docker_host: # "192.168.1.26"

onedoor:
  users:
    - username: #"first_user"
      password_hash: #use makepass.example

moredoors:
  - id: #"front"
    call_mode: #"sip" - sip, generic, or none.
    camera: #"rtsp://admin:password@192.168.1.10:554/cam/realmonitor?channel=1&subtype=1#gop=1" string or list

❤️ Why OneDoor Exists

OneDoor exists to put you directly inside the critical seconds where hospitality, communication, and safety actually happen.


Special Thanks

Onedoor relies on SOTA open source tech from a number of projects. Notably:

  • Asterisk
  • alexxit/go2rtc
  • seydx/go2rtc
  • stream-z/go2rtc
  • Node
  • Alpine Linux

About

Tactical‑speed door comm and control — SIP audio + WebRTC video, fully local.

Topics

Resources

Stars

32 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages