blumeops/docs/reference/services/zot.md
Erich Blume 7983677da2 Fix wiki-links to use filename-based resolution
Quartz's "shortest" path mode resolves wiki-links by filename, not
frontmatter title. This fixes the broken links from the previous
title-based approach.

Changes:
- Rename zk duplicate files with -log suffix to avoid conflicts
- Rename reference/storage/postgresql.md to postgresql-storage.md
- Convert all wiki-links from [[Title]] to [[filename|Title]] format
- Rename doc-card-titles task to doc-filenames (checks filename uniqueness)
- Update pre-commit hook for renamed task

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-03 15:27:23 -08:00

42 lines
1 KiB
Markdown

---
title: Zot
tags:
- service
- registry
---
# Zot
OCI-native container registry providing pull-through cache and private image storage.
## Quick Reference
| Property | Value |
|----------|-------|
| **URL** | https://registry.ops.eblu.me |
| **Local Port** | 5050 |
| **Data** | `~/zot` |
| **Config** | `~/.config/zot/config.json` |
| **LaunchAgent** | mcquack |
## Namespace Convention
| Path | Source |
|------|--------|
| `registry.ops.eblu.me/docker.io/*` | Cached from Docker Hub |
| `registry.ops.eblu.me/ghcr.io/*` | Cached from GHCR |
| `registry.ops.eblu.me/quay.io/*` | Cached from Quay |
| `registry.ops.eblu.me/blumeops/*` | Private images |
## Pull-Through Cache
When [[cluster|minikube]] pulls an image, containerd checks zot first. If cached, returns immediately. If not, zot fetches from upstream, caches it, then returns.
## Security Model
Network access only (no authentication). Defense is the Tailscale ACL boundary.
## Related
- [[forgejo|Forgejo]] - Container build CI
- [[cluster|Cluster]] - Registry consumer