Files
codeandClaude Fable 5 8ab413804a normalize all stacks to conventions
- VOL_PATH always defaults to /data; vscode/opencode VOL_PROJECTS nests it
- TZ defaults to America/Vancouver (was UTC in etherpad, ntfy, redis)
- compose section order fixed (volumes before environment, command after networks)
- all default secrets are the literal ChangeThisPassword (grep-friendly,
  users must change them); removed a real key from ollama sample.env
- sample.env synced with compose: missing vars added with defaults, dead vars removed
- invoiceninja_dev/openarchiver_dev: app services had no environment block,
  wired all sample.env vars through so the stacks actually work
- opencode: sample.env OLLAMA_HOST renamed to OLLAMA_HOST_URL to match compose
- TZ values unquoted consistently

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 06:24:54 +00:00
..
2026-07-16 06:24:54 +00:00

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