feat: add Joomla template (#891)

* feat: add Joomla template

* docs: clarify Joomla admin credential fields

---------

Co-authored-by: Mauricio Siu <siumauricio@icloud.com>
This commit is contained in:
Abdelatif Djeddou
2026-07-07 23:43:07 +02:00
committed by GitHub
parent 1e99d46afe
commit 8a52825167
4 changed files with 118 additions and 0 deletions

View File

@@ -0,0 +1,44 @@
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:

View File

@@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 128 128" role="img" aria-label="Joomla">
<rect width="128" height="128" rx="24" fill="#1a3867"/>
<path fill="#fff" d="M61 29a10 10 0 0 1 16-8l10 10-9 9-9-9a3 3 0 0 0-5 2v16H50V33a17 17 0 0 1 11-4Zm38 32a10 10 0 0 1 8 16L97 87l-9-9 9-9a3 3 0 0 0-2-5H79V50h16a17 17 0 0 1 4 11ZM67 99a10 10 0 0 1-16 8L41 97l9-9 9 9a3 3 0 0 0 5-2V79h14v16a17 17 0 0 1-11 4ZM29 67a10 10 0 0 1-8-16l10-10 9 9-9 9a3 3 0 0 0 2 5h16v14H33a17 17 0 0 1-4-11Z"/>
<rect x="51" y="51" width="26" height="26" rx="6" fill="#f9a03f"/>
</svg>

After

Width:  |  Height:  |  Size: 568 B

View File

@@ -0,0 +1,51 @@
[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}"

View File

@@ -3588,6 +3588,24 @@
"open-source"
]
},
{
"id": "joomla",
"name": "Joomla",
"version": "6.1.0-apache",
"description": "Joomla is a flexible open-source content management system for building websites, portals, and online applications.",
"logo": "joomla.svg",
"links": {
"github": "https://github.com/joomla/joomla-cms",
"website": "https://www.joomla.org/",
"docs": "https://manual.joomla.org/"
},
"tags": [
"cms",
"website",
"php",
"mariadb"
]
},
{
"id": "joplin-server",
"name": "Joplin Server",