Skip to content

Improve documentation: comprehensive README and technical architecture reference #277

@rafaelfariasbsb

Description

@rafaelfariasbsb

Context

The current README covers the essentials for getting started, which is great. This proposal suggests expanding it with additional sections that would help users get the most out of the Docker image without needing to read the source code.

Proposal

1. Expand README.md

Add the following sections to complement the existing content:

  • Image Architecture — Overview of the multi-stage build, entrypoint flow, included PHP extensions, and security features
  • Environment Variables — Complete reference table with all supported variables, defaults, and descriptions (database, installation control, cron, paths)
  • Volumes and Data Persistence — Full directory tree under /var/glpi, named volumes vs bind mounts guidance, and GLPI 10.x marketplace path notes
  • Default PHP Settings — Table of the production settings applied by the image
  • Custom Apache Configuration — How to mount and enable custom Apache configs
  • Managing Cron Tasks — Dedicated cron container pattern for horizontal scaling and Kubernetes deployments
  • Reverse Proxy and HTTPS — Examples with Nginx and Traefik for TLS termination
  • Upgrading — Automatic and manual upgrade procedures with backup steps
  • Multi-Architecture Support — Available platforms, registries, and tag scheme
  • Troubleshooting — Common scenarios: logs, database connection, permissions, PHP config, console commands, supported DB engines

2. Add docs/architecture.md

A technical reference document for contributors and advanced users, covering:

  • Dockerfile stages breakdown (downloader, builder, application)
  • Entrypoint scripts analysis (init-volumes, forward-logs, wait-for-db, install)
  • Supervisor configuration and the custom jobs extension point
  • Scheduler system internals (interval and daily modes)
  • Log forwarding mechanism
  • Apache and PHP configuration details
  • Security model (non-root execution, setcap, hardened headers, session cookies)
  • Complete volume layout with file descriptions
  • Full environment variable and build argument reference with examples
  • CI/CD pipeline architecture
  • Supporting images catalog (GitHub Actions, databases, dev environment)

Motivation

Several issues in this repository suggest that expanded documentation could help users find answers more quickly:

Having this information readily available in the docs would make the project even more accessible and reduce the need for users to dig into the source code.

I'm happy to submit a PR with these changes if the maintainers are interested.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions