Needs
Needs are pre-configured infrastructure services that Holden manages alongside your app. Instead of manually setting up databases and caches, declare what your app needs and Holden handles the rest.
Each app gets its own isolated needs—there’s no sharing a database between apps. For shared databases, run a regular service on a shared network instead.
Available Services
Section titled “Available Services”- PostgreSQL - Relational database
- Valkey - Redis-compatible in-memory cache
- Garage - S3-compatible object storage
How It Works
Section titled “How It Works”When you declare a need in your holden.yml, Holden:
- Spins up the service container on your app’s network
- Generates secure, deterministic credentials
- Injects connection variables into your app’s environment
Basic Usage
Section titled “Basic Usage”Add a needs block to your app’s holden.yml:
services: web: image: myapp:latest domain: myapp.example.com env: DATABASE_URL: ${needs.postgres.url} REDIS_URL: ${needs.valkey.url}
needs: postgres: valkey:Deterministic Passwords
Section titled “Deterministic Passwords”Holden generates passwords deterministically from a seed, so they’re stable across redeploys and don’t need to be stored. See Security for details.