{"id":18793385,"url":"https://github.com/dossierhq/dossier-next-sqlite-app","last_synced_at":"2026-05-09T14:05:19.220Z","repository":{"id":65558481,"uuid":"592096236","full_name":"dossierhq/dossier-next-sqlite-app","owner":"dossierhq","description":"Template for an app using Dossier, Next.js and SQLite","archived":false,"fork":false,"pushed_at":"2024-04-12T19:53:17.000Z","size":1166,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-04-13T21:19:08.163Z","etag":null,"topics":["cms","dossier","nextjs","sqlite","template"],"latest_commit_sha":null,"homepage":"https://dossierhq.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dossierhq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2023-01-22T22:24:36.000Z","updated_at":"2024-04-19T20:51:20.098Z","dependencies_parsed_at":"2023-02-15T22:31:38.407Z","dependency_job_id":"8c6b93f2-19f1-4e74-b1ef-23de190d3de0","html_url":"https://github.com/dossierhq/dossier-next-sqlite-app","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dossierhq%2Fdossier-next-sqlite-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dossierhq%2Fdossier-next-sqlite-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dossierhq%2Fdossier-next-sqlite-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dossierhq%2Fdossier-next-sqlite-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dossierhq","download_url":"https://codeload.github.com/dossierhq/dossier-next-sqlite-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239718425,"owners_count":19685725,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cms","dossier","nextjs","sqlite","template"],"created_at":"2024-11-07T21:24:44.496Z","updated_at":"2025-12-28T23:30:13.467Z","avatar_url":"https://github.com/dossierhq.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# dossier-next-sqlite-app\n\n[![Node CI](https://github.com/dossierhq/dossier-next-sqlite-app/actions/workflows/node.js.yml/badge.svg)](https://github.com/dossierhq/dossier-next-sqlite-app/actions/workflows/node.js.yml) [![Demo - Deploy to Fly](https://github.com/dossierhq/dossier-next-sqlite-app/actions/workflows/demo-deploy-fly.yml/badge.svg?branch=demo)](https://github.com/dossierhq/dossier-next-sqlite-app/actions/workflows/demo-deploy-fly.yml)\n\nThis is a template for an app using [Dossier](https://dossierhq.dev/), [Next.js](https://nextjs.org/)\nand [SQLite](https://www.sqlite.org/).\n\nIn order to keep things as simple as possible, this template doesn't have any auth. I.e. there's no\nneed to login and all users use the same anonymous user. In order to protect the data, in production\n(`pnpm run start:production`) only read-only published content can be accessed, and the Dossier web\ninterface is disabled.\n\n\u003e **Warning**\n\u003e When deploying to Netlify or Vercel you will only be able to use Dossier at build-time, since\n\u003e Next.js running in serverless mode don't support opening SQLite databases in run-time. Running\n\u003e locally, or in a \"normal\" Node server doesn't have this restriction.\n\n## Getting started\n\n- `npm init using dossierhq/dossier-next-sqlite-app my-project`\n- `cd my-project`\n- `git init \u0026\u0026 git add . \u0026\u0026 git commit -m '🚀 Created project 🚀'`\n- `pnpm install`\n- `pnpm run build`\n- `pnpm start`\n\nYou should now have a working app running at http://localhost:3000. Try to add an entity type to the\nschema and create some entities.\n\nA new SQLite database will be created in `data/database.sqlite`. By adding it to Git you can keep\nthe state of Dossier and synchronize it between computers.\n\n## Deploy\n\n### Docker\n\n- `docker build --target runner -t dossier-next-sqlite-app .`\n- `docker run -p 3000:3000 --mount type=bind,source=\"$(pwd)\"/data,target=/data --env SQLITE_FILE=/data/database.sqlite dossier-next-sqlite-app`\n\n### Fly.io\n\n[Fly.io](https://fly.io/) allows to deploy apps with generous\n[free allowance](https://fly.io/docs/about/pricing/#free-allowances).\n\nFollow the guide to [install flyctl, sign up and sign in to Fly.io](https://fly.io/docs/hands-on/).\nThe generate a new Fly app:\n\n```console\n$ cd my-project\n$ fly launch # select NO on deploy now\n```\n\nChange the generated file `fly.toml` and set the `PORT` environment variable to 8080, like so:\n\n```toml\n[env]\n  PORT = \"8080\"\n```\n\nNow you can go ahead and deploy:\n\n```console\n$ fly deploy\n$ fly open\n```\n\n- [Demo](https://dossier-next-sqlite-app.fly.dev/) (using the\n  [demo](https://github.com/dossierhq/dossier-next-sqlite-app/tree/demo) branch)\n- The database file is part of the deployed app, but it's read-only. Fly supports [persistent storage](https://fly.io/docs/reference/volumes/), but if you're using a deployed writable database you most likely want auth as well, so it's out of scope for this template\n\n### Netlify\n\n[![Deploy with Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/dossierhq/dossier-next-sqlite-app)\n\n- [Demo](https://demo--snazzy-klepon-8fdb41.netlify.app/) (using the\n  [demo](https://github.com/dossierhq/dossier-next-sqlite-app/tree/demo) branch)\n- **N.B** Only static (i.e. build-time) usages of Dossier are supported on Netlify when using an\n  SQLite database.\n\n### Vercel\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fdossierhq%2Fdossier-next-sqlite-app)\n\n- [Demo](https://dossier-next-sqlite-app.vercel.app/) (using the\n  [demo](https://github.com/dossierhq/dossier-next-sqlite-app/tree/demo) branch)\n- **N.B** Only static (i.e. build-time) usages of Dossier are supported on\n  [Vercel when using an SQLite database](https://vercel.com/guides/is-sqlite-supported-in-vercel).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdossierhq%2Fdossier-next-sqlite-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdossierhq%2Fdossier-next-sqlite-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdossierhq%2Fdossier-next-sqlite-app/lists"}