Skip to content

Configuration Schema

Detailed YAML configuration reference.

Root Level

FieldTypeRequiredDescription
intervalintegerYesSeconds between update checks
intervalMinutesintegerNoDeprecated: Use interval instead
projectsarrayYesList of projects to monitor

Environment Variables (Docker)

When running in Docker, projects are auto-discovered from running containers with Docker Hub or GHCR images.

  • UPDATECTL_INTERVAL: Check interval in seconds (default: 600)

Project Object

FieldTypeRequiredDescription
namestringYesUnique project identifier
pathstringFor git-based typesLocal filesystem path
repostringFor git-based typesGit repository URL
typestringYesProject type: docker, pm2, static, image
buildCommandstringNoBuild command (for git-based types)
imagestringFor image typeDocker image to pull (e.g., ghcr.io/user/app:main)
portstringNoPort mapping for image type (e.g., 80:80)
envmap[string]stringNoEnvironment variables for image type
containerNamestringNoCustom container name for image type (defaults to project name)

Validation Rules

  • interval: Must be positive integer (seconds)
  • intervalMinutes: Deprecated: Use interval instead
  • path: Must exist and be writable (required for git-based types)
  • repo: Must be valid Git URL (required for git-based types)
  • type: Must be one of supported types: docker, pm2, static, image
  • buildCommand: Optional for git-based types
  • image: Required for image type, must be valid Docker image reference
  • port: Optional for image type, must be valid port mapping format
  • env: Optional for image type, key-value pairs
  • containerName: Optional for image type

Example

yaml
interval: 1800  # 30 minutes
projects:
  - name: frontend
    path: /srv/frontend
    repo: https://github.com/company/frontend.git
    type: docker
    buildCommand: docker compose up -d --build
  - name: backend
    path: /srv/backend
    repo: https://github.com/company/backend.git
    type: pm2
  - name: webapp
    type: image
    image: ghcr.io/company/webapp:latest
    port: "3000:80"
    env:
      NODE_ENV: production
      API_URL: https://api.company.com
    containerName: company-webapp