Dokploy

Joomla

Joomla is a flexible open-source content management system for building websites, portals, and online applications.

Joomla logo

Configuration

version: "3.8"

services:
  joomla:
    image: joomla:6.1.0-apache
    restart: unless-stopped
    depends_on:
      joomla-db:
        condition: service_healthy
    expose:
      - "80"
    environment:
      JOOMLA_DB_HOST: joomla-db
      JOOMLA_DB_USER: ${JOOMLA_DB_USER}
      JOOMLA_DB_PASSWORD: ${JOOMLA_DB_PASSWORD}
      JOOMLA_DB_NAME: ${JOOMLA_DB_NAME}
      JOOMLA_SITE_NAME: ${JOOMLA_SITE_NAME}
      JOOMLA_ADMIN_USER: ${JOOMLA_ADMIN_USER}
      JOOMLA_ADMIN_USERNAME: ${JOOMLA_ADMIN_USERNAME}
      JOOMLA_ADMIN_PASSWORD: ${JOOMLA_ADMIN_PASSWORD}
      JOOMLA_ADMIN_EMAIL: ${JOOMLA_ADMIN_EMAIL}
    volumes:
      - joomla-data:/var/www/html

  joomla-db:
    image: mariadb:11.4
    restart: unless-stopped
    environment:
      MARIADB_DATABASE: ${JOOMLA_DB_NAME}
      MARIADB_USER: ${JOOMLA_DB_USER}
      MARIADB_PASSWORD: ${JOOMLA_DB_PASSWORD}
      MARIADB_RANDOM_ROOT_PASSWORD: "1"
    volumes:
      - joomla-db:/var/lib/mysql
    healthcheck:
      test: ["CMD-SHELL", "healthcheck.sh --connect --innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s

volumes:
  joomla-data:
  joomla-db:
[variables]
main_domain = "${domain}"
site_name = "Joomla"
admin_name = "Joomla Administrator"
admin_username = "${username}"
admin_password = "${password:24}"
admin_email = "${email}"
db_user = "joomla"
db_password = "${password:32}"
db_name = "joomla"

[[config.domains]]
serviceName = "joomla"
port = 80
host = "${main_domain}"
path = "/"

[[config.mounts]]
filePath = "README.md"
content = """# Joomla

This template deploys Joomla CMS with MariaDB using the official Joomla Apache image.

## Access

- URL: `http://${main_domain}`
- Administrator username: the configured `admin_username` value
- Administrator password: the generated `admin_password` value
- Administrator email: the configured `admin_email` value

The template uses Joomla's auto-deployment environment variables so the site and administrator account are initialized on first start.

## Storage

The template creates persistent volumes for:

- Joomla application files at `/var/www/html`
- MariaDB data at `/var/lib/mysql`

Back up both volumes together before upgrades or migrations.
"""

[config.env]
JOOMLA_SITE_NAME = "${site_name}"
JOOMLA_ADMIN_USER = "${admin_name}"
JOOMLA_ADMIN_USERNAME = "${admin_username}"
JOOMLA_ADMIN_PASSWORD = "${admin_password}"
JOOMLA_ADMIN_EMAIL = "${admin_email}"
JOOMLA_DB_USER = "${db_user}"
JOOMLA_DB_PASSWORD = "${db_password}"
JOOMLA_DB_NAME = "${db_name}"

Base64

To import this template in Dokploy: create a Compose service → AdvancedBase64 import and paste the content below:

ewogICJjb21wb3NlIjogInZlcnNpb246IFwiMy44XCJcblxuc2VydmljZXM6XG4gIGpvb21sYTpcbiAgICBpbWFnZTogam9vbWxhOjYuMS4wLWFwYWNoZVxuICAgIHJlc3RhcnQ6IHVubGVzcy1zdG9wcGVkXG4gICAgZGVwZW5kc19vbjpcbiAgICAgIGpvb21sYS1kYjpcbiAgICAgICAgY29uZGl0aW9uOiBzZXJ2aWNlX2hlYWx0aHlcbiAgICBleHBvc2U6XG4gICAgICAtIFwiODBcIlxuICAgIGVudmlyb25tZW50OlxuICAgICAgSk9PTUxBX0RCX0hPU1Q6IGpvb21sYS1kYlxuICAgICAgSk9PTUxBX0RCX1VTRVI6ICR7Sk9PTUxBX0RCX1VTRVJ9XG4gICAgICBKT09NTEFfREJfUEFTU1dPUkQ6ICR7Sk9PTUxBX0RCX1BBU1NXT1JEfVxuICAgICAgSk9PTUxBX0RCX05BTUU6ICR7Sk9PTUxBX0RCX05BTUV9XG4gICAgICBKT09NTEFfU0lURV9OQU1FOiAke0pPT01MQV9TSVRFX05BTUV9XG4gICAgICBKT09NTEFfQURNSU5fVVNFUjogJHtKT09NTEFfQURNSU5fVVNFUn1cbiAgICAgIEpPT01MQV9BRE1JTl9VU0VSTkFNRTogJHtKT09NTEFfQURNSU5fVVNFUk5BTUV9XG4gICAgICBKT09NTEFfQURNSU5fUEFTU1dPUkQ6ICR7Sk9PTUxBX0FETUlOX1BBU1NXT1JEfVxuICAgICAgSk9PTUxBX0FETUlOX0VNQUlMOiAke0pPT01MQV9BRE1JTl9FTUFJTH1cbiAgICB2b2x1bWVzOlxuICAgICAgLSBqb29tbGEtZGF0YTovdmFyL3d3dy9odG1sXG5cbiAgam9vbWxhLWRiOlxuICAgIGltYWdlOiBtYXJpYWRiOjExLjRcbiAgICByZXN0YXJ0OiB1bmxlc3Mtc3RvcHBlZFxuICAgIGVudmlyb25tZW50OlxuICAgICAgTUFSSUFEQl9EQVRBQkFTRTogJHtKT09NTEFfREJfTkFNRX1cbiAgICAgIE1BUklBREJfVVNFUjogJHtKT09NTEFfREJfVVNFUn1cbiAgICAgIE1BUklBREJfUEFTU1dPUkQ6ICR7Sk9PTUxBX0RCX1BBU1NXT1JEfVxuICAgICAgTUFSSUFEQl9SQU5ET01fUk9PVF9QQVNTV09SRDogXCIxXCJcbiAgICB2b2x1bWVzOlxuICAgICAgLSBqb29tbGEtZGI6L3Zhci9saWIvbXlzcWxcbiAgICBoZWFsdGhjaGVjazpcbiAgICAgIHRlc3Q6IFtcIkNNRC1TSEVMTFwiLCBcImhlYWx0aGNoZWNrLnNoIC0tY29ubmVjdCAtLWlubm9kYl9pbml0aWFsaXplZFwiXVxuICAgICAgaW50ZXJ2YWw6IDEwc1xuICAgICAgdGltZW91dDogNXNcbiAgICAgIHJldHJpZXM6IDVcbiAgICAgIHN0YXJ0X3BlcmlvZDogMzBzXG5cbnZvbHVtZXM6XG4gIGpvb21sYS1kYXRhOlxuICBqb29tbGEtZGI6XG4iLAogICJjb25maWciOiAiW3ZhcmlhYmxlc11cbm1haW5fZG9tYWluID0gXCIke2RvbWFpbn1cIlxuc2l0ZV9uYW1lID0gXCJKb29tbGFcIlxuYWRtaW5fbmFtZSA9IFwiSm9vbWxhIEFkbWluaXN0cmF0b3JcIlxuYWRtaW5fdXNlcm5hbWUgPSBcIiR7dXNlcm5hbWV9XCJcbmFkbWluX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjI0fVwiXG5hZG1pbl9lbWFpbCA9IFwiJHtlbWFpbH1cIlxuZGJfdXNlciA9IFwiam9vbWxhXCJcbmRiX3Bhc3N3b3JkID0gXCIke3Bhc3N3b3JkOjMyfVwiXG5kYl9uYW1lID0gXCJqb29tbGFcIlxuXG5bW2NvbmZpZy5kb21haW5zXV1cbnNlcnZpY2VOYW1lID0gXCJqb29tbGFcIlxucG9ydCA9IDgwXG5ob3N0ID0gXCIke21haW5fZG9tYWlufVwiXG5wYXRoID0gXCIvXCJcblxuW1tjb25maWcubW91bnRzXV1cbmZpbGVQYXRoID0gXCJSRUFETUUubWRcIlxuY29udGVudCA9IFwiXCJcIiMgSm9vbWxhXG5cblRoaXMgdGVtcGxhdGUgZGVwbG95cyBKb29tbGEgQ01TIHdpdGggTWFyaWFEQiB1c2luZyB0aGUgb2ZmaWNpYWwgSm9vbWxhIEFwYWNoZSBpbWFnZS5cblxuIyMgQWNjZXNzXG5cbi0gVVJMOiBgaHR0cDovLyR7bWFpbl9kb21haW59YFxuLSBBZG1pbmlzdHJhdG9yIHVzZXJuYW1lOiB0aGUgY29uZmlndXJlZCBgYWRtaW5fdXNlcm5hbWVgIHZhbHVlXG4tIEFkbWluaXN0cmF0b3IgcGFzc3dvcmQ6IHRoZSBnZW5lcmF0ZWQgYGFkbWluX3Bhc3N3b3JkYCB2YWx1ZVxuLSBBZG1pbmlzdHJhdG9yIGVtYWlsOiB0aGUgY29uZmlndXJlZCBgYWRtaW5fZW1haWxgIHZhbHVlXG5cblRoZSB0ZW1wbGF0ZSB1c2VzIEpvb21sYSdzIGF1dG8tZGVwbG95bWVudCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgc28gdGhlIHNpdGUgYW5kIGFkbWluaXN0cmF0b3IgYWNjb3VudCBhcmUgaW5pdGlhbGl6ZWQgb24gZmlyc3Qgc3RhcnQuXG5cbiMjIFN0b3JhZ2VcblxuVGhlIHRlbXBsYXRlIGNyZWF0ZXMgcGVyc2lzdGVudCB2b2x1bWVzIGZvcjpcblxuLSBKb29tbGEgYXBwbGljYXRpb24gZmlsZXMgYXQgYC92YXIvd3d3L2h0bWxgXG4tIE1hcmlhREIgZGF0YSBhdCBgL3Zhci9saWIvbXlzcWxgXG5cbkJhY2sgdXAgYm90aCB2b2x1bWVzIHRvZ2V0aGVyIGJlZm9yZSB1cGdyYWRlcyBvciBtaWdyYXRpb25zLlxuXCJcIlwiXG5cbltjb25maWcuZW52XVxuSk9PTUxBX1NJVEVfTkFNRSA9IFwiJHtzaXRlX25hbWV9XCJcbkpPT01MQV9BRE1JTl9VU0VSID0gXCIke2FkbWluX25hbWV9XCJcbkpPT01MQV9BRE1JTl9VU0VSTkFNRSA9IFwiJHthZG1pbl91c2VybmFtZX1cIlxuSk9PTUxBX0FETUlOX1BBU1NXT1JEID0gXCIke2FkbWluX3Bhc3N3b3JkfVwiXG5KT09NTEFfQURNSU5fRU1BSUwgPSBcIiR7YWRtaW5fZW1haWx9XCJcbkpPT01MQV9EQl9VU0VSID0gXCIke2RiX3VzZXJ9XCJcbkpPT01MQV9EQl9QQVNTV09SRCA9IFwiJHtkYl9wYXNzd29yZH1cIlxuSk9PTUxBX0RCX05BTUUgPSBcIiR7ZGJfbmFtZX1cIlxuIgp9

Tags

cms, website, php, mariadb


Version: 6.1.0-apache

On this page