Plantillas
Servicios y stacks con un clic: 136 plantillas de bases de datos, colas, paneles, CMS y starters de frameworks, desplegables desde el panel, la CLI o `templateDeployV2`.
Una plantilla describe uno o más servicios (imagen o repositorio), sus variables (con secretos generados y referencias entre servicios), volúmenes, puertos y recursos. Desplegar una plantilla crea todo dentro de tu proyecto de forma atómica e inicia los primeros despliegues; si algo falla, no queda nada a medias.
Catálogo#
Explora en Plantillas en el panel o desde la terminal:
skiffly templates # todo
skiffly templates postgres # busca por nombre, descripción, etiquetas, imagen
skiffly templates --category databases
skiffly templates --featuredCategorías: starters, databases, dev-tools, ecommerce, cms, ai, automation, messaging, monitoring, analytics, storage, auth, other. Cada plantilla tiene un code (postgres, n8n, nextjs-prisma), un readme, la lista de variables que puedes definir y las que debes definir (requiredVariables), y notas posteriores al despliegue.
Desplegar una plantilla#
Lienzo del proyecto → Nuevo servicio → Plantilla, o Plantillas en la barra lateral → Desplegar. Se piden las variables obligatorias; todo lo demás tiene valores predeterminados o se genera.
Qué contiene una plantilla#
{
"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; se crean al desplegar y nunca se muestran en el catálogo.reference: se reescribe con los nombres de los servicios que realmente se crearon, así que dos plantillas de Postgres en un mismo proyecto no chocan.- Los servicios con
protocol: "http"reciben un dominio generado automáticamente; los serviciostcpse quedan en la red privada.
Después del despliegue, los servicios son servicios normales: renómbralos, cambia los recursos, agrega dominios, elimínalos de forma individual. Service.templateId recuerda de dónde vino un servicio.
Plantillas populares#
| Código | Qué es |
|---|---|
postgres, mysql, redis, mongodb | bases de datos con volúmenes y cadenas de conexión |
pgvector, postgis, timescaledb, clickhouse, qdrant, meilisearch | almacenes especializados |
n8n, windmill, node-red, temporal | automatización y flujos de trabajo |
plausible, umami, matomo, uptime-kuma, grafana, prometheus | analítica y monitoreo |
ghost, wordpress, strapi, directus, outline, docmost | contenido |
nextjs, nuxt, sveltekit, django, rails, laravel, fastapi, go-gin, spring-boot | starters de frameworks desde repositorios |
minio, rustfs, seaweedfs | almacenamiento compatible con S3 |
ollama, open-webui, litellm, langfuse, flowise | IA |
Publicar las tuyas#
El catálogo es una carpeta de archivos JSON en el repositorio de Skiffly (packages/templates/catalog/*.json). Envía un pull request con un archivo nuevo o escribe a support@skiffly.dev; todavía no hay publicación desde el panel ni reparto de ingresos.