Templates

Templates

One-click deployment of self-hosted applications

One-click deployment of popular self-hosted applications via OpenSelfServe (O2S). Like Railway but for your own sovereign infrastructure.


Overview

Templates provide instant deployment of open-source applications without manual configuration. Each template includes:

  • Pre-configured application stack
  • Automatic database provisioning
  • Environment variable setup
  • Persistent volume configuration
  • Health checks and monitoring
  • Backup schedules

Why Templates?

  • No setup hassle — Deploy in seconds, not hours
  • Best practices built-in — Security hardening, updates, monitoring
  • Sovereign by default — Runs on your Tasmanian infrastructure
  • Predictable costs — No surprise egress or API fees

Quick Start

Via O2S Portal

  1. Go to o2s.tasmanian.cloud
  2. Click "Templates"
  3. Browse or search for an app
  4. Click Deploy
  5. Configure settings (domain, admin password, etc.)
  6. Wait 30-60 seconds for provisioning
  7. Access via your VPN

Via CLI

# List available templates
tc templates list

# Deploy PostgreSQL
tc templates deploy postgres --name my-database

# Deploy with custom config
tc templates deploy n8n \
  --name my-workflows \
  --size standard-4vcpu-8gb \
  --env WEBHOOK_URL=https://n8n.mycompany.tas

# Check status
tc templates status my-workflows

# View logs
tc templates logs my-workflows

# Remove
tc templates remove my-workflows

Available Templates

Databases

TemplateDescriptionDefault Size
PostgreSQLOpen-source relational databasestandard-2vcpu-4gb
MySQLPopular SQL databasestandard-2vcpu-4gb
MongoDBDocument databasestandard-2vcpu-4gb
RedisIn-memory data storestandard-2vcpu-4gb
ClickHouseColumnar analytics DBstandard-4vcpu-8gb
InfluxDBTime-series databasestandard-2vcpu-4gb

Developer Tools

TemplateDescriptionDefault Size
GiteaSelf-hosted Git servicestandard-2vcpu-4gb
GitLab CEComplete DevOps platformstandard-4vcpu-8gb
Drone CIContainer-native CI/CDstandard-2vcpu-4gb
n8nWorkflow automationstandard-2vcpu-4gb
AirbyteData integrationstandard-4vcpu-8gb

Productivity

TemplateDescriptionDefault Size
PlaneOpen-source Linear alternativestandard-2vcpu-4gb
FocalboardProject management (Notion alternative)standard-2vcpu-4gb
OutlineTeam wiki & knowledge basestandard-2vcpu-4gb
BookStackDocumentation platformstandard-2vcpu-4gb
Wiki.jsModern wiki platformstandard-2vcpu-4gb

Communication

TemplateDescriptionDefault Size
MattermostTeam collaborationstandard-4vcpu-8gb
ZulipThreaded chatstandard-2vcpu-4gb
JitsiVideo conferencingstandard-4vcpu-8gb

Analytics

TemplateDescriptionDefault Size
PlausiblePrivacy-focused analyticsstandard-2vcpu-4gb
UmamiSimple analyticsstandard-2vcpu-4gb
MetabaseBusiness intelligencestandard-2vcpu-4gb

Monitoring

TemplateDescriptionDefault Size
Uptime KumaUptime monitoringstandard-2vcpu-4gb
GrafanaMetrics visualizationstandard-2vcpu-4gb
PrometheusMetrics collectionstandard-4vcpu-8gb

Template Configuration

Environment Variables

Most templates accept environment variables for customization:

tc templates deploy gitea \
  --name my-git \
  --env GITEA__server__ROOT_URL=https://git.mycompany.tas \
  --env GITEA__service__DISABLE_REGISTRATION=true

Common variables:

VariableDescription
ADMIN_USERDefault admin username
ADMIN_PASSWORDDefault admin password
DOMAINApplication domain
WEBHOOK_URLExternal webhook URL

Volumes

Templates automatically create persistent volumes:

# List volumes for a template
tc templates volumes my-database

# Resize volume
tc templates volume resize my-database --volume data --size 100GB

# Create backup
tc templates backup create my-database

Networking

Templates are deployed into your private network:

# Deploy into specific network
tc templates deploy postgres \
  --name prod-db \
  --network production

# Expose via VPN only (default)
tc templates deploy n8n \
  --name workflows \
  --access vpn

Example Deployments

Self-Hosted Git (Gitea)

# Deploy Gitea
tc templates deploy gitea --name git

# Get admin credentials
tc templates credentials git

# Output:
# URL: http://10.0.40.15:3000
# Username: gitea_admin
# Password: [auto-generated]

# Access via VPN
netbird up --setup-key YOUR_KEY
# Then visit http://10.0.40.15:3000

Workflow Automation (n8n)

# Deploy n8n with webhook support
tc templates deploy n8n \
  --name automation \
  --env N8N_HOST=automation.mycompany.tas \
  --env WEBHOOK_URL=https://automation.mycompany.tas

# Scale up for heavy workloads
tc templates scale automation --size standard-8vcpu-16gb

Analytics (Plausible)

# Deploy Plausible analytics
tc templates deploy plausible --name analytics

# Configure your sites in the admin panel
# Add tracking script to your websites

Custom Templates

Create your own templates for internal use:

Template Definition

Create a template.yaml:

name: my-custom-app
description: My internal application
version: 1.0.0

resources:
  cpu: 2
  memory: 4GB
  storage: 50GB

env:
  - name: APP_ENV
    value: production
  - name: DATABASE_URL
    from: postgres://postgres:5432/app

volumes:
  - name: data
    path: /app/data
    size: 50GB

healthcheck:
  path: /health
  port: 8080
  interval: 30s

Upload Template

tc templates upload --file ./template.yaml

Share Template

# Share with team
tc templates share my-custom-app --team engineering

# Make public
tc templates share my-custom-app --public

Updates

Templates include automatic update mechanisms:

Automatic Updates

Minor updates are applied automatically:

# Check update status
tc templates updates my-app

# View changelog
tc templates updates my-app --changelog

Manual Updates

# Update to latest version
tc templates update my-app

# Update to specific version
tc templates update my-app --version 2.1.0

# Rollback if issues
tc templates rollback my-app

Backups

Automatic Backups

Most templates include scheduled backups:

# View backup schedule
tc templates backup schedule my-database

# Modify schedule
tc templates backup schedule my-database --frequency daily --retention 7

Manual Backups

# Create backup
tc templates backup create my-app --name pre-migration

# List backups
tc templates backup list my-app

# Restore
tc templates backup restore my-app --backup pre-migration

# Download backup
tc templates backup download my-app --backup pre-migration --output ./backup.tar.gz

Monitoring

Built-in Metrics

All templates expose metrics:

# View resource usage
tc templates metrics my-app

# Get Prometheus endpoint
tc templates metrics my-app --format prometheus

Alerts

Configure alerts for your templates:

# Set up disk alert
tc templates alert create my-app \
  --metric disk_usage \
  --threshold 80 \
  --notify email:admin@company.tas

# Set up memory alert
tc templates alert create my-app \
  --metric memory_usage \
  --threshold 90 \
  --notify slack:#alerts

Troubleshooting

Deployment Failed

# Check logs
tc templates logs my-app

# Check events
tc templates events my-app

# Debug mode
tc templates deploy my-template --name debug --debug

App Not Responding

# Restart
tc templates restart my-app

# Check health
tc templates health my-app

# Shell access
tc templates exec my-app -- /bin/sh

Database Connection Issues

# Check if database is running
tc templates status my-app-db

# Verify connection string
tc templates env my-app

# Test connection
tc templates exec my-app -- psql $DATABASE_URL -c "SELECT 1"

Pricing

Template pricing = underlying VPS resources + small management fee:

ComponentPrice
VPS ResourcesStandard VPS pricing
Management Fee$5/month per template
Backups$0.10/GB/month
Egress (AU)FREE

Example: PostgreSQL on standard-2vcpu-4gb with 50GB storage:

  • VPS: $26/month
  • Management: $5/month
  • Total: $31/month

Comparison: Templates vs VPS

TemplatesVPS
SetupOne-clickManual
UpdatesAutomaticYou manage
BackupsBuilt-inConfigure yourself
MonitoringPre-configuredSet up yourself
FlexibilityLimited to templateFull control
Best forStandard appsCustom workloads

Contributing Templates

Submit new templates to the community:

  1. Fork the templates repository
  2. Add your template definition
  3. Submit a PR
  4. Templates are reviewed for security and quality