tubearchivist-redis
Redis cache backend paired with the tubearchivist main
service. Uses the redis/redis-stack-server
OCI image. The image reference is digest-pinned per ADR-0005.
| Attribute | Value |
|---|---|
| Runtime | OCI (Podman) |
| Port | 6379 (internal — accessed by tubearchivist via localhost) |
| Idle timeout | 43200 s (12 h) |
| OCI image | redis/redis-stack-server |
The blueprint declares no environment defaults beyond what the upstream image ships.
Consumer must provide: volume mount for /data (persistent Redis state on disk).
Current Recommended Pin
The blueprint pins recommended.main to the following digest-pinned image reference (verified
against merlin production 2026-05-17):
7.4.0-v8@sha256:39adcbb083b240642cd5738a75c4959c0393ef2a40fa545f2e1c7b55798eeda4
Redis is a stateless cache from the TubeArchivist perspective — the on-disk state can be
rebuilt by re-running ingestion. Bumps track the upstream redis-stack-server compose; minor
bumps are typically safe without sandbox validation, but major bumps should be sandbox-checked
per the upgrade-sandbox runbook
(docs/runbooks/upgrade-sandbox.md).
Usage
The canonical consumer pattern calls mk {} and merges host-specific identity and volume via
lib.recursiveUpdate:
nixda.zones.private.services.tubearchivist-redis = lib.recursiveUpdate
((blueprint "tubearchivist-redis").mk {})
{
id = 12;
runtime.oci.volumes = [
"/var/lib/tubearchivist-redis/data:/data"
];
};
To opt into the recommended pin explicitly:
nixda.zones.private.services.tubearchivist-redis = lib.recursiveUpdate
((blueprint "tubearchivist-redis").mk {
versions = (blueprint "tubearchivist-redis").recommended;
})
{
id = 12;
runtime.oci.volumes = [
"/var/lib/tubearchivist-redis/data:/data"
];
};
Pinning to a Different Tag
nixda.zones.private.services.tubearchivist-redis = lib.recursiveUpdate
((blueprint "tubearchivist-redis").mk {
versions = {
main = "<new-tag>@sha256:<64-lowercase-hex-chars>";
};
})
{
id = 12;
runtime.oci.volumes = [
"/var/lib/tubearchivist-redis/data:/data"
];
};