Sign inSign up

abstechnology/joomla-standard

By abstechnology

•Updated 2 months ago

Image
0

218

abstechnology/joomla-standard repository overview

⁠ABS Technology CMS powered by Joomla!

⁠Production-ready Joomla Docker solution

Joomla Version PHP Version MariaDB Version License


⁠Quick Start

curl -sSL https://raw.githubusercontent.com/abs-technology/joomla/main/docker-compose.yml > docker-compose.yml
curl -sSL https://raw.githubusercontent.com/abs-technology/joomla/main/env.example > .env
# Edit .env — set strong passwords (min 12 characters)
mkdir -p data/joomla data/joomla-backups post-init.d
chown -R 1000:1000 data/joomla data/joomla-backups
docker compose up -d

Or from this repository:

cp env.example .env
# Edit .env — set strong passwords (min 12 characters)
mkdir -p data/joomla data/joomla-backups post-init.d
chown -R 1000:1000 data/joomla data/joomla-backups
make up

Open http://localhost/administrator/⁠ (or http://<server-ip>/administrator/) and log in with credentials from .env.

Image: abstechnology/joomla-standard:6.1.2-r1


⁠Architecture

docker-compose.yml     ← MariaDB 12.3.2 + Joomla app
env.example            ← secrets & runtime knobs
data/joomla            ← bind mount → /var/www/html
data/joomla-backups    ← upgrade snapshots
post-init.d/           ← optional first-boot scripts
⁠Data volumes
Host pathContainer pathPurpose
./data/joomla/var/www/htmlJoomla site files
./data/joomla-backups/var/www/joomla-backupsUpgrade snapshots
./post-init.d/docker-entrypoint-init.dOptional one-shot init scripts

Host bind mounts should be owned by UID/GID 1000 so the container user can write site content.

Containers: abs-joomla (app) and abs-joomla-db (MariaDB) on network joomla_network. Ports: 80→8080, 443→8443.


⁠Environment variables

See env.example for the full list. Key variables:

VariableDefaultDescription
JOOMLA_USERNAMEadminAdministrator username
JOOMLA_PASSWORD(required)Admin password (min 12 chars)
JOOMLA_EMAIL—Admin email
JOOMLA_SITE_NAMEABS Technology Joomla CMSSite name
JOOMLA_HOSTlocalhostPublic hostname hint
JOOMLA_DATABASE_HOSTmariadbDB hostname (Compose service name)
JOOMLA_REVERSEPROXY / JOOMLA_SSLPROXYnoTrust proxy / TLS termination
JOOMLA_AUTO_DB_UPGRADEnoAuto-run DB upgrade after image bump
JOOMLA_BACKUP_DIR/var/www/joomla-backupsSnapshot location
JOOMLA_UPGRADE_RETENTION5Snapshots to retain
MARIADB_ROOT_PASSWORD(required)MariaDB root password
MARIADB_PASSWORD(required)App DB user password
PHP_MEMORY_LIMIT512MPHP memory limit
PHP_UPLOAD_MAX_FILESIZE / PHP_POST_MAX_SIZE256MUpload limits

⁠Production notes

  • Passwords — Replace every CHANGE_THIS_* placeholder before go-live. Generate with openssl rand -base64 32.
  • Reverse proxy — Prefer terminating TLS at Nginx/Traefik/CloudFlare/GCP LB. Set JOOMLA_REVERSEPROXY=yes and JOOMLA_SSLPROXY=yes. Container port 443 uses a self-signed cert for lab use only.
  • Backups — Back up ./data/joomla, ./data/joomla-backups, and the mariadb_data volume on a schedule. Test restores in staging.
  • Upgrades — Keep JOOMLA_AUTO_DB_UPGRADE=no until upgrades are validated in staging; image bumps snapshot DB + code before replacing files.
  • Secrets — Never commit .env. Keep file permissions restricted on the host.

⁠Make targets

TargetCommandDescription
Helpmake helpList available targets
Buildmake buildLocal image build
Startmake upCreate data dirs + docker compose up -d
Stopmake downStop containers (keep DB volume + Joomla data)
Removemake removeStop containers, delete MariaDB volume + data/joomla*
Logsmake logsFollow app logs
Shellmake shellShell into the app container

⁠Custom init scripts

Place files in host ./post-init.d/ (Compose mounts this at /docker-entrypoint-init.d):

  • *.sh — shell scripts
  • *.php — PHP scripts
  • *.sql / *.sql.gz — MariaDB imports

⁠License

Joomla! is licensed under the GNU General Public License version 2 or later (GPL-2.0+). See LICENSE⁠ and LICENSE-INFORMATION.md⁠.

Joomla!® is a registered trademark of Open Source Matters, Inc.

Tag summary

Content type

Image

Digest

sha256:f1f26d712…

Size

177.8 MB

Last updated

2 months ago

docker pull abstechnology/joomla-standard:6.1.2-r2