Getting started
There are three ways to start. Whichever you pick, you get an address (name@server) that
people on any Open Lounge Phone server can knock on, and any device can be a phone.
1. Run your own server
Section titled “1. Run your own server”- On your own Cloudflare account: one command, free plan is enough for a household — deploy guide.
- With Docker on a spare computer, NAS or small server — self-hosting.
Both start from a copy of the main repository and its command-line tool, which asks a few questions, checks everything first and never echoes your keys:
git clone https://github.com/Open-Lounge-Phone/open-lounge-phone.git && cd open-lounge-phonenpm install && npm run buildnpx openloungephone doctor # is this machine ready?npx openloungephone deploy cloudflare # your Cloudflare account (after: npx wrangler login)npx openloungephone selfhost init # or: compose.yaml + .env for Docker, then docker compose up -dnpx openloungephone status phone.example.com # check any serverFederation is on by default: people on your server can connect with (and call) people on the hub and on every other server. It’s also how you try everything on your own computer first — see below.
2. Or try it on the public hub
Section titled “2. Or try it on the public hub”Just want to try it? The public hub, hub.openloungephone.app, is free and funded by donations
(funding). It’s live: sign up at hub.openloungephone.app.
- Open the hub and choose Create an account.
- Pick a handle — your address will be
handle@hub.openloungephone.app— and create a passkey on your device. No email, no phone number, no password. - Use any device as a phone: open
hub.openloungephone.app/device/on an old phone, tablet or laptop and choose Add to Home Screen. Or pair phone hardware when it exists. - Knock on the people you want to call under Connections (buddies).
The hub has a generous fair-use allowance. For full control of your data and keys, run your own server (above): it reaches everyone just the same, and you can move later (export).
3. Got an invite?
Section titled “3. Got an invite?”A guardian sent you a link? Just open it: it adds you to their household (or signs you in there). If you already have an account on that server, open it while signed in and the household is added to your account.
Your keys, your server
Section titled “Your keys, your server”Nothing depends on this project. Every key belongs to whoever runs that part:
| Key | Made and kept | Held by |
|---|---|---|
| Device key | on each phone, at first start | the phone |
| Server key (for connecting servers) | on your server, when you deploy it | you |
| Update key (optional, hardware) | on your computer, if you turn updates on | you |
A hardware phone you build connects to no server until you choose one on its setup page (your own, or the hub to try it), and checks for no updates unless you set up your own. Only the project’s official firmware downloads take the project’s updates, and choosing one is up to you. Details: security model.
Try it on your computer
Section titled “Try it on your computer”Everything runs on an ordinary computer: a server, a browser phone that behaves exactly like the hardware, and the companion app guardians use.
1. Start the server
Section titled “1. Start the server”You need Node.js 22 or newer.
npm installnpm startThe server builds the web apps and starts on port 8787. On first start it prints a one-time
setup link like http://localhost:8787/#setup=….
2. Create your household
Section titled “2. Create your household”Open the setup link, name your household and yourself. You’re now its first guardian. The app offers to add a passkey so you can sign in again later without a password.
3. Open a phone in the browser
Section titled “3. Open a phone in the browser”Open http://localhost:8787/device/ in another tab. The first time, it asks what the phone will
be — choose Kids phone — then one tap starts it (that tap lets it make sound and use the
microphone). That’s the phone: twelve keys (1 2 3 4 5 MENU / 6 7 8 9 0 BACK), a handset, a
status light and a small status display.
| Keyboard | Phone |
|---|---|
| Space | lift / hang up the handset |
| 0–9 | digit keys |
| M | MENU |
| Esc | BACK |
Add ?dev=1 for the developer panel (log, battery and power controls),
?display=none for the Kids Lite phone (no display) or ?display=segments for a
14-segment display. Add ?profile=kitchen to run a second phone in the same browser.
4. Pair it
Section titled “4. Pair it”Lift the handset (Space): the phone reads a six-digit code aloud and shows it on its display. In the companion app choose + Pair a phone and enter the code.
5. Call
Section titled “5. Call”Lift the handset and press 1 — the pairing guardian is on speed dial 1 — and answer in the companion app. Or press Call in the app and lift the phone’s handset to answer.
- Use it: add family and quiet hours, voicemail, Lounge phones, rooms and 3-way calls.
- Ideas: what it can be, from a kid’s first phone to a house intercom.
- Run your own server: on Cloudflare or with Docker.
- Build the hardware: start here.
- Extend it: the labs firmware and make it yours.
- How it works: architecture, how servers connect and the federation spec; privacy and retention.