How to Deploy Your Own Property Rental Management System Without Cloud Subscriptions
Many IT professionals eventually end up with a rental apartment, a garage, or even a couple of commercial spaces. At first, everything is tracked in Telegram with yourself or in Google Sheets. But when you have more than one tenant, problems start. Someone delayed their payment by three days, someone needs an invoice, someone's contract is expiring, and the handoff agreement template got lost somewhere on an old hard drive.
Proprietary SaaS services for rental management are usually either overloaded with features for huge real estate agencies, or charge a monthly subscription for basic things. I recently came across an interesting open-source project that solves exactly this problem. This is MicroRealEstate.
What MicroRealEstate Can Do
Essentially, it's a ready-made web application for property owners who need to organize contracts, payments, and tenant contacts. The code is written in JavaScript and distributed under the permissive MIT license.
The project divides the interface into two main parts: the landlord dashboard and the tenant portal. This is convenient if you want to give tenants access to their payment history and documents without manually forwarding every PDF through messengers.
Here are the main features built into the system:
- Property and tenant database. You create cards for apartments, rooms, offices, link tenants to them along with their contact details and passport information.
- Contract and agreement templates. The system includes a built-in template editor. You configure the contract text with variables once, and the system automatically fills in tenant data, terms, and payment amounts.
- Rent payment and debt tracking. The app monitors the payment schedule, highlights overdue payments, and records money received.
- Bulk and personalized notifications. You can send tenants receipts, payment reminders, or important announcements via email directly from the interface.
- Collaboration. If you manage properties with a partner or hired assistant, you can add multiple accounts with role-based access control.
Interface and Screenshots
The interface looks clean without unnecessary visual clutter. Below are several screens from the project documentation.
| | | |
| :-----------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------: |
| Rents page | Send notices, receipt by email | Pay a rent |
|
| | |
| Tenants page | Tenant details | |
| | | |
| Properties page | Property details | |
| | | |
| Landlord page | Template leases | Author a contract |
| | | |
| Members | |
| | |
How to Deploy on Your Own Server
The authors packaged all services in Docker Compose, so deployment takes literally five minutes. Under the hood, the application uses MongoDB.
Configuration Preparation
First, create a working directory and download the base files:
mkdir mre
cd mre
curl https://raw.githubusercontent.com/microrealestate/microrealestate/master/docker-compose.yml > docker-compose.yml
curl https://raw.githubusercontent.com/microrealestate/microrealestate/master/.env.domain > .env
Be sure to open the .env file and set your own secret keys, tokens, and passwords at the end of the file. If you are updating an existing installation, transfer the old MONGO_URL values and secrets so you don't lose access to your data.
Running on a Local Machine
To test the interface on your computer, just run one command:
APP_PORT=8080 docker compose --profile local up
After startup, the landlord interface will be available at http://localhost:8080/landlord, and the tenant interface will be at http://localhost:8080/tenant.
Running on a Server with Domain and HTTPS
If you're setting up an instance on a VPS and have already configured your domain's DNS records to point to your IP, the system can automatically issue an SSL certificate through the built-in reverse proxy:
sudo APP_DOMAIN=app.example.com APP_PROTOCOL=https docker compose up
The control panel will be available over HTTPS at https://app.example.com/landlord.
Backup
Since all data is stored in MongoDB, backups are done with a single command using the official image:
docker compose run mongo /usr/bin/mongodump --uri=mongodb://mongo/mredb --gzip --archive=./backup/mredb-$(date +%F_%T).dump
You can restore the database from a dump similarly:
docker compose run mongo /usr/bin/mongorestore --uri=mongodb://mongo/mredb --drop --gzip --archive=./backup/mredb-XXXX.dump
Who This Project Is For
MicroRealEstate is unlikely to replace heavy ERP systems for large management companies with hundreds of residential complexes. They require integrations with GIS Housing, telephony, and specific cash registers.
However, for private landlords, owners of several apartments, or small coworking spaces, this is an excellent self-hosted alternative. Property and tenant data stays on your personal server, the interface is intuitive, and basic startup via Docker eliminates lengthy environment setup.
Related projects