Updating

Your data, settings and .env  file are never touched by an update.

One click from the dashboard

Sign in as an administrator and open Account settings → Updates. Tidemark asks GitHub for the latest release (refreshing the daily check) and, if it is newer than the version you are running, shows its release notes and a Download and install button.

Tidemark then:

  1. Downloads the release zip from the project's GitHub releases.
  2. Verifies its SHA-256 checksum against the checksum published with the release. A mismatch discards the download.
  3. Checks that the zip really is a Tidemark release and that its version matches what GitHub announced.
  4. Backs up the current code to storage/app/updates/backups/  (the last three backups are kept).
  5. Replaces the application files and removes obsolete code files the new release no longer has.
  6. Runs the database migrations on the next request, with the new code.

When it finishes, choose Reload to use the new version.

Note:

Tidemark looks for new releases daily from a scheduled task, and every few hours while an administrator is using the app, so it works without cron. It contacts api.github.com , asks only for the latest version number, and sends nothing about your sites or visitors. When a newer release exists, a dot appears on your profile menu, next to Account settings and next to Updates once you're there. Turn the daily check off with TIDEMARK_UPDATE_CHECK=false ; the Updates page still checks when you open it. To follow a fork, set TIDEMARK_UPDATE_REPO .

Upload a release zip

No internet access from your host, or want to review a build first? On the same page choose a tidemark-x.y.z.zip  file. It is sent in small pieces, so low PHP upload limits don't matter. Tidemark validates it and then installs it exactly as above. A zip that isn't newer than the installed version needs Install anyway.

In-app updates need PHP's zip  extension and a project folder that PHP can write to.

Over FTP

If the dashboard can't write to the folder, upload the new release over the old files as usual (keep .env , storage/  and any SQLite file). The next request, from any visitor or tracked page, notices the new VERSION  file and runs the migrations once. Open the dashboard to confirm.

Which version am I running?

The installed version is shown under Account settings → Updates.

Rolling back

Restore the backup from storage/app/updates/backups/ : unzip it over the project folder. Migrations are not reversed automatically, so for a major jump take a database backup first.

Tip:

Updates from before the in-app updater existed (0.8.x and earlier) have to be installed by hand once. From 0.9.0 on, Tidemark can update itself.