Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rodydavis/pocketbase-cloudrun
Run PocketBase on CloudRun with mounted volumes via Google Cloud Storage
https://github.com/rodydavis/pocketbase-cloudrun
cloud-run cloud-storage google google-cloud google-cloud-run google-cloud-storage local-first pocketbase sqlite
Last synced: 26 days ago
JSON representation
Run PocketBase on CloudRun with mounted volumes via Google Cloud Storage
- Host: GitHub
- URL: https://github.com/rodydavis/pocketbase-cloudrun
- Owner: rodydavis
- License: apache-2.0
- Created: 2024-06-08T21:31:39.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-06-14T23:53:53.000Z (5 months ago)
- Last Synced: 2024-10-03T11:25:09.411Z (about 1 month ago)
- Topics: cloud-run, cloud-storage, google, google-cloud, google-cloud-run, google-cloud-storage, local-first, pocketbase, sqlite
- Language: JavaScript
- Homepage:
- Size: 2.87 MB
- Stars: 21
- Watchers: 1
- Forks: 9
- Open Issues: 1
-
Metadata Files:
- Readme: Readme.md
- License: LICENSE
Awesome Lists containing this project
README
# PocketBase on CloudRun
It is now possible to run [PocketBase](https://pocketbase.io/) on Google [CloudRun](https://cloud.google.com/run?hl=en) because of the recent support for [mounting volumes](https://cloud.google.com/run/docs/configuring/services/cloud-storage-volume-mounts). This is a guide on how to deploy PocketBase on Google Cloud Run.
> Disclaimer: This is not an official Google project.
## Features
- Scale to zero
- Infinite storage (and file deletion protection, file versions, and multi region)
- `pb_data`/`pb_public`/`pb_hooks` all in the same file system
- Backups can be done either by PocketBase or by protecting the bucket## Prerequisites
- Google Cloud project
- Google Cloud Storage bucket## Getting Started
Fork this repository or "Use this template" to create your own repository.
Deploy following the guide on the [official documentation](https://cloud.google.com/run/docs/building/containers#building_using_a_dockerfile).
## Steps
### Create a new service
![](/screenshots/create-service.png)
#### Google Cloud Build
- Setup with Cloud Build
- Repository Provider: `GitHub`
- Select Repository: `THIS_REPOSITORY_FORK`
- Branch: `main`
- Build Configuration: `Dockerfile`#### General Settings
- Allow unauthenticated invocations
- CPU is only allocated when the service is handling requests
- Maximum number of requests per container is set to `1000`
- Maximum number of containers is set to `1`
- Timeout is set to `3600`
- Ingress is set to internal and `all` traffic#### Container(s), Volumes, Networking, Security
##### Volumes
- Add volume
- Volume type: `Google Storage bucket`
- Volume name: `remote-storage (or any name you want)`
- Bucket: `YOUR_BUCKET_NAME`
- Read-only: `false`##### Container(s)
- Startup CPU boost is `enabled`
- Volume mount (s)
- Volume name: `remote-storage`
- Mount path: `/cloud/storage`#### Health Checks
You can add a health check to your service that uses Pocketbase's health check endpoint `/api/health`.
![](/screenshots/health-check.png)
### Deployed
Now create the service and wait for the cloud build to finish.
If everything goes well, you should see the service deployed.
![](/screenshots/deployed.png)
## FAQ
### What if I have local files that I want to use?
`pb_data`, `pb_public`, and `pb_hooks` are all directories you might use during development.
You can upload these directories to your Google Cloud Storage bucket you created earlier to the root directory.
### Can I use a custom domain?
Yes, you can use a custom domain. You can follow the guide on the [official documentation](https://cloud.google.com/run/docs/mapping-custom-domains).