Manifest files for building and deploying GLPI using containers with Docker Compose or Kubernetes.
- PHP-FPM:
php:8.4.13-fpm-alpine3.22 - Nginx:
nginxinc/nginx-unprivileged:1.29.1-alpine3.22-slim - GLPI PHP:
eftechcombr/glpi:php-fpm-11.0.2 - GLPI Nginx:
eftechcombr/glpi:nginx-11.0.2
Add the GLPI Helm chart repository:
helm repo add glpi https://<owner>.github.io/<repo>
helm repo updateReplace <owner> with the GitHub organization/user name and <repo> with the repository name.
Install GLPI using Helm:
helm install my-glpi glpi/glpiOr with custom values:
helm install my-glpi glpi/glpi -f custom-values.yamlhelm search repo glpi --versionshelm upgrade my-glpi glpi/glpihelm uninstall my-glpi- Clone this repository
- Set up environment variables:
cp docker/.env.example docker/.envusername: glpi
password: glpi
./docker/_env ---> please rename to /docker/.env
./kubernetes/glpi-configmap.yaml
./kubernetes/glpi-secrets.yaml
./kubernetes/mariadb-configmap.yaml
./kubernetes/mariadb-secret.yaml
This repository uses GitHub Actions to automatically validate, package, and publish the GLPI Helm chart to a chart repository hosted on GitHub Pages.
To publish a new version of the Helm chart:
- Navigate to the Actions tab in the GitHub repository
- Select the Helm Chart CI/CD workflow from the left sidebar
- Click the Run workflow button (top right)
- Configure the workflow parameters:
- Use workflow from: Select the branch (typically
main) - Publish chart to repository: Check this box to publish the chart, or uncheck to only validate and package
- Use workflow from: Select the branch (typically
- Click Run workflow to start the execution
The publish input parameter controls whether the chart is published to the repository:
- Checked (true): The workflow will lint, package, and publish the chart to GitHub Pages
- Unchecked (false): The workflow will only lint and package the chart for validation purposes (useful for testing changes before publishing)
The automated workflow performs the following steps:
- Lint: Validates the Helm chart for syntax errors and best practices
- Package: Creates a versioned
.tgzarchive of the chart - Publish (if enabled): Updates the chart repository index and deploys to GitHub Pages
Before the workflow can publish charts, GitHub Pages must be configured in your repository. Follow these steps to enable GitHub Pages:
- Navigate to your repository on GitHub
- Click on Settings (top navigation bar)
- Scroll down to the Pages section in the left sidebar
- Under Source, select:
- Deploy from a branch
- Branch:
gh-pages - Folder:
/ (root)
- Click Save
Note: The gh-pages branch will be created automatically by the workflow on the first successful publish. If you haven't run the workflow yet, you can proceed with the setup - the branch will appear after the first workflow execution with publishing enabled.
After running the workflow for the first time with publishing enabled, verify that GitHub Pages is working correctly:
- Go to Settings → Pages in your repository
- You should see a message: "Your site is live at
https://<owner>.github.io/<repo>/" - Click the URL to verify the site is accessible
- Navigate to
https://<owner>.github.io/<repo>/index.yamlto confirm the chart repository index is available - The
index.yamlfile should contain metadata about your published chart(s)
Once GitHub Pages is properly configured and the workflow has run successfully:
- The
gh-pagesbranch will exist in your repository - The branch will contain:
index.yaml- Chart repository index fileglpi-{version}.tgz- Packaged chart archive(s)
- The chart repository will be accessible at:
https://<owner>.github.io/<repo>/ - You can add the repository using:
helm repo add glpi https://<owner>.github.io/<repo>
Before running the workflow with publishing enabled for the first time:
- GitHub Pages is enabled in repository Settings → Pages
- Source is set to deploy from
gh-pagesbranch - Workflow permissions include
contents: write,pages: write, andid-token: write - Chart version in
kubernetes/glpi/Chart.yamlis set correctly - You have tested the workflow with
publish: falseto ensure linting and packaging work
After the first successful publish:
- Verify
gh-pagesbranch was created - Check that
index.yamlexists athttps://<owner>.github.io/<repo>/index.yaml - Confirm the chart is listed:
helm search repo glpi(after adding the repo) - Test chart installation:
helm install test-glpi glpi/glpi --dry-run
Problem: After running the workflow, the chart is not available via helm repo add
Solutions:
- Verify that GitHub Pages is enabled in repository Settings → Pages
- Ensure the
gh-pagesbranch exists and containsindex.yaml - Check that the workflow completed successfully without errors
- Wait a few minutes for GitHub Pages to deploy the changes
- Verify the repository URL is correct:
https://<owner>.github.io/<repo>
Problem: The workflow fails with linting errors
Solutions:
- Review the error messages in the workflow logs
- Run
helm lint kubernetes/glpilocally to see detailed errors - Fix any syntax errors or missing required fields in Chart.yaml or template files
- Ensure all template files render correctly with default values
Problem: The workflow fails when trying to publish to GitHub Pages
Solutions:
- Verify that the workflow has the required permissions (contents: write, pages: write, id-token: write)
- Check that GitHub Pages is configured to deploy from the
gh-pagesbranch - Ensure the
GITHUB_TOKENhas sufficient permissions - Review the workflow logs for specific error messages
Problem: Attempting to publish a chart version that already exists
Solutions:
- Update the
versionfield inkubernetes/glpi/Chart.yamlto a new version number - Follow semantic versioning (MAJOR.MINOR.PATCH)
- Commit the version change before running the workflow
Problem: helm repo add command fails or times out
Solutions:
- Verify the repository URL is correct and accessible in a browser
- Check that
index.yamlexists at the repository root URL - Ensure GitHub Pages is enabled and deployed
- Try removing and re-adding the repository:
helm repo remove glpi && helm repo add glpi <url>
Problem: helm install fails after adding the repository
Solutions:
- Verify the chart name and version:
helm search repo glpi - Check that all required values are provided (review
values.yaml) - Run
helm install --dry-run --debugto see what would be installed - Review the error messages for missing dependencies or configuration issues
GLPI stands for Gestionnaire Libre de Parc Informatique is a Free Asset and IT Management Software package, that provides ITIL Service Desk features, licenses tracking and software auditing.