AgentSkillsCN

homepage-services

为首页仪表板配置services.yaml——定义服务、小部件、Docker集成、图标,以及监控功能。

SKILL.md
--- frontmatter
name: homepage-services
description: Configure services.yaml for Homepage dashboard - service definitions, widgets, Docker integration, icons, and monitoring
license: MIT
compatibility: opencode
metadata:
  project: homepage
  type: yaml-config

Homepage services.yaml Configuration

Reference for configuring services in Homepage dashboard.

Structure

yaml
---
- GroupName:
    - ServiceName:
        href: http://service.url
        # Additional properties...

Service Properties

PropertyTypeRequiredDescription
hrefstringYesURL to open when clicking
descriptionstringNoText under service name
iconstringNoIcon name or URL
serverstringNoDocker server from docker.yaml
containerstringNoDocker container name
pingstringNoHostname for ICMP ping
siteMonitorstringNoURL for HTTP monitoring
statusStylestringNodot, basic, or empty
showStatsbooleanNoShow Docker stats expanded
targetstringNo_blank, _self, _top
idstringNoCustom ID for CSS/JS
widgetobjectNoWidget configuration
widgetsarrayNoMultiple widgets

Nested Groups

yaml
---
- Parent Group:
    - Parent Service:
        href: http://service.url
    - Child Group:
        - Child Service:
            href: http://child.url

Single Widget

yaml
- Jellyfin:
    icon: jellyfin.png
    href: http://jellyfin.host:8096
    server: my-docker
    container: jellyfin
    widget:
      type: jellyfin
      url: http://jellyfin.host:8096
      key: { { HOMEPAGE_VAR_JELLYFIN_API_KEY } }
      fields: ["activeStreams", "totalMovies"]

Multiple Widgets

yaml
- Jellyfin:
    widgets:
      - type: jellyfin
        url: http://jellyfin.host:8096
        key: { { HOMEPAGE_VAR_JELLYFIN_API_KEY } }
      - type: uptimekuma
        url: http://uptimekuma.host
        slug: jellyfin-status

Widget Properties

PropertyTypeDescription
typestringWidget type (see homepage-widgets skill)
urlstringService API URL
keystringAPI key using {{HOMEPAGE_VAR_*}}
fieldsarrayFields to display
headersobjectCustom HTTP headers
hideErrorsbooleanHide error messages

Field Visibility

yaml
- Sonarr:
    widget:
      type: sonarr
      fields: ["wanted", "queued"]
      url: http://sonarr.host
      key: { { HOMEPAGE_VAR_SONARR_API_KEY } }

Block Highlighting

yaml
- Sonarr:
    widget:
      type: sonarr
      url: http://sonarr.host
      key: { { HOMEPAGE_VAR_SONARR_API_KEY } }
      highlight:
        queued:
          numeric:
            - level: danger
              when: gte
              value: 20
            - level: warn
              when: gte
              value: 5
            - level: good
              when: eq
              value: 0

Numeric operators: gt, gte, lt, lte, eq, ne, between, outside String operators: equals, includes, startsWith, endsWith, regex

Icons

yaml
icon: sonarr.png           # Dashboard Icons
icon: si-youtube           # Simple Icons
icon: mdi-flask-outline    # Material Design Icons
icon: sh-plex              # selfh.st icons
icon: si-youtube-#a712a2   # Custom color
icon: https://example.com/icon.png  # Remote URL
icon: /icons/custom.png    # Local (mount /app/public/icons)

Docker Integration

yaml
- Emby:
    href: http://emby.home/
    server: my-docker # Must match docker.yaml key
    container: emby # Container name
    showStats: true # Show CPU/memory/network

Ping / Site Monitor

yaml
- Sonarr:
    ping: sonarr.host # ICMP ping

- Radarr:
    siteMonitor: http://radarr.host/ # HTTP HEAD/GET

Common Patterns

Media Service with Widget

yaml
- Jellyfin:
    href: http://jellyfin.host:8096
    icon: jellyfin.png
    server: Unraid
    container: jellyfin
    showStats: true
    widget:
      type: jellyfin
      url: http://jellyfin.host:8096
      key: { { HOMEPAGE_VAR_JELLYFIN_API_KEY } }
      enableBlocks: true
      enableNowPlaying: true

Torrent Client

yaml
- Transmission:
    href: http://transmission.host:9091
    server: Unraid
    container: transmission
    widget:
      type: transmission
      url: http://transmission.host:9091
      username: { { HOMEPAGE_VAR_TRANSMISSION_USERNAME } }
      password: { { HOMEPAGE_VAR_TRANSMISSION_PASSWORD } }
      fields: ["leech", "download", "seed", "upload"]

Simple Link (No Widget)

yaml
- LocalAI:
    href: http://localai.host:8082
    icon: mdi-robot
    description: Local LLM server