Skip to content

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.

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

Terminal window
git clone https://github.com/Open-Lounge-Phone/open-lounge-phone.git && cd open-lounge-phone
npm install && npm run build
npx 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 -d
npx openloungephone status phone.example.com # check any server

Federation 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.

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.

  1. Open the hub and choose Create an account.
  2. 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.
  3. 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.
  4. 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).

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.

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.


Everything runs on an ordinary computer: a server, a browser phone that behaves exactly like the hardware, and the companion app guardians use.

You need Node.js 22 or newer.

Terminal window
npm install
npm start

The 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=….

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.

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.

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.

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.

Proudly supported by unsubscribe.llc · Sponsor the project