# Asciinema Server Helm chart This repository maintains a Helm chart for the upstream [`asciinema-server`](https://github.com/asciinema/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`](https://code.brunner.ninja/feedc0de/homelab-gitops/src/branch/main/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: ```sh 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: ```sh 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 ```sh ./test.sh ```