Seeding
Seed profiles, fixture data, and local development credentials.
Toast uses a profile-based seed system in shared/db/src/fixtures/.
Quick reference
td db seed
td seed:status
td db resetWhat the seed script does
The seed script is idempotent. Running it again refreshes development data rather than duplicating it.
At a high level it:
- ensures the default site exists
- ensures the required site settings rows exist
- creates the seed users for the active profile
- clears and re-inserts content fixtures for that site
Profiles
Seed profile selection works like this:
SEED_PROFILEif explicitly setNODE_ENV=development→development- otherwise →
default
default profile
Uses the injected SEED_ADMIN_* environment variables.
From .env.example:
| Variable | Default |
|---|---|
SEED_ADMIN_EMAIL | admin@ghost.org |
SEED_ADMIN_PASSWORD | admin |
SEED_ADMIN_NAME | Admin |
development profile
Loads richer fixed demo data from shared/db/src/fixtures/profiles/development/, including multiple users and sample content.
Local development login
For the standard local contributor flow, use:
- Email:
admin@ghost.org - Password:
admin
If you explicitly switch to the development profile, the seeded users come from the fixture files instead.
Fixtures
Fixtures live here:
shared/db/src/fixtures/
├── profiles/
│ ├── default/
│ └── development/
│ ├── content.json
│ └── users.ts
├── load-profile.ts
└── types.tsThe development/content.json file contains sample TipTap documents used for local testing.
Checking seed status
td seed:statusThis is especially useful when debugging fresh local environments or PR preview environments where setup may not have completed.