pgtapes
pgtapes builds the PostgreSQL container image that
tapes runs on: a
CloudNativePG base image with
pg_duckdb and
pgvector built in.
The published image:
public.ecr.aws/g4e5l3z3/papercomputeco/postgres:17.7-pgduckdb-1.1.1Built for linux/amd64 and linux/arm64. The registry also carries older
tags you should not use — see Image tags.
Why this image exists
Section titled “Why this image exists”Tapes is a session-capture server. It stores captured agent sessions in
PostgreSQL and uses pgvector for semantic search over span embeddings, so it
needs a PostgreSQL image with that extension present and loadable rather than
a stock one. pg_duckdb is preloaded alongside it to give an analytical query
path over the same data.
Because the base is a CloudNativePG image, one build serves both deployment
shapes: docker run (or Compose) for a local stack, and the CloudNativePG
operator in Kubernetes, without being rebuilt. The two paths configure
themselves differently — that split is the main thing worth understanding
about this image, and Run the image walks both.
This repository contains no server code and no database schema. It is a
Dockerfile, an init script, and a build module; the tapes server owns its own
migrations. To run tapes itself, see
https://tapes.dev/docs/installation/ — tapes local up provisions this
published image for a local stack.
Where to go
Section titled “Where to go”- Run the image —
docker runand CloudNativePG, and what each path does and does not configure for you. - What is in the image — base, extension versions, and the mechanisms the build adds.
- Image tags — the tag scheme, and which tags on the registry to avoid.
- Build and publish — building the image from this repository.