Run your server

Updating

Move to a new release, check that it took, and go back if it did not.

imbox docs

Updating replaces the program and keeps your data. Your mail, contacts, Screener decisions, settings and saved credentials live in the database, and an update does not touch them.

Read the notes for a release before you update. They are in the in-app update notice, on the releases page and in the changelog.

What an update does

  • Replaced: the server code and the web app.
  • Kept: the database and /etc/imbox/imbox.env.
  • Migrated: database changes ship as numbered migrations. They run when the app starts. They only add tables and columns, so an older release still works on a newer database.

Take a backup first if the release notes mention a migration.

Loading diagram...

Update

Pick the way you installed.

Server, from your computer

cd imbox
git pull
bash deploy/deploy.sh [email protected] ~/.ssh/your-key

It builds the release, copies it to the server and switches to it. It ends with Release VERSION is live. If the new release does not answer a health check within about a minute, the previous one is put back and the last log lines are printed.

Server, from a release file

Download imbox-VERSION.tgz and SHA256SUMS from the releases page to the server, then:

sha256sum --check --ignore-missing SHA256SUMS
sudo imbox-activate imbox-VERSION.tgz VERSION

Server, from GitHub

If you set up the workflow, every push to main is tested, built and deployed. Nothing else to do.

Docker Compose

cd /path/to/imbox
docker compose pull
docker compose up -d

Then check it:

curl -s http://127.0.0.1:8787/healthz

Check which version is running

  • In the app: open About from the menu to see the version, commit and build date. When a newer release exists, the app tells you Imbox vX is available and shows the command to run. Your browser checks GitHub for this at most every six hours. You can turn it off under Settings → Preferences → Look for new versions.
  • From a terminal:
curl -s https://imbox.example.com/api/version

Go back

Releases only add to the database, so going back is safe.

Server

The five newest releases are in /opt/imbox/releases:

ls -1t /opt/imbox/releases
sudo ln -sfn /opt/imbox/releases/PREVIOUS /opt/imbox/current
sudo systemctl restart imbox
curl -s http://127.0.0.1:8787/healthz

Docker Compose

Pin the image to the version you want in docker-compose.yml, for example ghcr.io/fr3on/imbox:0.2.0, then run docker compose up -d.

If an update goes wrong

What you seeWhyWhat to do
New release did not become healthyThe new release did not start, so the old one was kept.Read the log lines it printed. They name the cause, usually a missing setting or a database problem. See Install and site access.
The old design still shows after an updateThe browser keeps a copy of the app for speed.Reload once more. On a phone app added to the home screen, close it fully and open it again.
The first page is slow after an updateOn a large mailbox, search indexes are built on first start.Wait a minute. It happens once.
The browser extension asks to reconnectIts token was revoked.Make a new one in Settings → Integrations → Browser extension.
sudo asks for a password during a deployThe deploy user may not run the activate script without one.Add the rule from Install.

For anything else, see Troubleshooting.