Asciinema Server Helm chart
This repository maintains a Helm chart for the upstream
asciinema-server image. The
chart declares the application Deployment, PostgreSQL StatefulSet and claim,
Services, probes, optional Ingress, and optional S3 bucket bootstrap. CI
publishes versioned releases to the public brunner.ninja Helm repository and
promotes each main-branch release to the homelab GitOps repository.
For the homelab deployment, cluster-specific values and the Argo CD Application
are maintained in homelab-gitops/apps/asciinema.
Install
The chart expects an existing Kubernetes Secret containing the database URL, database password, Phoenix signing key, release cookie, and S3 credentials. Create it with your own secure secret-management method before installation; the chart never creates or prints secret values.
To install the current source checkout with custom values:
cp examples/values.yaml values.yaml
# Edit values.yaml for your hostname, SMTP relay, and S3-compatible endpoint.
./install.sh
To install a published version:
helm repo add brunner.ninja https://brunner.ninja/charts
helm repo update brunner.ninja
helm upgrade --install asciinema brunner.ninja/asciinema \
--namespace asciinema --create-namespace \
--values values.yaml --wait --timeout 10m
The example enables Ingress and uses example hostnames. Set your own values for
config.urlHost, config.s3.endpoint, and the SMTP fields. If using S3, the
bucket must already exist unless bucketBootstrap.enabled is explicitly
enabled. PostgreSQL uses a persistent volume claim; set
postgresql.persistence.storageClass and its size as appropriate for your
cluster. Set postgresql.enabled: false when supplying an external PostgreSQL
service; configure the application Secret's database-url for that service.
Chart releases
The upstream image uses a date tag, currently 20260626. The chart maps it
to SemVer tag v2026.6.26, which publishes chart 2026.6.26. Later chart
commits append the git describe --tags --long count and hash.
Chart.yaml.appVersion remains the exact upstream image tag. The workflow
requires PACKAGE_USERNAME,
PACKAGE_TOKEN, and GITOPS_TOKEN repository secrets; it does not access
Kubernetes.
Validate locally
./test.sh