>_ DevTrendsen

Language

Home

Languages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Security
JavaScript

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:

  1. Property and tenant database. You create cards for apartments, rooms, offices, link tenants to them along with their contact details and passport information.
  2. 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.
  3. Rent payment and debt tracking. The app monitors the payment schedule, highlights overdue payments, and records money received.
  4. Bulk and personalized notifications. You can send tenants receipts, payment reminders, or important announcements via email directly from the interface.
  5. 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 | | Rents page | | | | 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