Upgrading
How to upgrade Inboxorcist to a new version while preserving your data.
This guide covers upgrading Inboxorcist to a new version. Your data is safe during upgrades — database files and configuration are preserved automatically.
Data is never overwritten during upgrades. Your emails database, OAuth tokens, and configuration are stored separately from the application files.
What Gets Preserved
| Data | Location | Preserved |
|---|---|---|
| Email metadata database | data/ directory | Yes |
| OAuth tokens | PostgreSQL / SQLite | Yes |
| Configuration | .env file | Yes |
| Google OAuth credentials | .env or database | Yes |
Upgrading Binary Installation
Using the Install Script (Recommended)
The install script automatically preserves your data directory and .env configuration.
# Re-run the install script - it will update the binary only
curl -fsSL https://inboxorcist.com/install.sh | bash
# Restart the application
~/.inboxorcist/inboxorcist# Re-run the install script - it will update the binary only
curl -fsSL https://inboxorcist.com/install.sh | bash
# Restart the application (or restart the service)
~/.local/share/inboxorcist/inboxorcist# Re-run the install script
irm inboxorcist.com/install.ps1 | iex
# Restart the application
& "$env:LOCALAPPDATA\Inboxorcist\inboxorcist.exe"Manual Binary Upgrade
-
Stop the running instance
# If running as a service launchctl unload ~/Library/LaunchAgents/com.inboxorcist.plist # Or find and kill the process pkill inboxorcist -
Backup your data (optional but recommended)
cp -r ~/.inboxorcist/data ~/inboxorcist-backup cp ~/.inboxorcist/.env ~/inboxorcist-backup/ -
Download the new version
cd ~/.inboxorcist # Download new binary (Apple Silicon) curl -LO https://github.com/inboxorcist/inboxorcist/releases/latest/download/inboxorcist-darwin-arm64.tar.gz # Extract (overwrites binary and public files, NOT data/) tar -xzf inboxorcist-darwin-arm64.tar.gz --strip-components=1 rm inboxorcist-darwin-arm64.tar.gz -
Start the application
./inboxorcist # Or reload the service launchctl load ~/Library/LaunchAgents/com.inboxorcist.plist
-
Stop the running instance
# If running as a service sudo systemctl stop inboxorcist # Or find and kill the process pkill inboxorcist -
Backup your data (optional but recommended)
cp -r ~/.local/share/inboxorcist/data ~/inboxorcist-backup cp ~/.local/share/inboxorcist/.env ~/inboxorcist-backup/ -
Download the new version
cd ~/.local/share/inboxorcist # Download new binary (x64) curl -LO https://github.com/inboxorcist/inboxorcist/releases/latest/download/inboxorcist-linux-x64.tar.gz # Extract (overwrites binary and public files, NOT data/) tar -xzf inboxorcist-linux-x64.tar.gz --strip-components=1 rm inboxorcist-linux-x64.tar.gz -
Start the application
./inboxorcist # Or restart the service sudo systemctl start inboxorcist
The
data/directory and.envfile are not included in the release archive, so extracting the new version won't overwrite them.
Upgrading Docker Installation
Docker volumes persist your data across container updates.
Using Pre-built Images (Recommended)
cd ~/inboxorcist # or wherever your docker-compose.yml is
# Pull the latest image
docker compose pull
# Recreate containers with new image
docker compose up -dUsing Git Repository
cd ~/inboxorcist
# Pull latest changes
git pull
# Rebuild and restart
docker compose build
docker compose up -dVerify the Upgrade
# Check container is running
docker compose ps
# Check logs for any errors
docker compose logs -f inboxorcist
# Verify version (check the startup logs)
docker compose logs inboxorcist | head -20Data Persistence
Docker volumes ensure your data survives upgrades:
| Volume | Purpose |
|---|---|
inboxorcist-data | Email metadata databases |
inboxorcist-postgres-data | PostgreSQL data (OAuth tokens, jobs) |
To verify your volumes exist:
docker volume ls | grep inboxorcistUpgrading Railway Deployment
Railway automatically deploys when you push to your connected branch.
If Deployed via Template
- Go to your Railway project dashboard
- Click on the Inboxorcist service
- Go to Settings > Source
- Click Check for Updates or Redeploy
If Deployed via GitHub
Simply push to your connected branch:
git pull origin main
git pushRailway will automatically build and deploy the new version.
Manual Redeploy
- Go to Deployments tab
- Click the ... menu on the latest deployment
- Select Redeploy
Railway's PostgreSQL database persists independently of your app deployments. Your data is safe during redeployments.
Upgrading Other Cloud Platforms
Render / Fly.io / DigitalOcean App Platform
These platforms typically auto-deploy when you push to your connected repository:
git pull origin main
git pushOr trigger a manual redeploy from their respective dashboards.
VPS with Docker
Same as Docker installation:
docker compose pull
docker compose up -dVPS with Binary
Re-run the install script:
curl -fsSL https://inboxorcist.com/install.sh | bash
sudo systemctl restart inboxorcistDatabase Migrations
Inboxorcist automatically runs database migrations on startup. No manual intervention is required.
After upgrading, check the logs to confirm migrations ran successfully:
# Docker
docker compose logs inboxorcist | grep -i migration
# Binary
# Check terminal output on startupRollback
If you need to rollback to a previous version:
Binary Rollback
cd ~/.inboxorcist
# Download specific version
curl -LO https://github.com/inboxorcist/inboxorcist/releases/download/v0.2.1/inboxorcist-darwin-arm64.tar.gz
tar -xzf inboxorcist-darwin-arm64.tar.gz --strip-components=1
./inboxorcistcd ~/.local/share/inboxorcist
# Download specific version
curl -LO https://github.com/inboxorcist/inboxorcist/releases/download/v0.2.1/inboxorcist-linux-x64.tar.gz
tar -xzf inboxorcist-linux-x64.tar.gz --strip-components=1
./inboxorcistDocker Rollback
# Edit docker-compose.yml to use specific version
# image: ghcr.io/inboxorcist/inboxorcist:v0.2.1
docker compose pull
docker compose up -dRailway Rollback
- Go to Deployments
- Find the previous working deployment
- Click ... > Rollback
Troubleshooting
App Won't Start After Upgrade
-
Check logs for errors
# Docker docker compose logs inboxorcist # Binary ./inboxorcist 2>&1 | head -50 -
Verify environment variables — New versions may require additional variables
-
Check database migrations — Look for migration errors in logs
Data Missing After Upgrade
Your data should never be lost during an upgrade. If data appears missing:
-
Verify data directory exists
ls -la data/ -
Check Docker volumes
docker volume inspect inboxorcist-data -
Restore from backup if you created one before upgrading
OAuth Stops Working
If Google OAuth breaks after upgrade:
- Verify
APP_URLis set correctly in.env - Confirm redirect URI in Google Cloud Console matches
${APP_URL}/auth/google/callback - Check that
GOOGLE_CLIENT_IDandGOOGLE_CLIENT_SECRETare still set
