GithubHelp home page GithubHelp logo

docker-pluxml's Introduction

PluXml logo docker-pluxml

A lightweight blog engine powered by PHP and Xml.

RSS commits build

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).

Supported tags and respective Dockerfile links

Tags:

Architectures:

  • x86_64
  • arm64

Quick start

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

Features

  • Latest image currently based on php:8.2-apache
  • Plugins: plxtoolbar (unofficial wysiwyg editor for PluXml) and plxmycontact (contact form)
  • Handles upgrades

Development

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

Upgrades

Pull the new image then restart your containers. The image uses a docker-entrypoint.sh script that handles data upgrades.

Configuration

List of (optionnal) environment variables:

  • PHP_TIMEZONE: Set date.timezone for PHP (default: none/UTC)
  • PHP_UPLOAD_MAXSIZE: Set upload_max_filesize (default: 2M) and post_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:

FAQ

How do I delete install.php ?

Restart the container. If install.php is still present, open an issue.

What about HTTPS support ?

I will not implement https support. Use nginx or haproxy as a reverse proxy and SSL offloader.

Licensing

Since PluXml is under GNU General Public License, docker-pluxml too. You can find full text of the license in the LICENSE file.

docker-pluxml's People

Contributors

src386 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

kwadx

docker-pluxml's Issues

Php date.timezone

Php ignores system timezone. The date.timezone parameter must be set in the php.ini or equivalent.

Image upload fails

Warning: move_uploaded_file(../../data/medias/1/k3s_swarm_ram_vide.jpg): failed to open stream: No such file or directory in /var/www/html/core/lib/class.plx.medias.php on line 304

Warning: move_uploaded_file(): Unable to move '/tmp/phpS7uprl' to '../../data/medias/1/k3s_swarm_ram_vide.jpg' in /var/www/html/core/lib/class.plx.medias.php on line 304

Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/core/lib/class.plx.medias.php:304) in /var/www/html/core/admin/medias.php on line 62

Use a builder

It is possible to save some MB for the runtime image.

Log X-Forwarded-For IP

Docker-pluxml will log the IP of the reverse-proxy / load-balancer instead of the real IP of the client. This should be fixed with apache log configuration.

SMTP support

Add SMTP support to send e-mail (contact form).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.