MuseMVP Docs

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 install

If 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 dev

Init 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:

AccountPasswordExplore
[email protected]musemvpWorkspace and account settings
[email protected]musemvpWorkspace 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 /app and /app/settings/general.
  • The admin account can open /app/admin/users.
  • Signing out returns to the public site; revisiting /app asks you to sign in.

Common Problems

What you seeWhat to try
GitHub reports repository not foundCheck that your GitHub account has accepted access, then check HTTPS/SSH credentials
pnpm is not foundRun npm install -g [email protected], then reopen the terminal
Docker init failsStart Docker Desktop; check for another Postgres using port 5432
Database connection refusedCheck the development database host, port, user, and password in apps/web/.env.local
Password sign-in failsRun the matching seed command, check the seed password, and use the password form rather than OTP
Port 3000 is occupiedStop the other local app or configure a matching local origin and port before testing auth
Missing generated content typesStart 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.

On this page