Upgrading to 2.x
Upgrade an existing Pages CMS 1.x deployment to 2.x.
Upgrade checklist
- Back up the deployment. Save the current database and environment configuration before changing anything.
- Optional: Migrate to PostgreSQL. Pages CMS 2.x expects PostgreSQL for normal deployments. If you still use SQLite or legacy libSQL/Turso, migrate collaborators first: Migrating collaborators.
- Update environment variables (see below)..
- Update the GitHub App (see below).
- Run migrations. Apply the 2.x database migrations before serving traffic:
npm run db:migrate. - Clear cache. Remove old cache data once after upgrading:
npm run db:clear-cache. - Redeploy the app. Restart the app with the new code and environment.
- Verify the upgrade. Confirm GitHub sign-in, repository installation, webhook delivery, build status display, and GitHub Actions triggering if you use it.
Add environment variables
BETTER_AUTH_SECRET: A random secret for the new auth library (Better Auth).BASE_URL: This is now required.
More info: Environment variables
Clear cache after upgrading
Recommended once after upgrading to 2.x:
npm run db:clear-cache
This removes old cache data from previous versions and lets Pages CMS rebuild it with the 2.x cache logic.
Update GitHub App
More info: GitHub App
Add account permissions
| Permission | Value |
|---|---|
| Email addresses | Read only |
Add repository permissions
| Permission | Value |
|---|---|
| Actions | Read and write |
| Checks | Read only |
| Commit statuses | Read only |
Add webhook events
| Event |
|---|
| Check run |
| Check suite |
| Status |
| Workflow run |
Confirm URLs and install behavior
| Setting | Value |
|---|---|
| User authorization callback URL | <BASE_URL>/api/auth/callback/github |
| Webhook URL | <BASE_URL>/api/webhook/github |
| Setup URL | <BASE_URL>/ |
| Redirect on update | Enabled |
| Request user authorization during installation | Disabled |