Welcome to the PocketBase + SvelteKit project template! This template allows you to effortlessly create a single Docker container housing both the backend (PocketBase) and frontend (SvelteKit) for your projects. With a minimal image size of just 55 MB, it's perfect for cost-effective hosting providers and projects without extensive public pages that require SEO.
pocketbase/
: Backend files, including hooks and migrations.sveltekit/
: SvelteKit project with preconfigured routes/login
,/register
, and an auth-protected group(auth)
. In production builds, frontend files are copied aspb_public
to the PocketBase container.
- Frontend configured with
adapter-static
(SPA mode), disabling server-side rendering for a streamlined production setup. - Client-side session management is preconfigured.
- Multi-stage Dockerfile for running PocketBase in dev mode (mounting hooks and migrations to the host).
- Bun is used for frontend development and building.
- GitHub workflow
build.yaml
could be manually triggered to push the docker image toghcr.io
- Run dev PocketBase server:
docker compose -f compose.dev.yaml up
. - Run frontend dev server with
bun
ornpm
. - Use
PUBLIC_POCKETBASE_URL
env variable if your PocketBase server is not accessible atlocalhost:8090
. - For production, use
docker compose -f compose.prod.yaml up
or build the Docker image with targetprod
first.
- Multistage build with targets:
base
: Used for the dev server with all PocketBase directories mounted.prod
: Used for the production build, embedding frontend, hooks, and migrations into the image.
- SSR is disabled for simplified deployment, sacrificing SEO features.
- Authorization is handled on the client side. Note, users can fetch all frontend resources, including pre-rendered pages and JS bundles. Sensitive information must be served from PocketBase.
cd sveltekit
bunx @svelte-add/tailwindcss@latest
bun install
We welcome contributions! Please feel free to submit issues or pull requests.
This project is licensed under the MIT License.
Special thanks to PocketBase, SvelteKit, and the authors of other PocketBase-SvelteKit templates (1, 2).
If you have any questions or feedback, please use the GitHub Issues page.
- Production docker compose file
- Rewrite readme
- PocketBase & SvelteKit shared .ts types
- Subscribe to realtime DB updates
- Add lib/pocketbase.js documentation
- Redirect to ?next= on login
- Run formatter and linter