Updating

How to update Tidemark Billing in Docker or from a new release zip, and what to check afterwards.

Updating means replacing the application code with a newer version and applying any database changes (migrations). The steps differ between Docker and the release zip.

Take a backup before you start, and read CHANGELOG.md for the version you are moving to.

Docker#

The container applies migrations itself every time it starts, once the installation exists.

  1. Pull the newer image: docker compose pull.
  2. Recreate the container: docker compose up -d.
  3. Open Settings → System and check Version.

Your data stays in the billing-data volume, so it survives the container being replaced. If you pinned a version tag such as 0.1.0 in your compose file, change the tag first.

The start-up script runs php artisan migrate --force and carries on even if that command fails. If something looks wrong after an update, run docker compose logs billing and look for migration errors.

Release zip on shared hosting#

Nothing in the app runs core migrations for you after a zip upgrade, so you run them once.

  1. Download the new tidemark-billing-x.y.z.zip and unzip it on your computer.

  2. Upload its files over your installation, replacing the existing files.

  3. Keep these from your old installation, and do not overwrite them:

    • .env
    • the storage/ folder
    • database/database.sqlite, if you use SQLite
    • any plugin folders you added to plugins/ yourself
  4. Run the migrations from the application folder:

    php artisan migrate --force
    

The zip contains no .env, no storage/app/installed marker and no SQLite database, so those are never overwritten by an upload. Check that your upload tool did not delete them.

Plugins after an update#

The bundled plugins live in the plugins/ folder and are replaced with the new release. If a plugin's files are newer than its recorded version, Plugins shows an Apply update button, which runs the plugin's new migrations. If a plugin migration fails, it is undone and the old plugin files are put back.

Plugins you installed by upload go to plugins/ too, unless BILLING_EXTRA_PLUGINS_PATH is set. In Docker that is /data/plugins, which is part of the volume.

After updating#

  • Check Settings → System for the new version number.
  • Open an invoice and download its PDF.
  • Run Run billing tasks now on the same page if you want to confirm the billing run still works.
Was this article helpful?
Last updated 10 Nov 2026
Powered by Tidemark Billing