A lightweight blog engine powered by PHP and Xml.
PluXml is a lightweight, easy to use opensource CMS/Blog-engine that requires no database. It is portable and can be installed in a standard php web hosting solution. Static pages, tags, media, rss, user management, plugins, url rewriting are supported. It is available in 11 languages.
You can find out more about PluXml features on the project's website (french).
Tags:
5.8
,5.8.9
,latest
(5.8/Dockerfile)
Architectures:
x86_64
arm64
Pull the image and fire up a PluXml container:
docker pull src386/docker-pluxml
docker run -p 80:80 \
-v data:/var/www/html/data \
-d src386/docker-pluxml:latest
It is recommend to use a VOLUME for /var/www/html/data (persistent data).
Or, using docker-compose (recommended):
version: '3'
services:
pluxml:
image: src386/docker-pluxml:latest
ports:
- "127.0.0.1:80:80"
volumes:
- data:/var/www/html/data
volumes:
data:
Then fire up a PluXml container:
docker-compose up -d
- Latest image currently based on php:8.2-apache
- Plugins: plxtoolbar (unofficial wysiwyg editor for PluXml) and plxmycontact (contact form)
- Handles upgrades
For example if you want to build the 5.8 image:
git clone https://github.com/src386/docker-pluxml
cd docker-pluxml/5.8 && docker build -t docker-pluxml:5.8 .
Or you may want to use the docker-compose.yml file:
git clone https://github.com/src386/docker-pluxml
cd docker-pluxml/5.8 && docker-compose build
Pull the new image then restart your containers.
The image uses a docker-entrypoint.sh
script that handles data upgrades.
List of (optionnal) environment variables:
- PHP_TIMEZONE: Set
date.timezone
for PHP (default: none/UTC) - PHP_UPLOAD_MAXSIZE: Set
upload_max_filesize
(default: 2M) andpost_max_size
- PHP_SMTP_HOST: ip or hostname
- PHP_SMTP_PORT: (default: 25)
- PHP_SMTP_USER: (default: blank)
- PHP_SMTP_PASSWORD: (default: blank)
- PHP_SMTP_USE_TLS: set to yes to use TLS connnection (default: none)
- ENABLE_REMOTEIP: set to true to log client real IP / X-Forwarded-For when using a load-balancer/reverse-proxy. Please consider reading the mod_remoteip documentation to understand how proxies are trusted. In order to easily work in a Docker container, mod_remoteip will trust Private IPv4 address spaces.
Full example:
docker run \
-p 80:80 \
-v /etc/localtime:/etc/localtime:ro \
-v data:/var/www/html/data \
-e PHP_TIMEZONE=Europe/Paris \
-e PHP_UPLOAD_MAXSIZE=8M \
-e PHP_SMTP_HOST=1.2.3.4 \
-e PHP_SMTP_PORT=25 \
-e PHP_SMTP_USER=john \
-e PHP_SMTP_PASSWORD=secret \
-e PHP_SMTP_USE_TLS=yes \
-e ENABLE_REMOTEIP=true \
-d src386/docker-pluxml:latest
Or, using docker-compose:
version: '3'
services:
pluxml:
image: src386/docker-pluxml:latest
ports:
- "127.0.0.1:80:80"
volumes:
- /etc/localtime:/etc/localtime:ro
- data:/var/www/html/data
environment:
- PHP_TIMEZONE=Europe/Paris
- PHP_UPLOAD_MAXSIZE=8M
- PHP_SMTP_HOST=1.2.3.4
- PHP_SMTP_PORT=25
- PHP_SMTP_USER=john
- PHP_SMTP_PASSWORD=secret
- PHP_SMTP_USE_TLS=yes
- ENABLE_REMOTEIP=true
volumes:
data:
Restart the container. If install.php
is still present, open an issue.
I will not implement https support. Use nginx or haproxy as a reverse proxy and SSL offloader.
Since PluXml is under GNU General Public License, docker-pluxml too. You can find full text of the license in the LICENSE file.