Skip to content

Templates

Deploy pre-configured apps with one click.

Available Templates

Databases

TemplateDescriptionDefault Port
PostgreSQLRelational database5432
MySQLPopular SQL database3306
MariaDBMySQL-compatible3306
MongoDBDocument database27017
RedisIn-memory cache6379

Database Admin

TemplateDescriptionDefault Port
pgAdminPostgreSQL admin UI80
phpMyAdminMySQL/MariaDB admin80
AdminerUniversal DB admin8080
RedisInsightRedis GUI8001

Web Servers

TemplateDescriptionDefault Port
NginxStatic file server80
ApacheHTTP server80
CaddyModern web server80

CMS

TemplateDescriptionDefault Port
WordPressBlog/CMS platform80
GhostModern publishing2368
StrapiHeadless CMS1337

Development Tools

TemplateDescriptionDefault Port
GiteaGit server3000
Code ServerVS Code in browser8080
PortainerContainer management9000
n8nWorkflow automation5678

Monitoring

TemplateDescriptionDefault Port
Uptime KumaStatus monitoring3001
GrafanaMetrics dashboard3000
PrometheusMetrics collection9090

Storage

TemplateDescriptionDefault Port
MinIOS3-compatible storage9000
File BrowserWeb file manager80

Using Templates

Via Dashboard

  1. Open Basepod dashboard
  2. Go to Templates
  3. Click on a template
  4. Enter app name
  5. Click Deploy

Via CLI

bash
# List templates
bp templates

# Deploy from template
bp deploy mydb --template postgres

Template 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: postgres

Default volume:

/var/lib/postgresql/data

Example: WordPress

Default environment:

WORDPRESS_DB_HOST: (your-db-container)
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: (generated)
WORDPRESS_DB_NAME: wordpress

Connecting Apps

Templates that need databases can connect via internal networking.

  1. Deploy a database (e.g., PostgreSQL)
  2. Deploy your app
  3. 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:3306

Customizing Templates

Create your own templates by forking existing ones:

  1. Deploy a template
  2. Configure as needed
  3. Export configuration
  4. 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

Released under the MIT License.