Quick Start (Local Development)¶

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¶
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¶
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 | 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)¶
For a physical device:
Verify It's Working¶
- Open
http://localhost:5173— you should see the admin login page - Log in with
[email protected]/admin123 - You should see the Dashboard with the Beach House property
- Check
http://localhost:3000/health— should return a health check response