Renplay documentation
Kubernetes
Run Renplay on Kubernetes with two volumes.
Renplay is one stateless container plus two volumes, so it needs only a Deployment (one replica), a Service and two persistent volume claims. A Helm chart is not published yet.
Example
Section titled “Example”apiVersion: apps/v1kind: Deploymentmetadata: name: renplayspec: replicas: 1 strategy: type: Recreate selector: matchLabels: { app: renplay } template: metadata: labels: { app: renplay } spec: securityContext: runAsNonRoot: true runAsUser: 1000 runAsGroup: 1000 fsGroup: 1000 containers: - name: renplay image: ghcr.io/renplay-org/renplay:2.10.0 ports: - containerPort: 8080 readinessProbe: httpGet: { path: /api/health, port: 8080 } securityContext: readOnlyRootFilesystem: true allowPrivilegeEscalation: false volumeMounts: - { name: games, mountPath: /games } - { name: data, mountPath: /data } - { name: tmp, mountPath: /tmp } volumes: - name: games persistentVolumeClaim: { claimName: renplay-games } - name: data persistentVolumeClaim: { claimName: renplay-data } - name: tmp emptyDir: {}---apiVersion: v1kind: Servicemetadata: name: renplayspec: selector: { app: renplay } ports: - port: 8080 targetPort: 8080Create renplay-games (large; it holds every installed game) and renplay-data (small; saves and
the library) as PersistentVolumeClaims of your storage class.
- One replica. The library is a SQLite database on
/data, and builds are written to/games. Use theRecreatestrategy so two pods never share them. - Pin the image by version (and by digest if you like). A tool such as Renovate can propose new releases. See Upgrading.
- Back up
/data, for example with volume snapshots./gamescan be rebuilt from/games/_archiveswhile the archives are kept (RENPLAY_DELETE_ARCHIVES=false). - Network storage such as NFS works for
/games, but is slow with many small files; see Troubleshooting. - Ingress. Put sign-in in front of it. See Reverse proxy and HTTPS.
- Scale to zero. If a proxy stops the pod when it is idle, set
RENPLAY_KEEPALIVE_URLso it stays up during an install. See Configuration.