Templates
Deploy pre-configured apps with one click.
Available Templates
Databases
| Template | Description | Default Port |
|---|---|---|
| PostgreSQL | Relational database | 5432 |
| MySQL | Popular SQL database | 3306 |
| MariaDB | MySQL-compatible | 3306 |
| MongoDB | Document database | 27017 |
| Redis | In-memory cache | 6379 |
Database Admin
| Template | Description | Default Port |
|---|---|---|
| pgAdmin | PostgreSQL admin UI | 80 |
| phpMyAdmin | MySQL/MariaDB admin | 80 |
| Adminer | Universal DB admin | 8080 |
| RedisInsight | Redis GUI | 8001 |
Web Servers
| Template | Description | Default Port |
|---|---|---|
| Nginx | Static file server | 80 |
| Apache | HTTP server | 80 |
| Caddy | Modern web server | 80 |
CMS
| Template | Description | Default Port |
|---|---|---|
| WordPress | Blog/CMS platform | 80 |
| Ghost | Modern publishing | 2368 |
| Strapi | Headless CMS | 1337 |
Development Tools
| Template | Description | Default Port |
|---|---|---|
| Gitea | Git server | 3000 |
| Code Server | VS Code in browser | 8080 |
| Portainer | Container management | 9000 |
| n8n | Workflow automation | 5678 |
Monitoring
| Template | Description | Default Port |
|---|---|---|
| Uptime Kuma | Status monitoring | 3001 |
| Grafana | Metrics dashboard | 3000 |
| Prometheus | Metrics collection | 9090 |
Storage
| Template | Description | Default Port |
|---|---|---|
| MinIO | S3-compatible storage | 9000 |
| File Browser | Web file manager | 80 |
Using Templates
Via Dashboard
- Open Basepod dashboard
- Go to Templates
- Click on a template
- Enter app name
- Click Deploy
Via CLI
bash
# List templates
bp templates
# Deploy from template
bp deploy mydb --template postgresTemplate Configuration
Each template includes sensible defaults. You can customize:
- Name: Your app name (becomes subdomain)
- Environment Variables: Pre-filled with defaults
- Volumes: Persistent storage paths
Example: PostgreSQL
Default environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: (generated)
POSTGRES_DB: postgresDefault volume:
/var/lib/postgresql/dataExample: WordPress
Default environment:
WORDPRESS_DB_HOST: (your-db-container)
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: (generated)
WORDPRESS_DB_NAME: wordpressConnecting Apps
Templates that need databases can connect via internal networking.
- Deploy a database (e.g., PostgreSQL)
- Deploy your app
- Use the internal hostname:
basepod-postgres:5432
Example WordPress + MySQL:
bash
# Deploy MySQL
bp deploy mydb --template mysql
# Deploy WordPress
bp deploy myblog --template wordpress
# In WordPress config, use:
# DB_HOST=basepod-mydb:3306Customizing Templates
Create your own templates by forking existing ones:
- Deploy a template
- Configure as needed
- Export configuration
- Save as custom template
Or create a basepod.yaml with your configuration:
yaml
name: my-custom-app
image: myimage:latest
port: 8080
env:
MY_VAR: value
volumes:
- data:/app/data