Skip to content

Search docs

Search the Skiffly documentation

Templates

One-click services and stacks: 136 templates for databases, queues, dashboards, CMSs and framework starters, deployable from the dashboard, the CLI or `templateDeployV2`.

A template describes one or more services (image or repository), their variables (with generated secrets and references between services), volumes, ports and resources. Deploying a template creates everything inside your project atomically and starts the first deployments; if anything fails nothing is left behind.

Catalog#

Browse at Templates in the dashboard or from the terminal:

skiffly templates                       # everything
skiffly templates postgres              # search name, description, tags, image
skiffly templates --category databases
skiffly templates --featured

Categories: starters, databases, dev-tools, ecommerce, cms, ai, automation, messaging, monitoring, analytics, storage, auth, other. Each template has a code (postgres, n8n, nextjs-prisma), a readme, the list of variables you may set and the ones you must set (requiredVariables), and post-deploy notes.

Deploying a template#

Project canvas → New service → Template, or Templates in the sidebar → Deploy. Required variables are asked for; everything else has defaults or is generated.

What a template contains#

packages/templates/catalog/postgres.json (excerpt)
{
  "code": "postgres",
  "services": [{
    "name": "Postgres",
    "source": { "image": "postgres:17" },
    "port": 5432, "protocol": "tcp",
    "variables": {
      "POSTGRES_PASSWORD": { "generate": "password" },
      "DATABASE_URL": { "reference": "postgresql://${{self.POSTGRES_USER}}:${{self.POSTGRES_PASSWORD}}@${{self.SKIFFLY_PRIVATE_DOMAIN}}:5432/${{self.POSTGRES_DB}}" }
    },
    "volumes": [{ "mountPath": "/var/lib/postgresql/data", "sizeGb": 10 }],
    "resources": { "cpuMillis": 1000, "memoryBytes": 1073741824 }
  }]
}
  • generate: password, secret, uuid, hex32, hex64, base64_32; created on deploy, never shown in the catalog.
  • reference: rewritten to the names of the services that were actually created, so two Postgres templates in one project do not clash.
  • protocol: "http" services get a generated domain automatically; tcp services stay on the private network.

After deployment the services are ordinary services: rename them, change resources, add domains, delete them individually. Service.templateId remembers where a service came from.

CodeWhat
postgres, mysql, redis, mongodbdatabases with volumes and connection strings
pgvector, postgis, timescaledb, clickhouse, qdrant, meilisearchspecialised stores
n8n, windmill, node-red, temporalautomation and workflows
plausible, umami, matomo, uptime-kuma, grafana, prometheusanalytics and monitoring
ghost, wordpress, strapi, directus, outline, docmostcontent
nextjs, nuxt, sveltekit, django, rails, laravel, fastapi, go-gin, spring-bootframework starters from repositories
minio, rustfs, seaweedfsS3-compatible storage
ollama, open-webui, litellm, langfuse, flowiseAI

Publishing your own#

The catalog is a folder of JSON files in the Skiffly repository (packages/templates/catalog/*.json). Send a pull request with a new file or write to support@skiffly.dev; there is no in-dashboard publishing or revenue share yet.