# This file is auto-generated by .github/scripts/generate_index.py
# Do not edit manually - changes will be overwritten
# To update: edit <template>/template.yaml and run the generation script

apiVersion: v1
templates:
- name: ansible
  version: 1.0.0
  description: Ansible playbooks for automated configuration management.
  config: ansible/playbooks/docker.yaml
  type: ansible
  tags:
  - ansible
  - automation
  - configuration
- name: azure
  version: 1.0.0
  description: Azure cloud deployment and configuration scripts.
  config: azure/agent-pool.sh
  type: script
  tags:
  - azure
  - cloud
  - deployment
  env:
  - name: TOKEN
    required: true
    description: Azure DevOps personal access token.
  - name: URL
    required: true
    description: Azure DevOps organization URL, e.g. https://dev.azure.com/<org>.
  - name: AGENT_POOL_NAME
    required: true
    description: Agent pool to register into.
  - name: AGENT_NAME
    required: false
    description: 'Agent name (default: hostname).'
- name: cloud-hypervisor
  version: 1.0.0
  description: Configuration and setup scripts for the Cloud Hypervisor (ch) provider, including Windows guest prerequisites.
  config: cloud-hypervisor/cloud-hypervisor-host-setup.sh
  type: script
  tags:
  - cloud-hypervisor
  - windows
- name: cloud-init
  version: 1.0.0
  description: Provides cloud-init configuration templates.
  config: cloud-init/ssh-443.config
  type: cloud-init
  tags:
  - cloud-init
  - cloud
  - initialization
  files:
  - path: cloud-init/ssh-443-RHEL.config
    type: cloud-init
    description: Moves SSH to port 443 on RHEL-family images (SELinux + firewalld).
- name: cloudflare
  version: 1.0.0
  description: Cloudflare tunnel and DNS configuration.
  config: cloudflare/tunnel.sh
  type: script
  tags:
  - cloudflare
  - tunnel
  - dns
  env:
  - name: CF_TOKEN
    required: true
    description: Cloudflare Tunnel token.
- name: coder
  version: 1.0.0
  description: Coder development environment setup.
  config: coder/init.sh
  type: script
  tags:
  - coder
  - development
  - environment
- name: docker
  version: 1.0.0
  description: Installs Docker on the VM.
  config: docker/docker.sh
  type: script
  tags:
  - docker
  - container
  files:
  - path: docker/nginx.sh
    type: script
    description: Runs a sample Nginx container on port 80 (needs Docker).
- name: firecracker
  version: 1.0.0
  description: Prepares a KVM-capable VM to host Firecracker microVMs (with IP forwarding and NAT).
  config: firecracker/firecracker-host-setup.sh
  type: script
  tags:
  - firecracker
  - microvm
  - kvm
- name: github-runner
  version: 1.0.0
  description: Registers an ephemeral self-hosted GitHub Actions runner.
  config: github-runner/github-runner.sh
  type: script
  tags:
  - github
  - github-actions
  - ci
  - runner
  env:
  - name: GH_REPO
    required: true
    description: Repository to register with, as owner/repo.
  - name: RUNNER_TOKEN
    required: true
    description: Runner registration token.
  - name: RUNNER_LABELS
    required: false
    description: 'Comma-separated runner labels (default: onctl).'
- name: github-runner-jit
  version: 1.0.0
  description: Registers an ephemeral self-hosted GitHub Actions runner using a just-in-time (JIT) config.
  config: github-runner-jit/github-runner-jit.sh
  type: script
  tags:
  - github
  - github-actions
  - ci
  - runner
  - jit
  env:
  - name: JIT_CONFIG
    required: true
    description: Base64 JIT config from the generate-jitconfig API.
  - name: SKIP_DOCKER
    required: false
    description: Set to 1 to skip installing Docker.
- name: hcloud
  version: 1.0.0
  description: Installs the Hetzner Cloud controller manager and CSI driver on a K3s cluster.
  config: hcloud/k3s-ccm.sh
  type: script
  tags:
  - hcloud
  - hetzner
  - kubernetes
  - csi
  env:
  - name: HCLOUD_TOKEN
    required: true
    description: Hetzner Cloud API token.
- name: k3s
  version: 1.0.0
  description: Deploys a K3s server instance.
  config: k3s/k3s-server.sh
  type: script
  tags:
  - k3s
  - kubernetes
  - server
  files:
  - path: k3s/k3s-agent.sh
    type: script
    description: Joins the VM to an existing K3s server as an agent.
    env:
    - name: SERVER_IP
      required: true
      description: IP of the K3s server.
    - name: TOKEN
      required: true
      description: K3s join token (/tmp/token on the server).
  - path: k3s/k3s-wg-server.sh
    type: script
    description: K3s server using WireGuard-encrypted flannel, for nodes across networks.
  - path: k3s/k3s-wg-agent.sh
    type: script
    description: Joins a WireGuard-flannel K3s server as an agent.
    env:
    - name: SERVER_IP
      required: true
      description: IP of the K3s server.
    - name: TOKEN
      required: true
      description: K3s join token (/tmp/token on the server).
  - path: k3s/k3s-cilium.sh
    type: script
    description: K3s server with Cilium as CNI instead of flannel and kube-proxy.
  - path: k3s/argocd-core.sh
    type: script
    description: Installs Argo CD (core) and its CLI on an existing K3s server.
  - path: k3s/traefik-helm.yaml
    type: manifest
    description: HelmChartConfig enabling the Traefik dashboard on K3s.
  - path: k3s/k3s.sh
    type: local
    description: 'Run locally: creates a WireGuard K3s server plus NODE_COUNT agents with onctl.'
    env:
    - name: NODE_COUNT
      required: false
      description: 'Number of agent VMs (default: 2).'
- name: k3s-fc
  version: 1.0.0
  description: Deploys a K3s server instance on Firecracker microVMs (flannel host-gw backend, no VXLAN needed).
  config: k3s-fc/k3s-server.sh
  type: script
  tags:
  - k3s
  - kubernetes
  - server
  - firecracker
- name: minio
  version: 1.0.0
  description: Sets up a MinIO storage server.
  config: minio/docker.sh
  type: script
  tags:
  - minio
  - storage
  - s3
  files:
  - path: minio/minio.sh
    type: script
    description: Installs MinIO from the .deb package as a systemd service on /mnt.
- name: neo4j
  version: 1.0.0
  description: Runs the Neo4j graph database in Docker, with the Neo4j Browser on port 7474 and Bolt on port 7687.
  config: neo4j/neo4j.sh
  type: script
  tags:
  - neo4j
  - database
  - graph
  env:
  - name: NEO4J_PASSWORD
    required: false
    description: 'Password of the neo4j user, at least 8 characters (default: generated, printed at the end and kept in NEO4J_HOME/password).'
  - name: NEO4J_VERSION
    required: false
    description: 'Image tag (default: 2026.09.0).'
  - name: NEO4J_HOME
    required: false
    description: 'Directory on the VM for data, logs and the password file (default: /opt/neo4j).'
  - name: BOLT_ADVERTISED_ADDRESS
    required: false
    description: host:port clients reach Bolt on, when it isn't the VM's own address on 7687, e.g. the public URL of port 7687 with :443.
  usage:
  - command: cat /opt/neo4j/password
    description: Show the password of the neo4j user.
  - command: docker exec -it neo4j cypher-shell -u neo4j -p "$(cat /opt/neo4j/password)"
    description: Open a Cypher shell on the database.
  - command: docker logs -f neo4j
    description: Follow the server log.
- name: nginx
  version: 1.0.0
  description: Sets up Nginx web server.
  config: nginx/install.sh
  type: script
  tags:
  - nginx
  - webserver
  - proxy
- name: node
  version: 1.0.0
  description: Installs Node.js using NVM (Node Version Manager).
  config: node/node.sh
  type: script
  tags:
  - nodejs
  - javascript
  - nvm
- name: ollama
  version: 1.0.0
  description: Sets up Ollama with Open WebUI for AI model management.
  config: ollama/open-webui-ollama.sh
  type: script
  tags:
  - ollama
  - ai
  - llm
  - webui
  files:
  - path: ollama/install.sh
    type: script
    description: Installs Ollama natively and pulls llama3.
  - path: ollama/host.sh
    type: script
    description: Makes a native Ollama listen on all interfaces (0.0.0.0).
  - path: ollama/open-webui.sh
    type: script
    description: Runs Open WebUI only, pointing at an Ollama on the host.
- name: openai-agents
  version: 1.0.0
  description: Self-hosted environment for OpenAI Agents API sessions (Codex CLI and codex exec-server helpers).
  config: openai-agents/codex-executor.sh
  type: script
  tags:
  - openai
  - agents
  - codex
  - ai
  env:
  - name: CODEX_VERSION
    required: false
    description: 'npm version or tag of @openai/codex (default: alpha).'
  - name: WORKSPACE
    required: false
    description: 'The agent''s working directory; must match the session''s workspace_directory (default: /workspace).'
- name: rancher
  version: 1.0.0
  description: Rancher management (local) cluster on single-node k3s with cert-manager.
  config: rancher/rancher-local.sh
  type: script
  tags:
  - rancher
  - kubernetes
  - k3s
  - management
  env:
  - name: RANCHER_HOSTNAME
    required: false
    description: 'Default: rancher.<public-ip-with-dashes>.sslip.io.'
  - name: RANCHER_VERSION
    required: false
    description: 'Rancher chart version (default: latest).'
  - name: RANCHER_REPLICAS
    required: false
    description: 'Default: 1.'
  - name: BOOTSTRAP_PASSWORD
    required: false
    description: 'First admin password (default: random, saved to /root/rancher-bootstrap-password).'
  - name: CERT_MANAGER_VERSION
    required: false
    description: 'cert-manager chart version (default: latest).'
  - name: K3S_VERSION
    required: false
    description: 'e.g. v1.35.4+k3s1 (default: k3s stable channel).'
- name: rke2
  version: 1.0.0
  description: Installs and configures RKE2 Kubernetes distribution.
  config: rke2/rke2.sh
  type: script
  tags:
  - rke2
  - kubernetes
  - rancher
- name: rustfs
  version: 1.0.0
  description: Deploys RustFS object storage using the official Docker image.
  config: rustfs/rustfs.sh
  type: script
  tags:
  - rustfs
  - object-storage
  - s3
  env:
  - name: RUSTFS_VERSION
    required: false
    description: 'Image tag (default: latest).'
  - name: DATA_DIR
    required: false
    description: 'Default: /opt/rustfs/data.'
  - name: LOG_DIR
    required: false
    description: 'Default: /opt/rustfs/logs.'
- name: supabase
  version: 1.0.0
  description: Self-hosted Supabase backend-as-a-service (Postgres, Auth, Storage, Realtime, Studio).
  config: supabase/supabase.sh
  type: script
  tags:
  - supabase
  - postgres
  - backend
  - database
  - auth
- name: wireguard
  version: 1.0.0
  description: Configures WireGuard VPN server.
  config: wireguard/vpn.sh
  type: script
  tags:
  - wireguard
  - vpn
  - networking
  files:
  - path: wireguard/multi.sh
    type: script
    description: WireGuard server with several client configs.
    env:
    - name: NUM_OF_CLIENTS
      required: false
      description: 'Number of client configs (default: 1).'
- name: zeroclaw
  version: 1.0.0
  description: Installs the ZeroClaw agent runtime and connects it to the llama.cpp servers on the VM's host, no API key needed.
  config: zeroclaw/zeroclaw.sh
  type: script
  tags:
  - zeroclaw
  - agents
  - ai
  - llm
  - llama.cpp
  env:
  - name: ZEROCLAW_VERSION
    required: false
    description: 'ZeroClaw release tag to install (default: v0.8.5).'
  - name: LLM_HOST
    required: false
    description: 'Address of the machine running the model servers (default: the VM''s default gateway, i.e. its host).'
  - name: LLM_PORTS
    required: false
    description: 'Space-separated ports to look for an OpenAI-compatible llama.cpp server on (default: 8080 8081).'
  usage:
  - command: grep '^\[agents' ~/.zeroclaw/config.toml
    description: List the agents the script set up, one per model it found on the host.
  - command: zeroclaw agent -a gemma
    description: Start an interactive session. Replace gemma with one of your agents.
