Dossier enables you to build solutions where you’re in full control of the content. By bringing your own auth (authentication and authorization), database and backend, you can build a headless Content Management System (CMS) and integrate it with your app.
For more information about Dossier, head over to dossierhq.dev. The rest of this readme is focused on developing and contributing to Dossier itself.
If you just want to get started using Dossier, these destinations might get you there faster:
- Dossier Playground - use Dossier in a browser
- dossier-next-sqlite-app - a template using Dossier, Next.js and SQLite
- dossier-astro-sqlite-app - a template using Dossier, Astro and SQLite
| Package | Version | Folder |
|---|---|---|
@dossierhq/better-sqlite3 |
libraries/better-sqlite3 | |
@dossierhq/cloudinary |
libraries/cloudinary | |
@dossierhq/core |
libraries/core | |
@dossierhq/core-vitest |
libraries/core-vitest | |
@dossierhq/database-adapter |
libraries/database-adapter | |
@dossierhq/design |
libraries/design | |
@dossierhq/graphql |
libraries/graphql | |
@dossierhq/integration-test |
libraries/integration-test | |
@dossierhq/leaflet |
libraries/leaflet | |
@dossierhq/pg |
libraries/pg | |
@dossierhq/postgres-core |
libraries/postgres-core | |
@dossierhq/postgres-tools |
libraries/postgres-tools | |
@dossierhq/react-components |
libraries/react-components | |
@dossierhq/react-components2 |
libraries/react-components2 | |
@dossierhq/server |
libraries/server | |
@dossierhq/sql.js |
libraries/sql.js | |
@dossierhq/sqlite-core |
libraries/sqlite-core | |
@dossierhq/typescript-generator |
libraries/typescript-generator |
- Use mise to install the tools in
.tools-versions brew install pgcli(optional, for Postgres access)brew install gnuplot(for benchmarking)npx playwright install(for installing browsers for Playwright testing)
pnpm ito install dependencies.- In
tools/generic-tools/:- By default the databases (test and example databases on PostgreSQL) are configured in Docker. To use another db set the env variable
HOST_ROOT_DATABASE_URL npm run db:start(only if running db in Docker)npm run db:ensure-dbsnpm run db:make-users:superusernpm run db:migrate:allnpm run db:make-users:no-superuser
- By default the databases (test and example databases on PostgreSQL) are configured in Docker. To use another db set the env variable
pnpm run build
- Start dev container
- The script post-create.sh runs automatically on first run
- When done, restart your shell since it sets up environment variables
- For root access to the Postgres database, run
psql "$HOST_ROOT_DATABASE_URL"orpgcli "$HOST_ROOT_DATABASE_URL"
- Run
pnpm tools:update- Update
packageManagerinpackage.jsonto match the version ofpnpmyou have installed
- Update
- Run
pnpm deps:update-interactive - Upgrade Deno dependencies in the 3
import-map.jsonfiles - Run
(cd tools/generic-tools && npm run deno:reload-dependencies:all) - Upgrade the postgres version in
./docker-compose.yml
- When making changes to published packages, create a changeset using
pnpm changeset:add - The release workflow will automatically open a PR to bump the versions
- Merge the PR to publish the packages
- 3000: examples/tutorial
- 3001: examples/next-web
- 3002: apps/playground
- 3003: apps/blog
- 3004: apps/playground2
- 4321: examples/astro
- 4322: examples/astro (HMR)
- 5173: examples/tutorial
- 6006: libraries/react-components
- 6007: libraries/design
- 6008: libraries/react-components2
- 9000: libraries/libsql - admin entity
- 9001: libraries/libsql - advisory lock
- 9002: libraries/libsql - advisory lock
- 9003: libraries/libsql - published entity
- 9004: libraries/libsql - schema
- 9005: libraries/libsql - changelog
- 9006: libraries/libsql - sync source
- 9007: libraries/libsql - sync target