โโโโโโโโโโโโโโ โโโโโโโ
โโโโโโโโโโโโโโ โโโโโโโโโ
โโโโโโโโโโโโโโ โโโ โโโ
โโโโโโโโโโโโโโ โโโ โโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโ โโโโโโโ
Cache where you keep your grain.
๐ Documentation: https://chrisjenx.github.io/silo/
Silo is a self-hosted HTTP server that speaks the Gradle build cache protocol. It is a drop-in replacement for the now-EOL Gradle Remote Build Cache Node. Written in Kotlin on Ktor. Ships as a fat jar or a multi-arch Docker image. Apache-2.0. Free forever.
Gradle Inc. has deprecated the free standalone Build Cache Node in favor of the paid Develocity product. Teams who want a self-hostable, no-account-required, no-license-fee build cache had no maintained option. Silo fills that gap.
- One binary. One volume. One port.
- No phone-home. No telemetry. No accounts.
- Atomic writes โ
kill -9mid-PUT cannot corrupt the cache. - LRU + TTL + size + entry-count caps, all enforced together.
- Self-healing against out-of-band deletes.
- Prometheus metrics + retro-terminal admin dashboard.
- Full Gradle HTTP build cache protocol (
GET,PUT,HEAD) - Pluggable storage โ filesystem in v0.1; S3 and GCS planned for v0.2
- HTTP Basic auth with read-only and read-write user split
- LRU eviction with TTL, byte-cap, entry-cap, and reserved-free-space thresholds
- Prometheus
/metrics, JSON-structured logs,/healthand/ready - Retro-terminal admin SPA (Kobweb) โ phosphor green, amber CRT, or paper-tape themes
- Atomic content-addressed writes with SQLite (WAL) metadata index
- Multi-arch Docker (linux/amd64, linux/arm64) and a single fat jar
- JVM 21+ โ virtual threads, modern Ktor, no native image required
docker run -d --name silo \
-p 8080:8080 \
-v silo-data:/data \
ghcr.io/chrisjenx/silo:latestcurl -L https://github.com/chrisjenx/silo/releases/latest/download/silo.jar -o silo.jar
java -jar silo.jarSee examples/docker-compose.yml. Includes a named volume,
env-var auth, and a sidecar Caddy reverse proxy for HTTPS.
In your project's settings.gradle.kts:
buildCache {
remote<HttpBuildCache> {
url = uri("http://localhost:8080/cache/") // trailing slash is required
push = true
credentials {
username = "ci-writer"
password = System.getenv("SILO_CACHE_PASSWORD")
}
}
}See examples/gradle-settings-snippet.kts for the full snippet.
Silo ships a single-page admin dashboard at /admin. The design language is intentionally
terminal โ phosphor green on black, ASCII box-drawing, Unicode block sparklines, no
chart libraries. See docs/design.md for the full spec.
โถ Try the live demo โ the real admin UI running on simulated data, right in your browser. No install, no backend.
Silo is configured via HOCON (application.conf) with environment-variable overrides.
| Env var | HOCON key | Default | Purpose |
|---|---|---|---|
SILO_PORT |
silo.server.port |
8080 |
HTTP listen port |
SILO_STORAGE_ROOT |
silo.storage.root |
/data |
Data directory |
SILO_MAX_BYTES |
silo.storage.max-bytes |
107374182400 (100 GiB) |
Total cache size cap |
SILO_MAX_ENTRIES |
silo.storage.max-entries |
1000000 |
Total entry cap |
SILO_MAX_ENTRY_BYTES |
silo.storage.max-entry-bytes |
2147483648 (2 GiB) |
Per-entry cap |
SILO_MAX_AGE_DAYS |
silo.eviction.max-age-days |
30 |
TTL for untouched entries |
SILO_USERS_FILE |
silo.auth.users-file |
(unset) | bcrypt user list |
SILO_ANONYMOUS_READ |
silo.auth.anonymous-read |
true |
Allow unauthenticated GET/HEAD |
Full reference: docs/configuration.md. Hardware, requirements, and limits: docs/limits.md.
The full docs site is published at https://chrisjenx.github.io/silo/.
- Live dashboard demo โ the admin UI on simulated data, no install
- Configuration reference โ every HOCON key and env override
- Requirements & limits โ hardware sizing, caps, FS,
ulimit, NFS - Reverse proxy & TLS โ termination at a proxy, inline TLS opt-in
- Operations runbook โ backup, restore, recovery
- Design language โ the retro-terminal admin UI spec
| Feature | Silo v0.1 | Develocity Build Cache Node |
|---|---|---|
| License | Apache-2.0 | Commercial |
| Cost | Free | Per-seat |
| Self-host | Yes | Yes |
| Phone-home telemetry | No | Yes |
| Storage backends | Filesystem | Filesystem, S3 |
| Admin UI | Retro terminal | Standard |
| Atomic writes | Yes | Yes |
| TTL eviction | Yes | Yes |
| Multi-arch Docker | linux/amd64, linux/arm64 | linux/amd64 |
| Replication | Planned (v0.3+) | Yes |
| Resource footprint | ~150 MB RAM idle | ~1 GB+ |
Not affiliated with or endorsed by Gradle Inc. or Gradle Build Toolยฎ.
Alpha. The v0.1 walking-skeleton is complete and released (latest
v0.1.x); work continues on
v0.2 hardening (S3/GCS
backends, compression, replication).
./gradlew :server:shadowJar
java -jar modules/server/build/libs/silo-*-all.jarSee CONTRIBUTING.md. Good first issues are labelled
good-first-issue.
See SECURITY.md for the vulnerability disclosure policy.
Apache-2.0 โ see LICENSE.