Quick Start
Download the source, start a local app, and sign in with your development accounts.
By the end of this guide, you will have a local MuseMVP app and be able to sign in to its workspace. Real payments, OAuth, and storage can wait until you need them.
Before You Start
- Git and access to the source repository using the GitHub account granted access after purchase.
- Node.js 22.x and pnpm 10.26.2, the version pinned by the template.
- Docker Desktop running, or an existing development Postgres database.
Run this application on port 3000; stop any other app using that port.
1. Get the Source
Clone using the GitHub account with repository access:
git clone https://github.com/musemvp/musemvp.git
cd musemvp
pnpm installIf SSH is configured, you can use [email protected]:musemvp/musemvp.git. Run the remaining commands from the repository root, where pnpm-workspace.yaml lives.
2. Initialize Your App
Local Development
With Docker Desktop running:
pnpm muse:init --yes --app web --docker
pnpm db:seed
pnpm devInit starts the included local Postgres service, writes apps/web/.env.local, generates signing secrets, and applies migrations. Seed creates your development login accounts.
Already have a development Postgres database? Replace the init command with this one, using your connection string:
pnpm muse:init --yes --app web --database-url "postgres://USER:PASSWORD@HOST:5432/DATABASE"Then run pnpm db:seed and pnpm dev. Use a fresh development database, not an existing production database.
3. Open the App and Sign In
When the server is ready, open http://localhost:3000. Visit /auth/login, select password sign-in, and use either account:
| Account | Password | Explore |
|---|---|---|
[email protected] | musemvp | Workspace and account settings |
[email protected] | musemvp | Workspace and admin user management |
These assume unchanged seed defaults. If you edited MUSE_SEED_EMAIL or MUSE_SEED_PASSWORD, use your configured domain and password. These accounts are for development only.
Node init uses MAIL_PROVIDER=console: mail prints in the server terminal rather than being delivered. Use seed accounts for your first login. Set up Email for real registration or OTP delivery;
Check Your Result
- The public homepage opens without a server error.
- The user account can open
/appand/app/settings/general. - The admin account can open
/app/admin/users. - Signing out returns to the public site; revisiting
/appasks you to sign in.
Common Problems
| What you see | What to try |
|---|---|
| GitHub reports repository not found | Check that your GitHub account has accepted access, then check HTTPS/SSH credentials |
pnpm is not found | Run npm install -g [email protected], then reopen the terminal |
| Docker init fails | Start Docker Desktop; check for another Postgres using port 5432 |
| Database connection refused | Check the development database host, port, user, and password in apps/web/.env.local |
| Password sign-in fails | Run the matching seed command, check the seed password, and use the password form rather than OTP |
| Port 3000 is occupied | Stop the other local app or configure a matching local origin and port before testing auth |
| Missing generated content types | Start pnpm dev or run pnpm build to generate Fumadocs sources |
Use pnpm muse:doctor to check your toolchain. Avoid --force on an existing environment: it can replace configured values and signing secrets.
Next: Make It Yours
Continue with Brand and App Settings. Add Email, Payments, and Storage as needed.
Your own private repository and future upstream merges are covered separately in Updating Your Project.