61 lines
2.4 KiB
Markdown
61 lines
2.4 KiB
Markdown
# 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
|
|
```
|