Upgrading
Upgrading
How to upgrade GridWork HQ to the latest version.
Upgrading
GridWork HQ uses semantic versioning. This page covers the upgrade process and version-specific migration steps.
General Upgrade Process
Local Setup
cd ~/agency-workspace/gridwork-hq
git pull origin main
npm install
bun run migrate # Apply database schema changes
npm run build
cd ~/agency-workspace/pipeline-server
git pull origin main
npm install
# Restart the pipeline serverVPS
# Dashboard
cd /var/www/gridwork-hq
git pull origin main
npm install
bun run migrate
npm run build
pm2 restart gridwork-hq
# Pipeline server
cd /var/www/pipeline-server
git pull origin main
npm install
sudo systemctl restart agency-pipelineVercel
Push to your main branch. Vercel auto-deploys. Then update the pipeline server on your local machine:
cd ~/agency-workspace/pipeline-server
git pull origin main
npm install
# Restart the pipeline serverWhat Is Preserved
Your configuration files are gitignored and will not be overwritten by pulls:
gridwork-hq/.env.localgridwork-hq/config/brand.jsonpipeline-server/.envpipeline-server/cron-config.json
Version-Specific Migration
v1.1 to v1.2
After pulling v1.2 updates:
- Run
bun run migrateingridwork-hq/to apply SQLite schema changes (Drizzle ORM replaces Vercel KV) - The CSS token system (
gw-*custom properties) now supports dark/light mode - Docker support added —
Dockerfileanddocker-compose.ymlare new files - WelcomeBanner onboarding flow is new — appears on first login
- SSE rate limiting is now active on the pipeline server (20 connections/min per IP)
- Cron command allowlist is now enforced — verify your shell cron commands are in the allowlist
v1.0 to v1.1
- Bearer token moved from query string to Authorization header — update any direct API calls
- All pipeline traffic now routes through HQ API proxy
- Zep Cloud integration removed — see
ADVANCED_EXTENSIONS.mdto re-add if needed NEXT_PUBLIC_PIPELINE_URLremoved — usePIPELINE_SERVER_URLinstead
Checking Your Version
Both package.json files contain the version number. They should match.
cd ~/agency-workspace/gridwork-hq && node -e "console.log(require('./package.json').version)"
cd ~/agency-workspace/pipeline-server && node -e "console.log(require('./package.json').version)"