Back to Tutorials

Deploy from Compose Templates

Launch pre-built multi-service stacks from the Compose template library.

Prerequisites

  • Docker is running
  • Docker Compose is installed
  • For the full template library, a Pro subscription is required

Scenario 1: Deploy WordPress + MySQL + phpMyAdmin

  1. Click Compose in the sidebar
  2. Click Templates in the toolbar
  3. Browse the Web category
  4. Select WordPress + MySQL + phpMyAdmin
  5. The template details show:
    • Services: wordpress, mysql, phpmyadmin
    • Required Ports: 8080, 8081
    • Estimated Memory: 1GB
  6. Customize environment variables:
    • MYSQL_DATABASE: wordpress (default)
    • MYSQL_USER: wordpress (default)
    • MYSQL_PASSWORD: change from wordpress_pass to a strong password
    • MYSQL_ROOT_PASSWORD: change from root_pass to a strong password
  7. Click Deploy
  8. All three services start — WordPress at http://localhost:8080, phpMyAdmin at http://localhost:8081

Scenario 2: Deploy ELK Stack

  1. Compose → Templates → Monitoring category
  2. Select ELK Stack
  3. Services: elasticsearch, logstash, kibana
  4. Required Ports: 9200, 9300, 5044, 5000, 9600, 5601
  5. Estimated Memory: 4GB
  6. No customizable env vars for this template
  7. Click Deploy
  8. Access Kibana at http://localhost:5601, Elasticsearch at http://localhost:9200

Scenario 3: Deploy Node.js + MongoDB + Redis

  1. Compose → Templates → Development category
  2. Select Node.js + MongoDB + Redis
  3. Services: node-app, mongodb, redis, mongo-express
  4. Required Ports: 3000, 27017, 6379, 8081
  5. Estimated Memory: 1GB
  6. Customize:
    • MONGO_DATABASE: myapp (default)
    • MONGO_EXPRESS_USER: admin (default)
    • MONGO_EXPRESS_PASSWORD: change from admin_pass
  7. Click Deploy
  8. Access:
    • Node.js app: http://localhost:3000
    • Mongo Express: http://localhost:8081

Available Compose Templates

CategoryTemplates
WebWordPress+MySQL+phpMyAdmin, Ghost+MySQL, Nginx Reverse Proxy, Plausible Analytics, Supabase, Keycloak+PostgreSQL, Mattermost+PostgreSQL
DevelopmentNode.js+MongoDB+Redis, Python+PostgreSQL+Celery, Go+MySQL+RabbitMQ, MERN Stack, Laravel+MySQL+Redis, Django+PostgreSQL+Celery, Rust+PostgreSQL+Redis, Spring Boot+PostgreSQL+RabbitMQ
MonitoringPrometheus+Grafana, ELK Stack, Uptime Kuma+Grafana, Loki+Grafana+Promtail
DatabasesPostgreSQL+pgAdmin, MongoDB+Mongo Express, Redis+Redis Commander, ClickHouse+Tabix
MessagingRabbitMQ, Kafka Redpanda+UI
StorageMinIO S3, Gitea+PostgreSQL, Ollama+Open WebUI

What You'll See

  • The template picker shows categories with icons and service counts
  • Each template card displays the service list, required ports, and estimated memory
  • Customizable env vars are pre-filled with sensible defaults — secret fields show a lock icon
  • After deploying, the project appears in the Compose sidebar with all services listed

Tips

  • Check that the required ports are not already in use before deploying — Zenithal shows a warning if ports conflict
  • Secret passwords in templates use default values (e.g., wordpress_pass) — always change these before deploying
  • Templates deploy to a new directory under your chosen save location
  • The .env file is created automatically with your customized values
  • You can modify the generated docker-compose.yml after deployment by opening it in the Compose Builder

Related Tutorials