Marketplace & Library API

Browse and deploy pre-configured application templates. The library includes official templates (WordPress, Ghost, Grafana, etc.) and supports custom templates.

List Templates

GET /api/v1/library/templates
Response:
[
  {
    "id": "tmpl_wordpress",
    "name": "WordPress",
    "slug": "wordpress",
    "description": "Popular open-source CMS",
    "image": "wordpress:latest",
    "port": 80,
    "category": "cms",
    "source": "official",
    "type": "app",
    "env_template": {
      "WORDPRESS_DB_HOST": "mysql:3306",
      "WORDPRESS_DB_USER": "wordpress"
    },
    "database": {
      "type": "mysql",
      "version": "8.0"
    }
  },
  {
    "id": "tmpl_ghost",
    "name": "Ghost",
    "slug": "ghost",
    "description": "Modern publishing platform",
    "image": "ghost:5",
    "port": 2368,
    "category": "cms",
    "source": "official"
  }
]

Deploy from Template

Use the template ID when creating an app:
POST /api/v1/apps
{
  "name": "my-blog",
  "template_id": "tmpl_wordpress",
  "port": 80
}
Uncloud will:
  1. Pull the template configuration
  2. Create the app with the template’s image and env vars
  3. Optionally create associated databases
  4. Deploy everything together

Create a Custom Template

POST /api/v1/library/templates
{
  "name": "My Custom App",
  "slug": "my-custom-app",
  "description": "Internal service template",
  "image": "myregistry.com/custom:v1",
  "port": 8080,
  "category": "internal",
  "source": "custom",
  "env_template": {
    "API_KEY": "",
    "LOG_LEVEL": "info"
  }
}

Update a Template

PATCH /api/v1/library/templates/{id}

Delete a Template

DELETE /api/v1/library/templates/{id}
Only custom templates can be deleted. Official templates are read-only.

Available Categories

CategoryExamples
cmsWordPress, Ghost, Strapi
monitoringGrafana, Prometheus
cacheRedis, Memcached
queueRabbitMQ, NATS
databasePostgreSQL, MySQL, MongoDB
analyticsPlausible, Matomo
internalCustom templates