Stack Templates
Browse and understand stack templates in the Hub catalog
Applications and Stacks
The Hub catalog is organized as Applications containing one or more Stacks.
- An Application is the top-level catalog entry (e.g., "Redmine", "Nextcloud"). It has a name, slug, description, icon, and category.
- A Stack is a deployment option for that application. Each application has at least one stack — usually a Single Service (one container). Some applications also offer a Compose Stack (multi-service
docker-compose.ymltemplate).
When browsing the catalog, you see applications. When installing or importing, you select which stack to use.
Browsing Templates
Navigate to Dashboard → Templates or the public Catalog page to browse stack templates. Templates are organized by category and include everything needed to deploy a containerized workload.
Search
Use the search bar to filter templates by name, description, or image name. Search updates results in real-time.
Category Grouping
Templates are grouped by category (e.g. "AI & Machine Learning", "Databases", "Monitoring"). Each category section shows a category name with icon, template count, and all templates in that category.
Template Cards
Each template card shows:
| Field | Description |
|---|---|
| Name | Template display name |
| Description | Short description of the workload |
| Image | Container image name and tag |
| CPU | CPU resource request |
| RAM | Memory resource request |
| GPU | GPU count (if applicable) |
| Badges | Featured, Public/Private, category |
Values like 100m (CPU) and 128Mi (RAM) use Kubernetes resource notation. See Understanding Resource Requirements for what these numbers mean.
Template Details
Click a template to see its full specification:
Tags
Colored badges showing template tags (e.g. ai, llm, gpu, database). Tags help identify template capabilities at a glance.
Metadata
| Field | Description |
|---|---|
| Kind | Workload type: deployment, job, or daemonset |
| Concurrent Jobs | Max parallel instances (for job workloads) |
| Min Tier | Minimum subscription tier required |
| Downloads | Number of times this template has been installed |
Static Environment Variables
Fixed key-value pairs set when the template is deployed:
OLLAMA_HOST = 0.0.0.0
LOG_LEVEL = infoConfigurable Environment Variables
Variables that operators can customize before deployment. Each shows:
- Variable name — The environment variable key
- Required — Whether the variable must be set (amber "required" badge) or is optional (blue "optional" badge)
- Default value — Pre-filled value if not overridden
- Description — What the variable controls
- Generate — Whether the installer can auto-generate this value (e.g. passwords, secret keys)
Example:
POSTGRES_PASSWORD (required, generate: password)
Database superuser password — auto-generated on install
POSTGRES_DB (optional, default: app)
Default database nameAuto-generated secrets
Some environment variables have a generate hint that tells the installer how to create a random value automatically. Supported strategies:
| Strategy | Output | Use for |
|---|---|---|
password | 18-byte alphanumeric | User-facing passwords |
hex16 | 16-byte hex string | Short tokens |
hex32 | 32-byte hex string | API keys |
hex64 | 64-byte hex string | Encryption keys, Rails secret keys |
base64 | 32-byte base64 string | Generic secrets |
uuid | UUID v4 | Unique identifiers |
When you install via the one-click installer, variables with generate hints are filled in automatically using openssl rand. You can disable this with --no-generate-secrets.
Ports
Container ports that the workload exposes:
3000/TCP
8080/TCPVolumes
Volume mounts for persistent data:
data → /var/lib/app/data
files → /usr/src/redmine/filesNetwork Requirements
Network types the target cluster must support (e.g. public, mesh, lan). See Networking.
Documentation
Markdown documentation included with the template — usage instructions, configuration examples, and tips.
Installing from the Catalog
The catalog offers two ways to run a template on your own server:
One-Click Installer (Docker Compose)
Click the Self-host with Docker button on any template detail page to open the install modal. It provides a one-line command:
curl -fsSL https://www.podwarden.com/api/v1/catalog/install/redmine/script | bashThe installer:
- Downloads a
.tar.gzbundle containingdocker-compose.yml,.env.example, and any config files - Extracts to your chosen directory (default:
/opt/<app-slug>/) - Copies
.env.exampleto.env - Auto-generates secrets for variables with
generatehints (passwords, keys) - Runs
docker compose up -d
Advanced options in the install modal:
| Option | Description |
|---|---|
| Stack selector | Choose between single service and compose stack (if multiple stacks exist) |
| Install directory | Override the default /opt/<app-slug>/ path |
| Auto-generate secrets | Toggle automatic secret generation (on by default) |
You can also click Download bundle manually to get the .tar.gz without running the script.
Prerequisites: Docker and Docker Compose must be installed on the target server.
Import to PodWarden Instance
If you run PodWarden for cluster management, you can import templates into your instance instead:
- Connect your PodWarden instance to Hub (see Connecting to Hub)
- In PodWarden, go to stacks → Import from Hub
- Browse the catalog and click Import on any template
- PodWarden creates a local stack with all template fields
- Deploy to any cluster from the deployments page
Template Visibility
What templates you see depends on your authentication:
| Auth Method | Visibility |
|---|---|
| No auth | Public templates in non-private categories |
| Signed in (admin) | All templates — public, private, all orgs |
| API key (org) | Public templates + org-owned + private categories with access grant |
Private Templates
Templates in private categories are only visible to organizations with an explicit access grant. Contact the Hub administrator to request access.