⭐ If you find Zipline useful, please consider giving it a star on Github! ⭐
Guides

Releases

Information about Zipline releases and how to update

Zipline is currently being maintained by me (@diced) and only me. New releases can come out frequently or take a while depending on my schedule. If a new minor/patch release (4.x.x) is not out, you can build from source or use the trunk tag on docker for the latest commit version.

latest

Updated every once in a while, the most frequent updates will be under 4.x.[number] where [number] increments. These may come out every few weeks or so. This is the most stable version of Zipline and is recommended for production use.

Just pull the latest image:

docker pull ghcr.io/diced/zipline:latest

Follow the source update steps, selecting the latest stable tag from GitHub Releases.

trunk

Update every time a commit is pushed to the trunk branch. This is the least stable version of Zipline and is not recommended for production use, but is useful if a bug is fixed in the latest commit and you want to use it right away without waiting for the next release.

Just pull the latest image:

docker pull ghcr.io/diced/zipline:trunk

Then switch to the trunk tag in your docker-compose file:

image: ghcr.io/diced/zipline:trunk

Stop Zipline, update the trunk branch, and rebuild:

git fetch origin
git switch trunk
git pull --ff-only origin trunk
pnpm install
pnpm build
pnpm start

Upgrading to 4.8

Zipline 4.8 replaces Prisma with Drizzle ORM. On its first start, 4.8 adopts your existing database: it checks that the Prisma migration history is complete, then records the Drizzle baseline and applies the new migrations.

Upgrade to 4.7.0 first if you are running an older version. 4.8 refuses to adopt a database whose Prisma history stops before the 20260806081144_remove_version_api migration, which was added in 4.7.0, and exits with:

cannot safely migrate from prisma to drizzle: expected migration 20260806081144_remove_version_api was not applied

If startup reports a failed or unexpected migration instead, resolve it using 4.7.0 before retrying. Do not delete migration history or manually mark migrations as applied to bypass the check.

If you are on 4.6.x or older, run 4.7.0 once so it applies the remaining Prisma migrations:

Switch to the 4.7.0 tag in your docker-compose file and start Zipline:

image: ghcr.io/diced/zipline:4.7.0

Stop Zipline, switch to v4.7.0, and rebuild. Start it once to apply the remaining Prisma migrations:

git fetch --tags origin
git switch --detach v4.7.0
pnpm install
pnpm build
pnpm start

Back up your PostgreSQL database before starting 4.8. Nothing is dropped during adoption (the _prisma_migrations table is kept), but the Drizzle migrations that follow do change the schema. This transition only runs once and cannot be reverted by downgrading.

Finally switch to 4.8 and start Zipline, using the source update steps for a manual installation. Your database configuration does not change: both DATABASE_URL and the individual DATABASE_* variables keep working.

Upgrading a PGlite database

If you're affected by the PGlite compatibility bug introduced in 4.8.1, see Upgrading PGlite for the temporary workaround.

Pinning to a specific version

If you want to pin to a specific version or commit for stability reasons, you can do so by using the specific tag for that version or any commit hash.

For example, if you wanted to pin to version 4.3.2, you can use the 4.3.2 tag:

docker pull ghcr.io/diced/zipline:4.3.2

Or if you wanted to pin to a specific commit, you can use the commit hash as the tag:

Note that it must be the short version of the commit hash, which is the first 7 characters of the full commit hash. You can find this in the commit history on GitHub.

docker pull ghcr.io/diced/zipline:abc1234