Files

3.6 KiB
Raw Permalink Blame History

Joomla

Overview

Joomla is a self-hosted content management system (CMS) for building websites and web applications. This Docker Compose stack deploys Joomla with a MariaDB database, persistent storage, and an external reverse proxy.

Project Details

Getting Started

  1. Copy sample.env to .env and edit the values (especially passwords)
  2. Start the stack: docker compose up -d
  3. Open http://localhost:8080 (or your proxy domain) in your browser
  4. If JOOMLA_ADMIN_* env vars are set, the installer is skipped and an admin user is created automatically. Otherwise, follow the web setup wizard.

Environment Variable Notes

Compose

  • VOL_PATH base path for persistent data volumes (default: /data)
  • JOOMLA_PORT host port for Joomla (default: 8080)
  • JOOMLA_IMAGE Joomla image tag (default: joomla:5)
  • JOOMLA_RESTART container restart policy (default: unless-stopped)

Database

  • MARIADB_IMAGE MariaDB image tag (default: mariadb:10.11)
  • MARIADB_ROOT_PASSWORD MariaDB root password (required)
  • JOOMLA_DB_NAME database name (default: joomla)
  • JOOMLA_DB_USER database user (default: joomla)
  • JOOMLA_DB_PASSWORD database user password (required)

Joomla Auto-Deployment

  • JOOMLA_SITE_NAME site name displayed in Joomla
  • JOOMLA_ADMIN_USER full name of the admin user
  • JOOMLA_ADMIN_USERNAME admin login username (default: admin)
  • JOOMLA_ADMIN_PASSWORD admin password (required, min 12 chars)
  • JOOMLA_ADMIN_EMAIL admin email address

Volume Notes

  • ${VOL_PATH:-/data}/joomla/db MariaDB data files
  • ${VOL_PATH:-/data}/joomla/html Joomla web root (uploaded files, extensions, custom templates)

Network Notes

Requires the external proxy network for reverse proxy access.

Docker Run

docker run -d \
  --name joomla-mariadb \
  -e MARIADB_DATABASE=joomla \
  -e MARIADB_USER=joomla \
  -e MARIADB_PASSWORD=ChangeThisPassword \
  -e MARIADB_ROOT_PASSWORD=ChangeThisRootPassword \
  -v /data/joomla/db:/var/lib/mysql \
  mariadb:10.11
docker run -d \
  --name joomla \
  -p 8080:80 \
  -e JOOMLA_DB_HOST=mariadb \
  -e JOOMLA_DB_USER=joomla \
  -e JOOMLA_DB_PASSWORD=ChangeThisPassword \
  -e JOOMLA_DB_NAME=joomla \
  -e JOOMLA_SITE_NAME="My Joomla Site" \
  -e JOOMLA_ADMIN_USER="Joomla Admin" \
  -e JOOMLA_ADMIN_USERNAME=admin \
  -e JOOMLA_ADMIN_PASSWORD=ChangeThisPassword \
  -e JOOMLA_ADMIN_EMAIL=admin@example.com \
  -v /data/joomla/html:/var/www/html \
  --link joomla-mariadb:mariadb \
  joomla:5

Additional Notes / Gotchas

  • Setting JOOMLA_ADMIN_* env vars enables auto-deployment and skips the browser setup wizard. Remove them to run the wizard manually.
  • Admin password must be at least 12 characters long.
  • The html volume persists uploaded files and installed extensions. Back it up before major Joomla upgrades.
  • For SMTP configuration, add JOOMLA_SMTP_HOST and JOOMLA_SMTP_HOST_PORT environment variables.

Dockhand Stack, Deploy from Git

Cookbooks Repository stackname: joomla Compose file path: joomla_dev/compose.yaml Additional env file (optional): joomla_dev/sample.env

Then "Load" joomla_dev/sample.env into the Environmental variables in dockhand

Create the Stack