PocketHost 0.9.0

Overview 🔗

Get ready to dive into the newest chapter of the PocketHost saga with the latest 0.9.0 release, offering some major enhancements that'll spring your productivity into overdrive.

Take control with the new PocketBase JS Hooks support. All hail the pb_hooks directory, a new playground for your wildest Javascript explorations. As a result, Deno worker support took the backstage, but rest assured, it's for a good reason: the stability of the sailing ship that is the PocketHost-PocketBase alliance.

Expect an extra layer of robustness as instances now run in Docker containers. It's a necessary security guard ensuring every instance holds its ground securely without interfering with the others. Bear with us on this one - we're expecting a little turbulence as we calibrate the Docker influence on the platform.

Witness the speed of light with Static Site Generation (SSG) on the new-look frontend, now hosted on Cloudflare Pages. It's as if the Mothership running in San Francisco engaged hyperdrive, promising almost instant load times, and delivering a huge upgrade in user experience.

For an in-depth look at all the enhancements and discussions around v1.0 and its potential paid tiers, hop onto our dedicated Discord server. Your input might just influence the future face of PocketHost. Get your hands on the project now - this ride to fantastic, efficient web hosting is only just beginning.

PocketHost is the zero-config 'PocketBase in the cloud' platform. Thank you for everyone's continued support for this project.

Hook Support! 🔗

PocketHost now officially supports PocketBase JS hooks via the pb_hooks directory. This feature was soft-launched about a month ago and is stable.

Support for Deno workers has been removed in favor of pb_hooks.

PocketHost itself also moved some of its own code into pb_hooks with mixed results: database triggers worked well, but API endpoints didn't. We hit too many library and platform incompatibilities with the goja JS runtime environment. The Deno workers allowed full nodejs compatibility, but ultimately, we felt that supporting pb_hooks was going to be better for both the PocketHost and PocketBase projects.

Instances now run in Docker 🔗

PocketHost now runs your instance in a Docker container. This helps us guarantee resources for your instance as well as secure your instance from other instances. Now that your PocketBase instance has OS-level access via pb_hooks, this was a necessary security step and is good for stability too.

We expect some temporary platform instability while we iron out any new side effects introduced by this change, but long term, the PocketHost platform will be more stable and durable with this change in place.

Frontend is now SSG 🔗

We moved the entire frontend (built in SvelteKit) to SSG on Cloudflare Pages. This means near-instant load times for the PocketHost dashboard anywhere around the globe.

Piror to this change, the Mothership running in San Francisco USA was running a nodejs web server and serving the frontend. The user experience should be dramatically improved for everyone now.

This change also gives us the added benefit of CI preview URLs for all frontend updates, even in feature branches.

v1.0 Paid Tiers, Roadmap, and Discussion 🔗

Many of these updates have surrounded discussion around an eventual v1.0 and introduction of a paid tier. There is no timeline for v1.0, but it's under active discussion in the v1.0 thread on our Discord server.

Already green-lit and under active development:

  • PocketHost dashboard feature to manage user feedback, feature suggestions, and voting on features
  • New marketing site and dashboard ui/ux overhaul
  • Charts and stats for instances
  • Uptime monitoring

Other Highlights 🔗

  • Improved logging - console.log in JS hooks now appears in logs
  • Improved secrets - secrets are now passed to pocketbase executable and are available in JS hooks

Change log 🔗

  • enh: imrpoved paid users view
  • enh: local dev setup
  • enh: improve debugging mode
  • enh: downloader debugging information
  • chore: remove old cli package
  • enh: update sftp link
  • chore: add permalink to live publishing step
  • enh: Cloudflare Pages SSG publishing
  • enh: SSG
  • fix: sveltekit environment variables
  • enh: invocation indexes
  • chore: comment template environment variables
  • enh: run PocketBase in debugging mode when DEBUG=true
  • enh: gitignore update
  • fix: db migrations
  • fix: secondsThisMonth in users table
  • enh: usage tracking to JS hooks
  • enh: add docker-compose sample for better dx
  • enh: mothership backup script
  • enh: autoremove docker container at exit
  • enh: derive docker container name from instance name
  • enh: logging/debugging output
  • chore: track uid in invocations
  • chore: user record cleanup
  • chore: update env error messages
  • chore: refactor assert()
  • feat: support pb_hooks on monthership
  • chore: remove db backup constants
  • Merge branch 'master' of github.com:benallfree/pockethost
  • docs: v0.9.0 update
  • GitBook: No commit message
  • chore: remove deno worker helper lib
  • feat: remove Deno worker, add console.log capture for pb_hooks
  • feat: docker
  • chore: husky linting
  • chore: formatting fix
  • feat: potential paid users view
  • fix: dotenv holdover fix
  • fix: startup error - initialize portmanager first
  • chore: make ftpService await initialization
  • chore: optimize port allocation initialization
  • chore: env template typo fix
  • chore: doc update
  • chore: yarn lock update
  • chore: tsx update
  • chore: prettier update
  • chore: remove dotenv support
  • chore: frontend tsconfig fix
  • chore: dotenvify frontend
  • chore: add dotenv support to root
  • chore: yarn.lock update
  • chore: hoist tslib and ts versions
  • chore: node version guard
  • chore: update sqlite3
  • chore: fix env.ts typing
  • chore: upgrade svelte & sveltekit
  • docs: hosting section
  • fix: Accept all headers in options requests (#274)
  • chore: prod logging update
  • feat: pb_hooks
  • chore: prevent access to pb_data and pb_migrations while instance may be running
  • docs: pb_hooks
  • feat: Support pb_hooks directory introduced by PocketBase 0.17.0 (#272)
  • chore: move UpdaterService
  • fix: reactive instance subdomain in code sample section

Stats and Info 🔗

name value
stars 424
userCount 2636
runningInstanceCount 14
instanceCount 3560
instanceCount1Hour 82
instanceCount1Day 297
instanceCount7Day 617
instanceCount30Day 1159
invocationCount 2613110
invocationCount1Hour 606
invocationCount1Day 15068
invocationCount7Day 133707
invocationCount30Day 447101
invocationSeconds 82116629.66801019
invocationSeconds1Hour 64166.25600000002
invocationSeconds1Day 842562.3680000034
invocationSeconds7Day 5469632.9049999295
invocationSeconds30Day 18793014.398999963