Skip to main content
Cache-Pot ships a minimal Docker image based on a distroless/static base — there is no shell, no package manager, and no runtime overhead beyond the Go binary itself. Run it with a single docker run command, or compose it alongside your application, database, and other services using a standard docker-compose.yml.

Quick start

Pull the latest image and expose both the RESP2 port and the dashboard:
Cache-Pot starts immediately. Open http://localhost:8080 for the live dashboard and connect on port 6379 with any Redis client.

With persistence

By default, Cache-Pot persists data to cache-pot.snapshot in the working directory inside the container. Mount a named volume so your data survives container restarts and image updates:
With both snapshot and AOF enabled, Cache-Pot takes periodic snapshots and also writes every mutation to the append-only file. On restart it replays the AOF (which is the more up-to-date source) and compacts it automatically on graceful shutdown.
/data is the recommended volume mount path in Docker deployments. Use it consistently across snapshot, AOF, and any other file-backed options.

With authentication

Set a password using the CACHEPOT_AUTH environment variable. Any Redis client that connects must then call AUTH <password> before issuing other commands:

Docker Compose

The following docker-compose.yml brings up Cache-Pot with persistence, authentication, and semantic caching enabled. Environment variables for secrets are read from your shell or a .env file so credentials never live in the Compose file itself.
docker-compose.yml
Start it in detached mode:
Check that it is running and healthy:
The dashboard on port 8080 is unauthenticated. Do not expose it publicly without placing a reverse proxy or firewall rule in front of it. In production, bind it to 127.0.0.1 or omit the port mapping entirely and access it through a tunnel or internal network.

Environment variables reference

Every Cache-Pot option is available as a CACHEPOT_* environment variable. Each one mirrors a CLI flag of the same shape.
CACHEPOT_EMBED_URL and CACHEPOT_EMBED_KEY are only needed if you plan to use SCACHE.GET / SCACHE.SET or the MCP search tool. All other features work without an embeddings provider.