Files
ProxmoxVE/docs/contribution/templates_json/AppName.md
Michel Roegl-Brunner 3c582e37dc docs: update contribution docs for website metadata workflow (fixes #12839)
- Request metadata via website Report issue button instead of JSON in repo
- PRs now include only 2 files: ct/*.sh and install/*-install.sh
- Update README, GUIDE, CONTRIBUTING, AI.md, CODE-AUDIT, templates
- Fix docs/ct README link from CONTRIBUTION_GUIDE to contribution/README

Made-with: Cursor
2026-03-13 12:46:28 +01:00

5.0 KiB
Raw Blame History

Website Metadata - Quick Reference

Metadata (name, slug, description, logo, categories, etc.) controls how your application appears on the website. You do not add JSON files to the repo — you request changes via the website.


How to Request or Update Metadata

  1. Go to the script on the website — Open the ProxmoxVE website, find your script (or the script you want to update).
  2. Press the "Report issue" button on that scripts page.
  3. Follow the guide — The flow will walk you through submitting or updating metadata.

Metadata Structure (Reference)

The following describes the structure of script metadata used by the website. Use it as reference when filling out the form or describing what you need.

{
  "name": "MyApp",
  "slug": "myapp",
  "categories": [1],
  "date_created": "2026-01-18",
  "type": "ct",
  "updateable": true,
  "privileged": false,
  "interface_port": 3000,
  "documentation": "https://docs.example.com/",
  "website": "https://example.com/",
  "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/myapp.webp",
  "config_path": "/opt/myapp/.env",
  "description": "Brief description of what MyApp does",
  "install_methods": [
    {
      "type": "default",
      "script": "ct/myapp.sh",
      "resources": {
        "cpu": 2,
        "ram": 2048,
        "hdd": 8,
        "os": "Debian",
        "version": "13"
      }
    }
  ],
  "default_credentials": {
    "username": null,
    "password": null
  },
  "notes": [
    {
      "text": "Change the default password after first login!",
      "type": "warning"
    }
  ]
}

Field Reference

Field Required Example Notes
name Yes "MyApp" Display name
slug Yes "myapp" URL-friendly identifier (lowercase, no spaces)
categories Yes [1] One or more category IDs
date_created Yes "2026-01-18" Format: YYYY-MM-DD
type Yes "ct" Container type: "ct" or "vm"
interface_port Yes 3000 Default web interface port
logo No "https://..." Logo URL (64px x 64px PNG)
config_path Yes "/opt/myapp/.env" Main config file location
description Yes "App description" Brief description (100 chars)
install_methods Yes See below Installation resources (array)
default_credentials No See below Optional default login
notes No See below Additional notes (array)

Install Methods

Each installation method specifies resource requirements:

"install_methods": [
  {
    "type": "default",
    "script": "ct/myapp.sh",
    "resources": {
      "cpu": 2,
      "ram": 2048,
      "hdd": 8,
      "os": "Debian",
      "version": "13"
    }
  }
]

Resource Defaults:

  • CPU: Cores (1-8)
  • RAM: Megabytes (256-4096)
  • Disk: Gigabytes (4-50)

Common Categories

  • 0 Miscellaneous
  • 1 Proxmox & Virtualization
  • 2 Operating Systems
  • 3 Containers & Docker
  • 4 Network & Firewall
  • 5 Adblock & DNS
  • 6 Authentication & Security
  • 7 Backup & Recovery
  • 8 Databases
  • 9 Monitoring & Analytics
  • 10 Dashboards & Frontends
  • 11 Files & Downloads
  • 12 Documents & Notes
  • 13 Media & Streaming
  • 14 *Arr Suite
  • 15 NVR & Cameras
  • 16 IoT & Smart Home
  • 17 ZigBee, Z-Wave & Matter
  • 18 MQTT & Messaging
  • 19 Automation & Scheduling
  • 20 AI / Coding & Dev-Tools
  • 21 Webservers & Proxies
  • 22 Bots & ChatOps
  • 23 Finance & Budgeting
  • 24 Gaming & Leisure
  • 25 Business & ERP

Best Practices

  1. Use the JSON Generator - It validates structure
  2. Keep descriptions short - 100 characters max
  3. Use real resource requirements - Based on your testing
  4. Include sensible defaults - Pre-filled in install_methods
  5. Slug must be lowercase - No spaces, use hyphens

See Examples on the Website

View script pages on the ProxmoxVE website to see how metadata is displayed for existing scripts.


Need Help?