Skip to content

Quick Start (Local Development)

Rental property during the day

Get OpenSTR running locally for development or evaluation.

Prerequisites

  • Node.js 20+
  • Docker (for PostgreSQL)
  • Flutter SDK 3.10+ (optional, for mobile app)
  • Your Airbnb iCal URL (from Calendar → Export in your Airbnb host dashboard)

1. Clone and Install

git clone https://github.com/lkilpatrick/OpenSTR.git
cd OpenSTR
npm install

2. Start PostgreSQL

docker run -d --name openstr-postgres \
  -e POSTGRES_DB=openstr \
  -e POSTGRES_USER=openstr \
  -e POSTGRES_PASSWORD=openstr \
  -p 5432:5432 \
  postgres:16-alpine

3. Configure Environment

cp api/.env.example api/.env

Default .env values work with the Docker command above:

DATABASE_URL=postgresql://openstr:openstr@localhost:5432/openstr
JWT_SECRET=dev-jwt-secret-change-in-production
JWT_REFRESH_SECRET=dev-refresh-secret-change-in-production

4. Run Migrations and Seed Data

cd api
npx node-pg-migrate up --database-url-var DATABASE_URL
npm run db:seed:demo    # Generic demo data (open source)

Demo Credentials

Role Email Password
Admin [email protected] admin123
Cleaner [email protected] cleaner123

The demo seed creates a Beach House property with rooms, tasks, reservations, and cleaning sessions.

5. Start the API and Admin Panel

# From the repo root
npm run dev:api     # API on http://localhost:3000
npm run dev:admin   # Admin on http://localhost:5173

6. Start the Mobile App (Optional)

cd mobile_flutter
flutter run -d chrome --dart-define=API_URL=http://localhost:3000

For a physical device:

flutter run --dart-define=API_URL=http://YOUR_LAN_IP:3000

Verify It's Working

  1. Open http://localhost:5173 — you should see the admin login page
  2. Log in with [email protected] / admin123
  3. You should see the Dashboard with the Beach House property
  4. Check http://localhost:3000/health — should return a health check response