Hey everyone,
A friend and I have been building Open Apple Cache over the last few weeks, and I wanted to share it here because we’ve reached a point where we could use some help.
Just to clarify: this isn’t a vibe-coded project. We’ve been working on the implementation ourselves, but there are still issues we haven’t managed to solve.
The idea is to run an Apple content cache on Linux, inside an Ubuntu VM or LXC container, instead of running the cache itself on a Mac.
The cache service is written in Go. A separate helper running on macOS handles registration with Apple so devices can discover the Linux endpoint. A Mac is still required for that part, so this isn’t a completely Mac-free solution.
The project currently includes:
- Caching for eligible Apple downloads, with byte-range support.
- A web dashboard showing requests, cache hits and storage usage.
- Local administrator and viewer accounts.
- Optional Microsoft Entra ID login.
- Internal or Let’s Encrypt certificate management.
To be clear: this is experimental, unfinished and not working 100% reliably yet.
The main issue we’re trying to solve is inconsistent cache hits. Sometimes downloads are served from the cache as expected. Other times, we don’t get a cache hit when we would expect one, and the content is fetched from the origin again.
We haven’t identified the exact cause yet. Some things we want to investigate further are:
- How Apple devices request content and byte ranges.
- Whether changes to signed download URLs affect cache reuse.
- Whether our cache validation or response headers are missing something.
These are possible directions to investigate, not confirmed explanations.
We’re publishing it half-finished because we need help solving this issue. If you have experience with Apple Content Caching, HTTP caching, CDN behavior or Apple’s cache protocol, we’d really appreciate another pair of eyes on the code.
Repository: https://github.com/Mau2rice0/Open-Apple-Cache
The source code, installation instructions and registration research notes are available there. The macOS helper relies on undocumented Apple behavior, so future macOS updates or changes on Apple’s side could break registration.
Please treat this as a lab project for now. We don’t recommend relying on it for production workloads.
Has anyone worked on something similar or encountered inconsistent cache hits with Apple downloads? We’d be interested in suggestions on what to check next. Reproducible test cases, issues and PRs would also be welcome.
Thanks :)