Getting started
This chapter takes you from nothing to a working door: the program installed, an owner login, a building, a door, the properties, and the poster on the door.
What you are setting up
Doorcom is a door phone. A poster on the door replaces the entry panel, the visitor's own phone is the bell, and the resident's ordinary phone is the handset. That part is always there: doors, properties, residents, the call log and the change log, logins and billing.
Three options sit on top of it, and an organisation turns them on and off under Settings, Organisation:
- Letting management: documents for renters with the UK checklist and expiry dates, turnovers between tenancies, and inspections with checklists.
- Issue management: residents report problems with photos, issues become jobs, jobs go to trades, and an on-call rota covers urgent ones out of hours.
- Building status board: the board residents see, dated notices, and messages to a floor or the whole building.
Switching one off removes its pages from every login in that organisation and from the residents' portal. Nothing is deleted, and switching it back on brings everything back as it was. A building that only wants a door phone can leave all three off and never see them.
What you need
- A Linux server (Debian or Ubuntu are what the deploy notes assume) with a public address, or an account on the hosted service at doorcom.uk, in which case skip to First login.
- A domain pointed at the server. QR codes and links are built from it.
- Optionally an Access Controller board on the door you want to release. Without one, a door can run in ring-only mode.
Install
Doorcom is one static binary and one SQLite file. Build it with Go 1.26 on any machine, then copy it to the server.
make linux # writes dist/doorcom-linux-amd64
On the server, make a user and a data folder, install the binary, the environment file and the systemd unit, then start it:
sudo useradd --system --home /var/lib/doorcom --shell /usr/sbin/nologin doorcom
sudo mkdir -p /var/lib/doorcom && sudo chown doorcom:doorcom /var/lib/doorcom
sudo cp dist/doorcom-linux-amd64 /usr/local/bin/doorcom && sudo chmod 755 /usr/local/bin/doorcom
sudo cp deploy/doorcom.env.example /etc/doorcom.env && sudo chmod 600 /etc/doorcom.env
sudo cp deploy/doorcom.service /etc/systemd/system/doorcom.service
sudo systemctl daemon-reload && sudo systemctl enable --now doorcom
Edit /etc/doorcom.env before the first start. DC_PUBLIC_URL must be the public address (for example https://doorcom.uk); DC_ADDR stays on 127.0.0.1:8090 because Caddy is the only thing that talks to it. Caddy, HTTPS and backups are in Hosting and backups.
The first owner login
There is no sign-up page for the panel. The first login is made from the command line with the same environment the service uses:
sudo -u doorcom env $(cat /etc/doorcom.env | xargs) /usr/local/bin/doorcom create-owner ash 'a long password'
Running create-owner again with the same username resets that password. An owner sees every building; managers and staff are added later from Users (see Users, roles and permissions).
First login
Open /login, enter the username and password. The dashboard opens. On a fresh install it says there is no building yet and offers to create one.
What the dashboard tells you
The cards come in bands — Money, Maintenance, Letting and The door — each with a link to the page behind it, and each tinted so the eye can find a figure again without reading every label: rose for money to chase, amber for paperwork and issues, lilac for what you are waiting on somebody else for, sky for the door, teal for the tenancies, mint for money that has come in. Every card is a link. A band for an option the organisation does not use is not drawn at all, and neither are the cards a login may not open.
Money
- Owed, and how much of it is late
- Everything invoiced and not settled, with the part that is past its due date and over how many invoices. Late means late today, not late this month. Drafts are in neither figure, because nobody has been asked for them yet. The card goes rose when there is anything owed at all.
- Taken this month
- What has actually arrived since the first, and what share that is of what was invoiced in the same month.
- Deposits with no scheme recorded
- Tenancy deposits held with no protection written down. That one is a legal deadline, so it stays rose until it is answered.
Maintenance
- Open issues, and jobs with a trade
- What residents have reported and is not fixed, and how many jobs are out with a trade and not back.
- Properties short of paperwork
- How many properties have a required certificate expired or never uploaded, with the ones about to run out alongside. It counts properties rather than papers, because a property with three gaps is one visit.
Letting
- Tenancies running, and how full it is
- Live tenancies with how many end within two months, and the share of the properties that are let. A disabled property is in neither.
- Arriving and leaving today, reservations waiting
- For a building that takes short stays: the comings and goings with how many people are in tonight, and what is held pending a deposit.
The door
- Rings today, this week, and answered
- Answered is the share of this week's rings somebody picked up, whether they let the caller in or not, with the number nobody got to beside it. A building where that figure slides is one where the poster is being ignored.
- Properties claimed
- How many have a resident signed up for the door phone. This is not the same as let: a property can be tenanted with nobody signed up yet.
Underneath the bands are the turnovers in progress, who is on call, the doors with their release modes and dial codes, and the last twenty rings.
Search everything
The box at the top of every page searches the lot: buildings, properties, residents, tenancies, bookings, invoice numbers, doors, issues, jobs, trades, documents, messages, notices, the on-call rota and staff logins. Results appear as you type, grouped by what they are; Enter or See all opens the full page.
What it will not show you is anything your login cannot open anyway — an employee searching a resident's name gets the issues, not the resident. Owners search every building in the organisation and a result from another building switches to it on the way; managers and staff search their own.
Mobile numbers match on their digits, so 07700 900123, +447700900123 and 07700900123 all find the same person. A booking reference finds the booking and the invoices raised against it.
Create the building
Go to Buildings (owners only) and add a name and a slug. The slug is the short name in the resident portal's address, /r/<slug>, so keep it simple: marlow-court. The building's page then asks for:
- Address, landlord, phone line
- The landlord name is printed as "Managed by" on the poster; the phone line is printed as "Cannot scan? Call ...". Until they are filled in the poster shows placeholders.
- Timezone, quiet hours
- Quiet hours are a start and end time in the building's own timezone, and may cross midnight (23:00 to 07:00).
- Show names on the bell panel
- Off by default. When on, the bell grid shows residents' names under the property number.
- Latitude and longitude
- Used only to work out sunset, so the bell page can switch to its dark theme at night. Blank means the middle of England.
- Logo and accent colour
- The logo goes on the poster and in the panel sidebar; the accent recolours the panel's buttons for that building.
Add a door
Opening the lock is the only part of Doorcom that needs hardware: a controller we supply, wired to the lock release already there and on Wi-Fi at the door. It is 100 GBP a door, installed, with no monthly charge on top; where the door has no Wi-Fi within reach, a RUT241 router on a mobile eSIM does the job: 130 GBP for the router, once, and 45 GBP a year for its data. Without any of it everything works except the door opening itself, and a resident or a concierge lets the visitor in. See Buildings and doors.
Go to Doors, type a name ("Front door") and add it. On the door's page set the dial code (four to six digits, unique across the service) and the release mode. Ring only is fine to start with; the Access Controller fields are explained in Buildings and doors. Save.
Add the properties
Go to Properties and type the numbers in one go: 1-24, A1-A6, or a comma list. Ranges keep their prefix and zero padding. Properties that already exist are skipped. If the building has floors, use "Set a floor" to name a range: 1-8 is "Ground floor". Floors are what Messages uses to reach one floor at a time.
Put the poster on the door
Back on the door's page, choose Poster. It opens as a page that prints as exactly one A5 sheet (or A4 with the link at the top). Set the printer to the right paper size, no margins, 100% scale. Put the poster where the entry panel would be, behind glass or in a frame. There is also a 100 mm sticker for a glass door. See Posters, stickers and claim cards.
Then sign residents up
Nothing rings until a property has a resident. From Properties, each row has Sign up for the door, which opens the on-screen dialog, and Claim card, which prints one. That is Signing residents up.
Try it yourself before the first tenant: scan the poster with your own phone, tap a property that you have signed up, and answer the call. The dashboard's last rings table and the call log show what happened.