{
  "$schema": "./hostinty-product-catalog.schema.json",
  "schemaVersion": "2026-08-08.v1",
  "generatedFor": "Task 40 hostinty-catalog initial manifest",
  "lastReviewedAt": "2026-08-08",
  "disclaimer": "Coolify/service deployability is not Hostinty product support. Entries below are Hostinty product truth only.",
  "products": [
    {
      "key": "WORDPRESS",
      "displayName": "Managed WordPress",
      "status": "SUPPORTED",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [
        "MARIADB",
        "PERSISTENT_SITE_FILES"
      ],
      "networking": {
        "tcp": [
          80,
          443
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": true,
        "backupStatus": "OPERATOR_ASSISTED"
      },
      "database": {
        "required": true,
        "products": [
          "MARIADB"
        ]
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "PLANNED",
      "customerNotes": [
        "Managed WordPress is a Hostinty product, not generic Coolify WordPress.",
        "Site files and MariaDB are provisioned by Hostinty; customers do not get a shell or raw DB admin UI in v1.",
        "Object-cache Redis inside WordPress is not included in the current beta."
      ],
      "publicSourceOfTruth": [
        "/products/wordpress",
        "/docs/wordpress"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "STATIC_GIT",
      "displayName": "Static site (Git)",
      "status": "SUPPORTED",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [],
      "networking": {
        "tcp": [
          80,
          443
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": false,
        "backupStatus": "NONE"
      },
      "database": {
        "required": false,
        "products": []
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "FUTURE",
      "customerNotes": [
        "Git-connected static sites use Hostinty build/provisioning for supported frameworks.",
        "This is distinct from small static artifact import (paste/URL/ZIP)."
      ],
      "publicSourceOfTruth": [
        "/docs/static-sites",
        "/docs/git-deployments"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "STATIC_ARTIFACT",
      "displayName": "Static artifact import (paste / URL / ZIP)",
      "status": "BETA",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [],
      "networking": {
        "tcp": [
          80,
          443
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": false,
        "backupStatus": "NONE"
      },
      "database": {
        "required": false,
        "products": []
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "NONE",
      "customerNotes": [
        "Text-only HTML/CSS/JS/JSON artifacts via dashboard paste, allowlisted public Claude/ChatGPT URLs, or small ZIP upload.",
        "Delivery is immutable OCI image/digest through the Hostinty Static lifecycle — not MCP upload.",
        "Feature flags: HOSTINTY_ARTIFACT_IMPORT_ENABLED and HOSTINTY_ARTIFACT_ZIP_UPLOAD_ENABLED."
      ],
      "publicSourceOfTruth": [
        "/docs/static-artifacts",
        "/docs/static-zip-upload"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "GIT_APP",
      "displayName": "Git application (framework)",
      "status": "BETA",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [],
      "networking": {
        "tcp": [
          80,
          443
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": false,
        "backupStatus": "NONE"
      },
      "database": {
        "required": false,
        "products": []
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "FUTURE",
      "customerNotes": [
        "Supported frameworks are listed in Hostinty docs; unsupported stacks must not be implied.",
        "Detection and start-command defaults continue to evolve; prefer documented smoke-proven stacks."
      ],
      "publicSourceOfTruth": [
        "/docs/git-deployments",
        "/docs/supported-frameworks"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "POSTGRES",
      "displayName": "Managed PostgreSQL",
      "status": "SUPPORTED",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [],
      "networking": {
        "tcp": [
          5432
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": true,
        "backupStatus": "OPERATOR_ASSISTED"
      },
      "database": {
        "required": true,
        "products": [
          "POSTGRES"
        ]
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "PLANNED",
      "customerNotes": [
        "Customers connect through Hostinty-controlled gateway endpoints, not raw RDS public exposure.",
        "Credentials and connection strings are never available through MCP."
      ],
      "publicSourceOfTruth": [
        "/docs/resources/postgresql"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "MARIADB",
      "displayName": "Managed MariaDB",
      "status": "SUPPORTED",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [],
      "networking": {
        "tcp": [
          3306
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": true,
        "backupStatus": "OPERATOR_ASSISTED"
      },
      "database": {
        "required": true,
        "products": [
          "MARIADB"
        ]
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "PLANNED",
      "customerNotes": [
        "Primary consumer is Managed WordPress via Hostinty ProxySQL gateway.",
        "A generic public MySQL product is not implied by MariaDB deployability."
      ],
      "publicSourceOfTruth": [
        "/docs/resources/mariadb"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "R2",
      "displayName": "Object storage (R2)",
      "status": "BETA",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [],
      "networking": {
        "tcp": [
          443
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": true,
        "backupStatus": "FUTURE"
      },
      "database": {
        "required": false,
        "products": []
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "FUTURE",
      "customerNotes": [
        "One Hostinty-managed bucket per resource; customer-owned Cloudflare accounts are not auto-created for artifact staging.",
        "S3 credentials are never exposed via MCP."
      ],
      "publicSourceOfTruth": [
        "/docs/resources/object-storage"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "MCP_READONLY",
      "displayName": "Hostinty MCP (read-only)",
      "status": "BETA",
      "operationalMode": "OPERATOR_ASSISTED",
      "dependencies": [],
      "networking": {
        "tcp": [
          443
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": false,
        "backupStatus": "NONE"
      },
      "database": {
        "required": false,
        "products": []
      },
      "redis": {
        "required": false,
        "products": []
      },
      "migrationStatus": "NONE",
      "customerNotes": [
        "Read-only PAT MCP at mcp.hostinty.com. Skill packages teach agents; PATs authorize tools.",
        "Write actions remain dashboard-only in this phase."
      ],
      "publicSourceOfTruth": [
        "/docs/mcp",
        "/docs/skills/hostinty-mcp-readonly"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "PAPERLESS",
      "displayName": "Paperless",
      "status": "FUTURE",
      "operationalMode": "DEPLOYABLE_CUSTOM_COMPOSE",
      "dependencies": [
        "POSTGRES",
        "REDIS"
      ],
      "networking": {
        "tcp": [
          80,
          443
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": true,
        "backupStatus": "FUTURE"
      },
      "database": {
        "required": true,
        "products": [
          "POSTGRES"
        ]
      },
      "redis": {
        "required": true,
        "products": [
          "REDIS"
        ]
      },
      "migrationStatus": "FUTURE",
      "customerNotes": [
        "Not a Hostinty customer product yet. Coolify/compose deployability alone does not equal Hostinty support."
      ],
      "publicSourceOfTruth": [
        "/docs/roadmap"
      ],
      "lastReviewedAt": "2026-08-08"
    },
    {
      "key": "REDIS",
      "displayName": "Managed Redis",
      "status": "FUTURE",
      "operationalMode": "FULLY_MANAGED",
      "dependencies": [],
      "networking": {
        "tcp": [
          6379
        ],
        "udp": [],
        "privileged": false
      },
      "storage": {
        "required": false,
        "backupStatus": "FUTURE"
      },
      "database": {
        "required": false,
        "products": []
      },
      "redis": {
        "required": true,
        "products": [
          "REDIS"
        ]
      },
      "migrationStatus": "FUTURE",
      "customerNotes": [
        "Not offered as a standalone Hostinty resource product in the current beta."
      ],
      "publicSourceOfTruth": [
        "/docs/roadmap"
      ],
      "lastReviewedAt": "2026-08-08"
    }
  ]
}
