MCPcopy
hub / github.com/spegel-org/spegel

github.com/spegel-org/spegel @v0.7.3 sqlite

repository ↗ · DeepWiki ↗ · release v0.7.3 ↗
431 symbols 1,889 edges 74 files 77 documented · 18%
README
<h1>Spegel</h1>
<img src="https://raw.githubusercontent.com/spegel-org/website/main/static/images/logo-transparent.svg" width="150px" alt="spegel logo"/>

Spegel, mirror in Swedish, is a stateless cluster local OCI registry mirror.

Note: Spegel is a project with an evolving API and no guaranteed support. Assistance is provided on a best-effort basis by the developers. We focus on the home lab and individual contributor use case.


Features

Spegel is for you if you are looking to do any of the following.

  • Locally cache images from external registries with no explicit configuration.
  • Avoid cluster failure during external registry downtime.
  • Improve image pull speed and pod startup time by pulling images from the local cache first.
  • Avoid rate-limiting when pulling images from external registries (e.g. Docker Hub).
  • Decrease egressing traffic outside of the clusters network.
  • Increase image pull efficiency in edge node deployments.

Getting Started

Read the getting started guide to deploy Spegel.

Contributing

Read contribution guidelines for instructions on how to build and test Spegel.

Acknowledgements

Spegel was initially developed at Xenit AB.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Extension points exported contracts — how you extend this code

Bootstrapper (Interface)
Bootstrapper resolves peers to bootstrap with for the P2P router. [3 implementers]
pkg/routing/bootstrap.go
ResponseError (Interface)
(no doc) [3 implementers]
pkg/httpx/error.go
Filter (Interface)
(no doc) [2 implementers]
pkg/oci/filter.go
DelayFunc (FuncType)
(no doc)
internal/resilient/retry.go
Option (FuncType)
(no doc)
internal/option/option.go
Router (Interface)
Router implements the discovery of content. [2 implementers]
pkg/routing/routing.go
ResponseWriter (Interface)
(no doc) [1 implementers]
pkg/httpx/response.go
Store (Interface)
(no doc) [2 implementers]
pkg/oci/oci.go

Core symbols most depended-on inside this repo

String
called by 74
pkg/httpx/range.go
Run
called by 52
pkg/routing/bootstrap.go
Get
called by 37
pkg/routing/bootstrap.go
Error
called by 31
pkg/httpx/response.go
String
called by 30
pkg/oci/reference.go
WriteError
called by 28
pkg/httpx/response.go
To
called by 28
internal/ptr/ptr.go
Handle
called by 25
pkg/httpx/mux.go

Shape

Function 213
Method 137
Struct 67
Interface 6
FuncType 5
TypeAlias 3

Languages

Go100%

Modules by API surface

pkg/routing/p2p.go24 symbols
pkg/registry/registry.go22 symbols
pkg/oci/containerd.go22 symbols
pkg/httpx/response.go21 symbols
pkg/oci/client.go19 symbols
pkg/routing/bootstrap.go17 symbols
main.go16 symbols
pkg/web/web.go15 symbols
test/integration/kubernetes/kubernetes_test.go14 symbols
pkg/routing/iterator.go14 symbols
pkg/oci/oci.go12 symbols
pkg/oci/distribution.go12 symbols

Used by 1 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

al.essio.dev/pkg/shellescapev1.5.1 · 1×
cuelabs.dev/go/oci/ociregistryv0.0.0-2025053008012 · 1×
cyphar.com/go-pathrsv0.2.1 · 1×
dario.cat/mergov1.0.2 · 1×
filippo.io/bigmodv0.1.1-0.20260103110 · 1×
filippo.io/keygenv0.0.0-2026011415190 · 1×
github.com/Azure/go-ansitermv0.0.0-2025010203350 · 1×
github.com/HdrHistogram/hdrhistogram-gov1.2.0 · 1×
github.com/MakeNowJust/heredocv1.0.0 · 1×
github.com/Masterminds/goutilsv1.1.1 · 1×
github.com/Masterminds/semver/v3v3.4.0 · 1×

For agents

$ claude mcp add spegel \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact