Ctrl K
ComunidadGuías…

llms.txt

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# cairn

> Guest-first, multilingual directory page for self-hosted services. One Go
> binary (FROM scratch, ~10 MB, 4.3 MB to pull) renders YAML config into a
> server-side page with live Gatus status pills, search, light/dark, and
> hosted legal pages. No database, no tracking, no runtime dependencies.

Key facts: config lives in `/config/*.yaml` (site.yaml for the site, any
other yaml lists services), reloads live within ~2 s, config errors name the
file and line, unknown keys are errors. Everything user-visible is
translatable per-locale inline. Image: ghcr.io/morgankryze/cairn
(latest/stable = releases, unstable = main). Live instance:
https://cairn.libresoftware.cloud

## Docs

- [Getting started](docs/getting-started.md): zero to a served page in five minutes
- [Upgrading](docs/upgrading.md): the dry run before you switch, and every config shape a version has started refusing, each with its verbatim error and its fix
- [Services](docs/configuration/services.md): the cards; every key with defaults
- [Site](docs/configuration/site.md): title, welcome note, header links, hosted legal pages, footer, credit
- [Writing text](docs/configuration/text.md): the long fields take CommonMark plus GFM, minus raw HTML, with a link-scheme allow-list and whole-block images as figures
- [Theming](docs/configuration/theming.md): accent, light/dark toggle, custom.css variables
- [Languages](docs/configuration/i18n.md): locale negotiation, translatable fields, UI strings
- [Docker Compose](docs/deployment/docker-compose.md): hardened reference setup and image tags
- [Podman](docs/deployment/podman.md): the same container as a rootless systemd quadlet
- [Bare binary](docs/deployment/binary.md): no container, flags and a hardened systemd unit
- [Kubernetes](docs/deployment/kubernetes.md): ConfigMap, Deployment, Service, why the two probes differ
- [Helm](docs/deployment/helm.md): chart at oci://ghcr.io/morgankryze/charts/cairn, config in values, Ingress
- [Air-gapped](docs/deployment/airgap.md): offline install with and without a registry, -emit-icons, -check with both mounts
- [Static hosting](docs/deployment/static.md): -export to a directory, zip or tar; what a static site gives up (status pills); Cloudflare Pages, Netlify, Apache/OVH; a CI pipeline
- [Reverse proxies](docs/deployment/reverse-proxies.md): Caddy, Traefik, Nginx examples
- [Status with Gatus](docs/recipes/gatus.md): -emit-gatus, polling, pill behavior
- [Icons](docs/recipes/icons.md): slugs, URLs, self-hosted files
- [Multiple files](docs/recipes/multiple-files.md): one YAML per category
- [Migration](docs/recipes/migration.md): mapping a Homer or Homepage config over, field by field
- [Reference](docs/reference.md): every key, flag and endpoint on one page
- [FAQ](docs/faq.md): tracking, cookies, JavaScript, auth
- [Comparison](docs/comparison.md): when Homer or Homepage fit better

## Source

- [src/](src/): six packages under src/internal (config, render, status,
  server, check, testutil) plus src/cmd/cairn for wiring; render/templates and
  render/assets are embedded into the binary
- [demo/](demo/README.md): compose stack with cairn, Gatus and sample services
- [CONTRIBUTING.md](CONTRIBUTING.md): dev loop, scope rules, commit style