2023-10-05 16:09:12 -07:00

2.7 KiB

title category description
Production Deployment development Learn how to deploy your PocketHost project for production. This guide covers building, refreshing Certbot, running tests, as well as updating and maintaining PocketBase's max semver. Dive in and get your applications running smoothly in no time.

Overview

Deploying your PocketHost project for production may seem daunting at first, especially when your focus is primarily on code creation. But fear not, this guide will get you through the necessary steps to streamline your deployment process.

Begin by setting up your project. Use git clone git@github.com:benallfree/pockethost.git command, followed by cd pockethost to enter the directory. After you have initiated your project, you need to build it, and for this, you'll leverage scripts/build.sh.

Next, take a moment to refresh Certbot with ./scripts/certbot-refresh.sh. This will help ensure your SSL certs are always up-to-date, with fullchain.pem and privkey.key keys in the docker/mount/nginx/ssl.

Then, you're ready to run the project. Launch your project using sudo scripts/pm2.sh and follow up with sudo pm2 dash to access the dashboard. At this point, navigate to https://pockethost.io to test the output.

Finally, update the max PocketBase semver to limit or lock the PocketBase versions available. All you need is to tweak the DAEMON_PB_SEMVER variable in .env. And there you have it, your PocketHost project is ready to go live!

Summary

  • sudo crontab -e
  • sudo pm2 stop all
  • sudo ./scripts/dev.sh
  • sudo ./scripts/build.sh
  • sudo ./scripts/prod.sh
  • Finalize readme
  • yarn version --patch
  • sudo ./scripts/pm2.sh
  • sudo crontab -e
  • Create new discussion in PocketHost and PocketBase

Detailed steps

1. Build

git clone git@github.com:benallfree/pockethost.git
cd pockethost
yarn
cp .env-template .env # modify as needed
scripts/build.sh

2. Refresh Certbot

./scripts/certbot-refresh.sh

Then, ensure keys named fullchain.pem and privkey.key are in docker/mount/nginx/ssl.

3. Run

sudo scripts/pm2.sh
sudo pm2 dash
sudo open https://pockethost.io

4. Test

If all goes well:

  • Update ./gitbook/releases with latest relevant fixes.
  • Create a new discussion on PocketHost forum
  • If major release, create announcement on PocketBase forum
  • Use yarn version --patch for patch release and tag with git
  • Use scripts/build.sh to rebuild everything
  • Use scripts/pm2.sh to run in prod mode

Updating the max PocketBase semver

By default, PocketHost will download and run the latest version of PocketBase. If you need to limit or lock the PocketBase versions(s) available, edit the DAEMON_PB_SEMVER variable in .env.