Prerequisites
Before you begin, make sure the following tools are installed on your machine:Node.js 24.x
Use nvm to manage versions. Verify with
node -v.Python 3.x
Required for database migrations via
kmigrator.Docker & Docker Compose
Used to run PostgreSQL 16 and Redis 6.2 locally.
Condo runs on the current LTS version of Node.js, which is 24.x. Check your version with
node -v.Setup Steps
Start the databases
Condo uses PostgreSQL 16 for persistent storage and Redis 6.2 for sessions, task queues, and caching. Start both with Docker Compose:Alternatively, you can install and run PostgreSQL and Redis directly on your machine.Default ports:
- PostgreSQL:
5432 - Redis:
6379
Install Node.js and Python dependencies
Install all Node.js dependencies from the repo root:Install the Python packages required for database migrations:
Build @open-condo packages
Condo depends on several internal packages located in the
./packages directory. These must be built before running any app:Prepare the local environment
The prepare script automates first-time setup:
- Copies
.env.examplefiles to.env - Creates the app database and runs migrations
- Assigns a port to the app
- Creates test users and seed data
This step is only for local development. In production pipelines, set environment variables manually and run
yarn workspace @app/condo migrate directly.Start the application
Start the main Condo application in development mode:Open your browser and navigate to http://localhost:4006.
Log in to the admin panel
Navigate to http://localhost:4006/admin/signin and use the credentials generated by the prepare script:
Open
| Field | Value |
|---|---|
Value of DEFAULT_TEST_ADMIN_IDENTITY in apps/condo/.env | |
| Password | Value of DEFAULT_TEST_ADMIN_SECRET in apps/condo/.env |
apps/condo/.env to find the exact values.Start the worker (optional)
The worker is a separate process that handles asynchronous tasks such as sending notifications, importing data, and exporting reports.First build the app, then start the worker:
The worker is required for features like notifications, imports, and exports. If these features are not needed during development, you can skip this step.
Production Mode
To build and run the application in production mode:Debugging Tips
Debug database queries
To log all SQL queries and transactions to the console, set theDEBUG environment variable:
Use fake client mode for tests
TheTESTS_FAKE_CLIENT_MODE flag runs the entire request/response cycle in a single process, making it easier to set breakpoints in your IDE: