Self-hosted service
microrealestate/microrealestate avatar
microrealestate/microrealestate

MicroRealEstate: self-hosted leases, rents and receipts

Self-hosted property management app for landlords to manage leases, rents and receipts.

1,204 stars411 forksJavaScriptNOASSERTION

At a glance

What is it?
MicroRealEstate is a property management application for landlords that runs on a machine you own, with Docker services, MongoDB, a tenant portal and a one-line shell installer. The licence is the constraint worth reading first, because the Sustainable Use License covers a private landlord with up to five units and excludes commercial use entirely.
Who is it for?
Adopt MicroRealEstate if you are a private landlord with a handful of units who wants rent, lease and receipt handling on hardware you control, and you are comfortable with Docker services and a MongoDB on a Linux box. Do not adopt it for commercial use, because the Sustainable Use License excludes hosted provision, paid redistribution, more than five units and any use for the benefit of third parties, and it requires a separate commercial licence.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 52 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Landlord software, on your own box

MicroRealEstate is a self-hosted property management application for landlords, and the summary in the README is direct: record a payment and the balance updates itself, generate a lease from your own template, email this month's receipts in one pass. All of it on a machine you own, not in somebody else's cloud.

The audience is small and specific, which the project does not hide. There is no company behind it, nothing here is trying to sell you anything, and the donations are the only thing funding the work. The primary language is JavaScript, the site is microrealestate.app where you can see the app screen by screen, and the repository is not archived.

The feature list is short enough to hold in your head. Rents are recorded as payments land, balances recalculate themselves, and overdue rents stay visible. Leases are generated from your own customizable templates rather than by copying last year's file. Documents means rent notices and receipts are generated and then emailed to the right tenants in one pass. Tenants and properties put every unit, tenant and contact record in one place. Collaboration lets you invite a second person from Settings and Access, with their own account and the same records. The tenant portal lets tenants check their lease, payment history and receipts themselves. And the last feature is the point of the whole project: self-hosted, Docker microservices and MongoDB on any Linux machine, with your data never leaving your server.

That last one is the reason to run your own property management software rather than renting a service, and the project makes no attempt to pretend the reverse.

The installer does most of the work

The getting started section is a single command, and it is worth reading what it implies before you run it.

shell
curl -sSL https://raw.githubusercontent.com/microrealestate/microrealestate/main/install.sh | bash

The installer runs on any Linux machine, and the README is relaxed about which: your laptop, an old desktop, or the cheapest VPS your host sells. Docker and Compose are installed automatically if missing, and binding the default ports, 80 and 443, needs root, so the installer will prompt for your sudo password.

The installer then does four things: it detects the server's IP address automatically, it generates the required secrets, it starts all services, and it displays the URLs for the landlord and tenant user interfaces.

On first run you then navigate to the landlord UI, create your account, add your first property and tenant, and configure a domain from Settings and Web server to serve the app over HTTPS. The domain step is separate from the install because TLS needs a domain name to issue a certificate against.

Updating an existing installation uses the same one-liner run from the install directory, the one holding the .env file, with update appended:

shell
curl -sSL https://raw.githubusercontent.com/microrealestate/microrealestate/main/install.sh | bash -s -- update

The README also notes that ./install.sh update works too if you kept a local copy.

The installer drops an mre.sh script next to itself for day-to-day operations, and the list of what it does is the operational surface of the whole application: start, stop, restart, status, logs, backup and restore. Those are the operations documentation covers in the operations file, and how releases are cut and images promoted is a separate document.

A tenant portal and a second pair of hands

Two features are worth separating out, because they are the ones that decide whether the application saves you time or adds to it.

The tenant portal is the one that reduces your own workload. Tenants check their lease, their payment history and their receipts themselves, which means the recurring question, where is my receipt, is answered without you. Since the documents feature already generates receipts and emails them in one pass, the portal completes the loop: the receipt is generated, sent, and then permanently available to the person it belongs to.

Collaboration is the feature for a landlord who is not doing this alone. You invite a second person from Settings and Access, they get their own account, and they see the same records. That is deliberately not a shared login and not a read-only view, which is the right call for property management where the co-owner needs to record a payment and a contractor only needs to see a job.

The design intent behind the whole feature list is that repeated small administrative tasks disappear rather than get faster. A payment updates the balance, the balance determines who is overdue, the overdue list determines who gets a notice, and the notice is generated from a template and emailed. Each of those is a thing a landlord does by hand today, and the application is worth adopting if the chain of them is long enough to matter and the data is the kind you want to keep.

That last qualifier is the honest one. The data in this application is leases, payments and personal contact details of real people, and the self-hosted model is what keeps that data on hardware you control.

The repository is services, web apps and a CLI

The package manifest shows a Yarn workspace, and the structure tells you what the application is made of.

The workspaces are cli, e2e, services/*, webapps/* and shared. The services are the microservices that the README mentions, the webapps are the landlord and tenant front ends, shared is the code both use, the cli is the operator tool, and e2e is the test suite.

The scripts show how it is run in development, and the pattern is consistent: everything goes through Docker Compose with a base file and an overlay. The dev script generates the version, sets the Docker buildkit flag and a development version variable, and brings up the base compose file with the development overlay. The ci script does the same with the CI overlay and detaches the containers, build builds without cache, start recreates the containers, and stop stops them.

The CLI is invoked directly for the data tasks. There is a seeddemo command and a seeddev command for populating data, and a resetdata command. The lint script is a single biome check with the write flag, and the end-to-end scripts are Cypress, with separate commands for the CI run, a local run and an open mode. There is also a generate:dockerfiles script, and the docker/scripts directory is where it lives.

Around that are the files a careful project has: lefthook.yml for the git hooks, a .yarnrc.yml, a .env.ci and a .env.domain for the two deployment flavours, a .dockerignore, a changelog/ directory, a SECURITY.md, a CLA.md, a CONTRIBUTING.md, and a documentation/ directory holding the developer guide, the operations guide, the releasing guide and the screenshots.

The licence decides who may run this

MicroRealEstate is source available under the Sustainable Use License, version 2.0, and the README sets out the terms in plain terms because they are unusual.

It is free for a private landlord managing up to five rental units, outside any professional, business or revenue-generating activity. You may modify the source and share it free of charge for non-commercial use. Commercial use is not permitted under the SUL, and that list is specific: hosted or SaaS provision, paid redistribution, managing more than five rental units, and any use for the benefit of third parties. Any of those requires a separate commercial licence from the licensor.

The version boundary matters for anyone who forked the project. Commits up to 479d0ad7, dated December 9, 2025, remain under the MIT licence, and commits from a95d44d, dated February 11, 2026, onward are under the SUL. So a fork that predates the change is MIT and can be used commercially, and anything more recent is not.

For the intended user this is a workable arrangement. A landlord with three units is exactly the case the licence names, and sharing a modified version for non-commercial use is explicitly allowed.

For anyone else, the commercial licensing contact is published in the README, and the repository's licence metadata points to the LICENSE.md file rather than to a standard identifier, which is why the badge reads SUL v2.0.

Who maintains it, and where it stands

MicroRealEstate is built and maintained by Camel Aissani, with help from the community on GitHub, and the README is unusually direct about the funding model. There is no company behind it, nothing here is trying to sell you anything, and donations are the only thing funding the work, with a Ko-fi link and a GitHub Sponsors link.

The release history shows a project that has been stabilising rather than churning. Version 1.0.0-alpha.3 came on 2024-11-14, then v1.0.0-rc1 and v1.0.0 both on 2026-09-01, about forty minutes apart, with the 1.0.0 release tag as the last push to the repository on the same day.

That the two 1.0 tags are minutes apart tells you the release process cut a release candidate and the final on the same day, and the documentation has a separate file on how releases are cut and how images are promoted, which is the kind of detail a project needs when the release artefact is a set of container images rather than a tarball.

The licence change in February 2026 and the 1.0 release in September 2026 are the two events that mark this project's recent history, and both are visible in the commits rather than only in the announcements. The project is not archived, the homepage shows the dashboard screenshot that the README leads with.

Editorial conclusion

Adopt MicroRealEstate if you are a private landlord with a handful of units who wants rent, lease and receipt handling on hardware you control, and you are comfortable with Docker services and a MongoDB on a Linux box. Do not adopt it for commercial use, because the Sustainable Use License excludes hosted provision, paid redistribution, more than five units and any use for the benefit of third parties, and it requires a separate commercial licence. Before you start, read the licence terms against your own situation, plan for the 80 and 443 ports needing root on first install, and read the operations documentation, since backup and restore are handled by the mre.sh script rather than by the app itself.

Frequently asked questions

What does MicroRealEstate do?

It is a self-hosted property management application for landlords. You record rents and the balances recalculate, you generate leases from your own templates, and you generate rent notices and receipts and email them to the right tenants in one pass, with a tenant portal where tenants can check their own lease, payment history and receipts.

How do I install MicroRealEstate?

Run curl -sSL https://raw.githubusercontent.com/microrealestate/microrealestate/main/install.sh | bash on any Linux machine. The installer installs Docker and Compose if they are missing, detects the server IP, generates the secrets, starts the services and prints the landlord and tenant URLs, and binding ports 80 and 443 needs root so it asks for your sudo password.

Can I use MicroRealEstate commercially?

Not under the Sustainable Use License it ships with. It is free for a private landlord with up to five rental units outside professional, business or revenue-generating activity, and commercial use is not permitted, which explicitly includes hosted or SaaS provision, paid redistribution, more than five units and any use for the benefit of third parties. That requires a separate commercial licence.

How do I update an existing MicroRealEstate installation?

Run the same installer one-liner from the install directory, the one holding the .env file, with update appended: curl -sSL https://raw.githubusercontent.com/microrealestate/microrealestate/main/install.sh | bash -s -- update. Day-to-day operations, including start, stop, restart, status, logs, backup and restore, go through the mre.sh script the installer drops next to itself.

Can two people use the same MicroRealEstate installation?

Yes. You invite a second person from Settings and Access, and they get their own account with access to the same records. The application is also structured as Yarn workspaces covering a CLI, the services, the web applications, shared code and an end-to-end suite driven by Cypress.

Official sources

  1. Issues
  2. microrealestate/microrealestate on GitHub
  3. Project website
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/microrealestate-microrealestate.svg)](https://hysenlabs.com/projects/microrealestate-microrealestate)

Was this useful?