Skip to main content

How to Update GeoPulse

This guide covers updating GeoPulse to the latest version for both Docker Compose and Kubernetes/Helm deployments.

tip

Always check the GitHub Releases for release notes and breaking changes before updating.

Docker Compose Deployments

Step 1: Update Version in .env File

Edit your .env file and update the GEOPULSE_VERSION variable to the desired version:

GEOPULSE_VERSION=1.9.0

Step 2: Pull Images and Restart Services

You can use the following script to update the backend and frontend services:

#!/bin/bash
set -e

COMPOSE_FILE="docker-compose.yml"
SERVICES="geopulse-backend geopulse-ui"

echo "📥 Pulling latest images for $SERVICES..."
docker compose -f "$COMPOSE_FILE" pull $SERVICES

echo "🛑 Stopping and removing containers for $SERVICES..."
docker compose -f "$COMPOSE_FILE" rm -fsv $SERVICES

echo "🚀 Starting $SERVICES..."
docker compose -f "$COMPOSE_FILE" up -d $SERVICES

echo "✅ Backend and frontend redeployed successfully!"

Save this script as update-geopulse.sh, make it executable with chmod +x update-geopulse.sh, and run it:

./update-geopulse.sh

Database Migrations

Database migrations are handled automatically when the backend starts up. You don't need to run any manual migration commands.

Kubernetes/Helm Deployments

Step 1: Update Chart Values

Update your values.yaml file or chart repository to point to the new version:

image:
tag: "1.9.0" # Update to the desired version

Step 2: Upgrade with Helm

Run the Helm upgrade command to deploy the new version:

helm upgrade geopulse ./helm/geopulse -f your-values.yaml

If you're using a remote chart repository:

helm repo update
helm upgrade geopulse geopulse/geopulse -f your-values.yaml

Step 3: Verify Deployment

Check that the pods are running with the new version:

kubectl get pods -l app=geopulse
kubectl describe pod <pod-name>

Database migrations are handled automatically by the backend on startup.

Rollback Procedures

Docker Compose Rollback

If you need to rollback to a previous version:

  1. Update the GEOPULSE_VERSION in your .env file to the previous version
  2. Run the update script again to deploy the older version

Kubernetes/Helm Rollback

Use Helm's built-in rollback functionality:

# List release history
helm history geopulse

# Rollback to previous revision
helm rollback geopulse

# Rollback to specific revision
helm rollback geopulse <revision-number>

Version Compatibility

GeoPulse follows semantic versioning. When updating:

  • Patch versions (e.g., 1.9.0 → 1.9.1): Bug fixes, safe to update
  • Minor versions (e.g., 1.9.0 → 1.10.0): New features, backward compatible
  • Major versions (e.g., 1.9.0 → 2.0.0): Breaking changes, review release notes carefully

Always review the release notes on GitHub Releases before updating, especially for major and minor version changes.