Silo

Silo is an OSS Kotlin/Ktor replacement for the end-of-life Gradle Remote Build Cache Node — a drop-in HTTP server that speaks the Gradle build cache protocol. Fat-jar and multi-arch Docker, Apache-2.0.

Quickstart

Run with Docker

docker run -p 8080:8080 -v silo-data:/data ghcr.io/chrisjenx/silo:latest

Run the fat jar

java -jar silo-*-all.jar          # listens on :8080, stores under /data
java -jar silo-*-all.jar --version

Point Gradle at it

In your build’s settings.gradle.kts:

buildCache {
    remote<HttpBuildCache> {
        url = uri("http://localhost:8080/cache/")
        isPush = true
        // credentials { username = "ci"; password = System.getenv("SILO_PW") }
    }
}

Then build with the cache enabled:

./gradlew build --build-cache

A cold build PUTs task outputs into Silo; a clean rebuild resolves them FROM-CACHE. Health is at /health, Prometheus metrics at /metrics, and a live stats stream at /api/stream/stats.

Documentation

Page What’s in it
Live demo The admin dashboard running on simulated data — no install
Requirements & limits Hardware sizing + OS / filesystem / Ktor guard rails
Configuration HOCON reference + every SILO_* env var
Operations Runbook: monitoring, tuning, backup/restore, audit log
TLS & reverse proxy Caddy, nginx, Traefik, AWS ALB, Cloudflare Tunnel
Design language Admin SPA design notes

Status

Pre-1.0. The Gradle build-cache protocol, filesystem store, SQLite metadata index, auth (Basic + OIDC), metrics, audit logging, and crash-recovery are implemented. See the issue tracker for what’s next.


This site uses Just the Docs, a documentation theme for Jekyll.