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 --featuredCategories: 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#
{
"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;tcpservices 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.
Popular templates#
| Code | What |
|---|---|
postgres, mysql, redis, mongodb | databases with volumes and connection strings |
pgvector, postgis, timescaledb, clickhouse, qdrant, meilisearch | specialised stores |
n8n, windmill, node-red, temporal | automation and workflows |
plausible, umami, matomo, uptime-kuma, grafana, prometheus | analytics and monitoring |
ghost, wordpress, strapi, directus, outline, docmost | content |
nextjs, nuxt, sveltekit, django, rails, laravel, fastapi, go-gin, spring-boot | framework starters from repositories |
minio, rustfs, seaweedfs | S3-compatible storage |
ollama, open-webui, litellm, langfuse, flowise | AI |
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.