# 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](https://community-scripts.github.io/ProxmoxVE/), find your script (or the script you want to update).
2. **Press the "Report issue" button** on that script’s 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.

```json
{
  "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:

```json
"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](https://community-scripts.github.io/ProxmoxVE/) to see how metadata is displayed for existing scripts.

---

## Need Help?

- **Request metadata** — Use the Report issue button on the script’s page on the website (see [How to Request or Update Metadata](#how-to-request-or-update-metadata) above).
- **[JSON Generator](https://community-scripts.github.io/ProxmoxVE/json-editor)** - Reference only; structure validation
- **[README.md](../README.md)** - Full contribution workflow
