Condo
Condo is an Open Source property management SaaS that allows users to manage tickets, resident contacts, properties, payment tracking, create invoices, and oversee a service marketplace, all while offering an extension system for mini-apps, making it an ideal platform for property management companies and those servicing shared properties.
Install / Use
/learn @open-condo-software/CondoREADME
CONDO
Condo is an Open Source property management SaaS that allows users to manage tickets, resident contacts, properties, payment tracking, create invoices, and oversee a service marketplace, all while offering an extension system for mini-apps, making it an ideal platform for property management companies and those servicing shared properties.

Table of contents
Getting started
1. Databases setup
We use Postgres 16.4 to store most of the information, and Redis 6.2 to store session information, asynchronous tasks, and various caches. In addition to them, we use s3 to store files, but it is optional to get started.
You can start the databases using docker compose with this command:
docker compose up -d postgresdb redis
Or you can bring up the databases directly on the host machine, using the corresponding tutorials
2. Environment setup
Node.js 22.x
All of our applications are written in Node.js, so you should also install it before you run the project.
We run our applications on the current LTS version of node, which is 22.x. You can check node version using
node -vcommand in your terminal.
We recommend using nvm for local development, and for deploying the application there is Dockerfile ready to use at the root of the repository.
Python 3.x
We also use Python with packages for database migrations. So make sure you have one installed.
3. Installing dependencies
To install Node.js dependencies simply type the following command:
yarn install
If you get errors related to missing yarn, use these instructions to install it.
We also use turborepo to orchestrate npm modules in this monorepo. Even though it is specified in the global
package.json, in some environments you may get the error“turbo: command not found”in further steps...In such cases, we recommend installing it globally using:
npm i -g turbo@^2
To install python packages type the command:
pip install Django psycopg2-binary
4. Building @open-condo dependencies
Condo depends on several packages located in ./packages directory,
so it is required to build them before launching the main application.
You can do it using this command:
yarn workspace @app/condo build:deps
5. Preparing the local app environment
We have a mechanism in place to get applications ready for launch, specifically:
- Copy the global and local .env.example to .env
- Create a database for each application and perform the necessary migrations in it
- Assign dedicated ports to the applications
- Run the local prepare of each application
During the "local prepare" step each app prepares itself by filling extra environment variables, creating test users and other entities, needed for the first launch.
To launch prepare script, run the following command:
node bin/prepare -f condo
This step is only used in local development, so consider manually setting all environment variables and migrating databases using
yarn workspace @app/condo migratein real deployment pipelines.
6. Start app locally in dev / prod mode
Development mode
The application is now fully ready to be started. To start the application locally in development mode, simply run the following command:
yarn workspace @app/condo dev
Production mode
If, however, you want to build the app in production mode, then to do so, execute:
yarn workspace @app/condo build
And then run the project with:
yarn workspace @app/condo start
Now open your browser and navigate to http://localhost:4006, where you should see the app running 🥳.
You can control the port assigned by manually setting it in
apps/condo/.envfile. Default one is assigned by prepare script during the prepare step (You can verify theSERVER_URLandPORTin theapps/condo/.envfile)
To log in, go to http://localhost:4006/admin/signin and enter the following credentials:
- Email:
DEFAULT_TEST_ADMIN_IDENTITY - Password:
DEFAULT_TEST_ADMIN_SECRET
These credentials can be found in the app/condo/.env file, which is generated by the ./bin/prepare.js script.
7. Start the worker
Worker is a separate process that handles asynchronous tasks (such as sending notifications, importing, exporting and others)
To run it, you need to first build the application using:
yarn workspace @app/condo build
And then start it using:
yarn workspace @app/condo worker
Major version migration guide
Check migration.md
Developing
Check developing.md
Contributing
Check contributing.md
Major versions migration guide
Check migration.md
Deploying
Check deploy.md
Open Source partners
- This project is tested with BrowserStack
