Files

101 lines
3.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
- **Project Repository:** [Joomla](https://www.joomla.org)
- **Container Image:** [Docker Hub](https://hub.docker.com/_/joomla)
- **Compose Example:** [Official Compose](https://hub.docker.com/_/joomla)
- **Documentation:** [Joomla Docs](https://docs.joomla.org)
- **Reverse Proxy Port:** `80`
## 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
```bash
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
```
```bash
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