{"owner":"JuliusBrussee","repo":"caveman","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"deploy/docker-compose.yml","servicesCount":2,"services":[{"name":"caveman-proxy","image":"ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","build":"..","restart":"unless-stopped","ports":["8787:8787"],"environment":["CAVEMAN_AUTH_TOKEN=${CAVEMAN_AUTH_TOKEN:?required - put it in deploy/.env, generate with \"openssl rand -hex 32\"}"],"volumes":["caveman-data:/data"],"depends_on":["postgres"]},{"name":"postgres","image":"postgres:17-alpine@sha256:b0f9560a2de083e2cc7382e75f808c7381a32852a7ec49117deedb300e552b24","restart":"unless-stopped","environment":["POSTGRES_USER=caveman","POSTGRES_DB=caveman","POSTGRES_PASSWORD=${CAVEMAN_POSTGRES_PASSWORD:-}"],"volumes":["caveman-postgres:/var/lib/postgresql/data"]}],"exposedPorts":["8787"],"dockerRunCommand":"docker run -d --name caveman -p 8787:8787 --restart always ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","podmanRunCommand":"podman run -d --name caveman -p 8787:8787 --restart always ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","skopeoInspectCommand":"skopeo inspect docker://ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","orasPullCommand":"oras pull ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","registryMeta":{"provider":"ghcr","image":"ghcr.io/juliusbrussee/caveman-proxy","canonicalImage":"ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","latestTag":"sha256-02b69a5e21fc44a8bd44543ce6a11a6ce3cfdd6dcc456196326d689d64538cd7","multiArch":["linux/amd64","linux/arm64"],"lastUpdated":"2026-10-23T01:25:18.828Z","cliCommands":{"dockerRun":"docker run -d --name caveman -p 8787:8787 --restart always ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","dockerPull":"docker pull ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","podmanRun":"podman run -d --name caveman -p 8787:8787 --restart always ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","skopeoInspect":"skopeo inspect docker://ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","orasPull":"oras pull ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb","composeYaml":"services:\n  caveman:\n    image: ghcr.io/juliusbrussee/caveman-proxy:bin-v2.1.0@sha256:da293df3c6929c7b31eba580f7af74da0448e83a55a973cca86e81041877d0bb\n    restart: unless-stopped\n    ports:\n      - \"8787:8787\""}}}