FreeBSD pkg cache
| Description / name | Input element |
|---|---|
| Container Registry | |
| Container Configuration Root Path | |
| Timezone | |
| FreeBSD pkg cache Host Port | |
| FreeBSD pkg cache /config Path | |
| FreeBSD pkg cache /cache Path |
nginx caching proxy for pkg.FreeBSD.org — speeds up FreeBSD package fetches across image builds and insulates them from upstream rate limits/outages.
| Port | 80 |
| Registry | ghcr.io/daemonless/pkg-cache |
| Daemonless | daemonless/pkg-cache |
| Source | daemonless/pkg-cache |
| Website | daemonless.io/guides/freebsd-pkg-cache |
Version Tags
| Tag | Description | Best For |
|---|---|---|
latest |
Upstream Binary. Built from official release. | Most users. Matches Linux Docker behavior. |
Root Privileges Required
Podman on FreeBSD currently requires root. All commands must be run as root (or via doas/sudo).
Before deploying, ensure your host environment is ready. See the Quick Start Guide for host setup instructions.
Deployment
Access at: http://localhost:80
Interactive Configuration
Parameters
Environment Variables
| Variable | Default | Description |
|---|---|---|
TZ |
UTC |
Timezone for the container |
PKG_UPSTREAM |
pkg.FreeBSD.org |
FreeBSD pkg mirror to proxy, e.g. pkg1.us.freebsd.org or pkg0.eu.freebsd.org. Defaults to the primary pkg.FreeBSD.org. |
PKG_CACHE_SIZE |
10g |
Max on-disk cache size (nginx max_size), e.g. 50g, 100g, 500g. Keep the /cache volume at least this big. |
ENABLE_STATS |
false |
Set to true to enable the GoAccess real-time stats dashboard on port 7890. |
Volumes
| Path | Description |
|---|---|
/config |
Config and logs storage (nginx.conf, log/, stats/). |
/cache |
Package cache storage (proxy_cache). Size to match max_size in nginx.conf (default 10G). |
/etc/resolv.conf |
Ports
| Port | Protocol | Description |
|---|---|---|
80 |
TCP | HTTP — pkg clients point their FreeBSD.conf url here |
7890 |
TCP | GoAccess stats dashboard (HTML) — enabled via ENABLE_STATS=true |
Pointing clients at the cache
On a build host (or any FreeBSD box), drop in
/usr/local/etc/pkg/repos/FreeBSD.conf:
Then pkg update fetches through the cache — first pull is a MISS,
everything after is a HIT, and package signatures still verify end-to-end.
Size the /cache volume to at least PKG_CACHE_SIZE (default 10G).
Implementation Details
- Architectures: amd64
- User:
bsd(UID/GID set via PUID/PGID). Defaults to1000:1000. - Base: Built on
ghcr.io/daemonless/base(FreeBSD 15.1).
Need help? Join our Discord community.