Skip to main content

Upgrading Cortex

Upgrading Cortex follows a different process depending on how you've installed it. If you're running in IIS or in a VM (i.e. not as a container), it's more or less just dropping the new files on top of the old ones (saving your configuration, of course). If you are using a container, simply re-run the container with the tag of the new version. Detailed steps for each scenario are below.

IIS or VM

New versions of Cortex can be downloaded from https://releases.thoughtcolony.com.

  1. Stop IIS (or the Cortex process, if run directly).
  2. Make a backup of your appsettings.json and web.config files.
  3. Delete all the files from the old version of Cortex.
  4. Extract all the files from the new version of Cortex into the same location.
  5. Restore your appsettings.json and web.config files. At present, no modifications are required to either of these files between versions.
  6. Start IIS (or restart Cortex).

Docker or other container runtime (Kubernetes, etc.)

Depending on how you launched your container, the exact steps will be different, but the key steps are changing the "tag" your runtime uses for the image it runs and restarting the container. For docker, this requires a new invocation of docker run. For docker compose, change the tag in the image setting and run docker compose up (with your desired options). For other runtimes, the process is similar -- update the tag and reapply/redeploy the service.

FAQ

How can I tell what versions are available?

  1. We send a notification email when we ship a new stable release. All releases (stable and pre-release since 1.3.2) are available as either container images or as zip files for Windows (IIS) and Linux.
  2. You can always see what versions are available at https://releases.thoughtcolony.com.

Why don't you provide a latest tag?

Nearly all available container images have a version of the image tagged latest at all times; this tag gets updated to point to the actual latest image when new ones are released. However, we don't do this for Cortex for two specific reasons:

  1. It's best practice in production environments to reference a specific version to avoid surprise breaking changes. We feel we can provide a better experience for you (and make supporting your installation more successful for both of us) by requiring you to pick a specific version and update only when you intend to update.
  2. Quite a bit changes between Cortex versions, so we don't want to introduce surprises to you without you having fair warning and opting in intentionally. That said, none of the changes we're making are earth-shattering, but doing things this way allows us the flexibility to follow the needs of our customers for each specific version and communicate these changes as needed.

However, we may at some point introduce "channels" like "insider", "stable", "oldstable" so each organization can choose the right balance between stability and access to new features that is right for them. If and when we do that, latest will likely point to stable.