Ctrl K
ComunidadGuías…

mkdocs.yml

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

Archivo original ↗Preguntar a KiBot
# The zoomies.sh site.
#
# It publishes the docs that already live in docs/ rather than a second copy of
# them, so the website cannot drift from the repository. install.sh and
# install.ps1 are copied to the site root by the deploy workflow, again from the
# ones in the repository root, so `curl -fsSL https://zoomies.sh/install.sh | sh`
# and the file a contributor edits are the same file.

site_name: Zoomies
site_url: https://zoomies.sh/
site_description: >-
  Free, open-source self-hosted GitHub Actions runners with ephemeral jobs, a
  live web UI, autoscaling across your own hosts and a path off static runners.
site_author: Zoomies contributors
copyright: Zoomies is AGPL-3.0 licensed.

repo_url: https://github.com/eyupio/zoomies
repo_name: eyupio/zoomies
edit_uri: edit/main/docs/

docs_dir: docs
site_dir: site

theme:
  name: material
  # Sharing and structured metadata that Material does not emit by itself.
  # overrides/main.html extends the theme rather than replacing anything. It is
  # outside docs/ so the template is not also published as a page.
  custom_dir: overrides
  language: en
  favicon: brand/favicon.ico
  # The header renders at favicon scale, where v2.1 reserves the paw/swish.
  # overrides/partials/logo.html draws this one on the dark scheme and the
  # black one on the light scheme, since the header sits on the page's ground.
  logo: brand/paw-swish-white.png
  icon:
    repo: fontawesome/brands/github
  # No `font:` key: the faces are self-hosted rather than fetched from Google
  # Fonts. overrides/main.html replaces the theme's font block, and
  # docs/stylesheets/ carries the @font-face rules and the woff2 files beside
  # it. A third-party font stylesheet is render-blocking, and when the host is
  # slow or unreachable the tab spins with nothing to show.
  features:
    - navigation.tracking
    - navigation.sections
    - navigation.top
    - navigation.footer
    - toc.follow
    - search.suggest
    - search.highlight
    - search.share
    - content.code.copy
    - content.code.annotate
  palette:
    # The brand is a near-black identity, so dark is the default and light is
    # the alternative rather than the other way round.
    - media: "(prefers-color-scheme: dark)"
      scheme: slate
      primary: custom
      accent: custom
      toggle:
        icon: material/weather-sunny
        name: Switch to light
    - media: "(prefers-color-scheme: light)"
      scheme: default
      primary: custom
      accent: custom
      toggle:
        icon: material/weather-night
        name: Switch to dark

extra_css:
  - stylesheets/zoomies.css
  - stylesheets/animated-logo.css
  - stylesheets/showcase.css
  - stylesheets/showcase-material.css
  - stylesheets/cloud.css

extra_javascript:
  - javascripts/animated-logo.js
  - javascripts/showcase.js

markdown_extensions:
  - abbr
  - admonition
  - attr_list
  - def_list
  - footnotes
  - md_in_html
  - tables
  - toc:
      permalink: true
      permalink_title: Link to this section
  - pymdownx.details
  # Material's icon sets, as `:material-webhook:` shortcodes. The home page's
  # feature cards and comparison table use them; they render as inline SVG that
  # inherits the text colour, so there is no icon image to theme or to go stale.
  - pymdownx.emoji:
      emoji_index: !!python/name:material.extensions.emoji.twemoji
      emoji_generator: !!python/name:material.extensions.emoji.to_svg
  - pymdownx.highlight:
      anchor_linenums: true
      line_spans: __span
      pygments_lang_class: true
  - pymdownx.inlinehilite
  - pymdownx.snippets
  # Diagrams are Mermaid, rendered in the browser and themed by Material to
  # follow whichever palette the reader is in. A diagram is a fenced block in
  # the same file as the prose it explains, so GitHub renders it too and there
  # is no exported image to go stale.
  - pymdownx.superfences:
      custom_fences:
        - name: mermaid
          class: mermaid
          format: !!python/name:pymdownx.superfences.fence_code_format
  - pymdownx.tabbed:
      alternate_style: true
  - pymdownx.tasklist:
      custom_checkbox: true

plugins:
  # The built-in search index, told where a Zoomies identifier stops being one
  # word: the default separator does not split on a dot or a hyphen, so
  # `scheduler.scale_up_delay` and `zoomies-linux-x64` were each a single term
  # nobody would type in full.
  - search:
      separator: '[\s\-,:!=\[\]()"/]+|(?!\b)(?=[A-Z][a-z])|\.(?!\d)|&[lg]t;'

# Build-time SEO metadata: a real last-edited date per page for the sitemap and
# the sharing tags, and llms.txt generated from the navigation. It is a hook
# rather than a plugin so the docs build keeps to its pinned dependencies.
hooks:
  - hooks/seo.py
  # The header's latest release, stars and forks, resolved once per build and
  # rendered by overrides/partials/source.html. Material would otherwise fetch
  # them in the browser and cache them in the tab for as long as it lives.
  - hooks/source.py
  # Lazy, sized images: the colour scheme a reader is not using is never
  # downloaded, and a page does not reflow as its screenshots arrive.
  - hooks/images.py
  - hooks/showcase.py

extra:
  field_guides:
    - source: what-are-self-hosted-runners.md
      category: Getting started
      card_title: Start with a runner. Build up to a fleet.
    - source: runners-without-kubernetes.md
      category: Architecture
      card_title: All the runners. None of the Kubernetes.
    - source: home-lab.md
      category: Home lab
      card_title: Good hardware deserves another lap.
    - source: queued-job.md
      category: Operations
      card_title: A job is waiting. Find out why.
    - source: persistent-caches.md
      category: Operations
      card_title: Disposable runners. Useful memories.
    - source: migration.md
      category: Getting started
      card_title: A smaller leap than you think.
    - source: ephemeral-runners.md
      category: Architecture
      card_title: A fresh start for every job.
    - source: runner-autoscaling.md
      category: Architecture
      card_title: A little more room to run.
    - source: should-i-self-host.md
      category: Getting started
      card_title: Your hardware. Your call.
    - source: docker.md
      category: Architecture
      card_title: Put a runner in its place.
    - source: many-repositories.md
      category: Operations
      card_title: More repositories. One happy pack.
    - source: costs.md
      category: Getting started
      card_title: Count more than the minutes.
  # Who builds Zoomies. overrides/partials/copyright.html prints this in the
  # footer of every page, beside the licence; the product's own footer says the
  # same thing from web/src/lib/links.ts, so a fork renames it in two places
  # rather than everywhere.
  developer:
    name: EyUp.io
    url: https://eyup.io
  social:
    - icon: fontawesome/brands/github
      link: https://github.com/eyupio/zoomies
      name: Zoomies on GitHub
  generator: false

# Keep the learning path separate from operating tasks and exact reference.
# A reader can find a first job without knowing a feature name, while an
# operator can go directly to a setting, command or API route.
nav:
  - Home: index.md
  - Documentation:
      - Overview: start-here.md
      - Get started:
          - Understand the basics: fundamentals.md
          - Run your first job: quickstart.md
          - Docker Compose: compose.md
          - Deploying on a PaaS: paas.md
          - Deploying on InstaPods: instapods.md
          - One-click deployment: marketplace.md
      - Run your fleet:
          - Web UI tour: ui.md
          - Hosts and pools: hosts-and-pools.md
          - Migrating repositories: migration.md
          - Backup and restore: backup-and-restore.md
          - Upgrading: upgrading.md
          - Two-step verification: two-step.md
          - Public view: public-view.md
          - Host health and tuning: host-health.md
          - Troubleshooting: troubleshooting.md
          - A job stuck in the queue: queued-job.md
      - Scale and tune:
          - Advanced operations: advanced.md
          - Size classes and automatic pools: auto-pools.md
          - Persistent caches: persistent-caches.md
          - Elastic CPU zoomies: elastic-cpu.md
          - Elastic memory: elastic-memory.md
          - Private hosts with Tailcat: private-hosts.md
          - Proxmox VE: proxmox.md
      - Assistants and repository checks:
          - MCP for your AI assistant: mcp.md
          - Eli conversations and PR repairs: eli.md
          - Kennel Club: kennel-club.md
          - Connect Claude: connect-claude.md
          - AI Context for assistants: ai-context.md
      - Reference:
          - Configuration: configuration.md
          - Command line: cli.md
          - API: api-surface.md
          - Architecture: architecture.md
          - Naming and platforms: naming.md
          - Security: security.md
          - Problem codes: problem-codes.md
          - Metrics: metrics.md
          - Runner startup stability: runner-startup-stability.md
          - Runtime compatibility: runtime-compatibility.md
          - Recovering a published image: development/image-recovery.md
          - Provider contract: providers.md
          - Automation contract: automation.md
          - Capacity-demand receiver: capacity-demand-receiver.md
          - Dependencies: dependencies.md
          - UI guidelines: ui-guidelines.md
  - Field guide: guides/index.md
  - Choosing Zoomies:
      - What are self-hosted runners?: what-are-self-hosted-runners.md
      - Should you self-host?: should-i-self-host.md
      - What it costs: costs.md
      - FAQ: faq.md
      - Many repositories: many-repositories.md
      - Runners in your home lab: home-lab.md
      - Runners in Docker: docker.md
      - Runners without Kubernetes: runners-without-kubernetes.md
      - Ephemeral runners: ephemeral-runners.md
      - Autoscaling runners: runner-autoscaling.md
  - Compare:
      - Choose your setup: alternatives/index.md
      - Compared with ARC: actions-runner-controller.md
      - Compared with GARM: alternatives/garm.md
      - Compared with the AWS Terraform module: alternatives/terraform-aws-github-runner.md
      - Compared with TestFlows Hetzner runners: alternatives/testflows-hetzner-runners.md
      - Compared with Cirun: alternatives/cirun.md
      - Compared with runscaler: alternatives/runscaler.md
      - Compared with gharp: alternatives/gharp.md
      - Compared with runner services: hosted-runner-services.md
      - GitHub Actions alternatives: github-actions-alternatives.md
  - About:
      - Brand: brand.md
      - Privacy: privacy.md
      - Terms: terms.md
# The brand pack's own guide is published because docs/brand.md links to it, but
# it is not a section of the site's navigation.
not_in_nav: |
  brand/BRANDING_GUIDE.md

# docs/agents/ is guidance for coding agents working in the repository, not a
# page for the people reading the site.
exclude_docs: |
  agents/

# A link in the docs that points nowhere is a broken promise, so a broken one
# fails the build rather than shipping.
strict: true
validation:
  links:
    absolute_links: ignore
    unrecognized_links: warn
    # A heading that gets reworded silently breaks every deep link into it, and
    # a link that lands at the top of a long page looks like it worked.
    anchors: warn