pockethost/docs/production.md
2023-10-11 04:59:28 -07:00

65 lines
1.6 KiB
Markdown

---
title: Production Deployment
category: development
description: 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.
---
## 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**
```bash
git clone git@github.com:benallfree/pockethost.git
cd pockethost
yarn
cp .env-template .env # modify as needed
scripts/build.sh
```
**2. Refresh Certbot**
```bash
./scripts/certbot-refresh.sh
```
Then, ensure keys named `fullchain.pem` and `privkey.key` are in `docker/mount/nginx/ssl`.
**3. Run**
```bash
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`.