Templates
Pre-configured multi-service stacks that deploy databases and applications with one command
Templates are pre-configured multi-service stacks that deploy databases, applications, and supporting infrastructure in one command. Each template handles container images, ports, volumes, auto-generated credentials, and inter-service wiring automatically.
Seed database templates
Ink ships with four database templates, each provisioned with persistent storage, auto-generated credentials, and sensible defaults.
| Slug | Image | Port | Volume | Key env vars |
|---|---|---|---|---|
postgresql | postgres:17 | 5432 | /var/lib/postgresql/data | POSTGRES_USER, POSTGRES_PASSWORD (generated), POSTGRES_DB, DATABASE_URL |
redis | redis:7 | 6379 | /data | None (unexposed, no auth) |
mysql | mysql:8 | 3306 | /var/lib/mysql | MYSQL_ROOT_PASSWORD (generated), MYSQL_DATABASE, DATABASE_URL |
mongodb | mongo:7 | 27017 | /data/db | MONGO_INITDB_ROOT_USERNAME, MONGO_INITDB_ROOT_PASSWORD (generated), DATABASE_URL |
All database templates default to 0.5 vCPU and 512Mi memory with persistent volumes attached.
Community templates
Beyond the seed databases, 1,400+ community templates cover observability stacks (Grafana + Prometheus + Loki + Tempo), CMS platforms (Directus), API gateways (OpenClaw), AI/ML stacks, and more. Browse the full catalog at ml.ink/deploy.
Deploying templates
Search templates
The template_list tool searches and lists available templates. It requires no authentication.
template_list(search: "postgres")Deploy a template
The template_deploy tool deploys a template and returns connection info.
template_deploy(
"template": "postgresql",
"name": "my-db"
){
"serviceId": "svc_abc123",
"name": "my-db",
"status": "deploying",
"internalUrl": "my-db:5432",
"connectionString": "postgresql://ink:generated-password@my-db:5432/ink"
}# List all templates
ink template
# Search templates
ink template postgres
# View template details and variables
ink template info postgresql
# Deploy a template
ink template deploy postgresql --name my-db
# Deploy with variable overrides
ink template deploy postgresql --name my-db --var POSTGRES_USER=admin --var POSTGRES_DB=myappOne-click deploy from the project canvas or the template catalog at ml.ink/deploy.
Template features
Auto-generated credentials
Passwords and secrets are randomly generated at deploy time. The agent receives them as outputs — no manual password management required.
Persistent volumes
Every database template attaches a persistent volume at the appropriate data directory. Data survives container restarts and redeployments.
Internal networking
Services in the same project resolve each other by hostname. A PostgreSQL template deployed as my-db is reachable at my-db:5432 from any sibling service.
Configurable variables
Templates define required and optional variables with defaults. Override any variable at deploy time to customize the stack.
Connection strings
After deployment, template_deploy returns structured outputs including connection strings, internal URLs, and generated credentials — ready to pass as environment variables to dependent services.