Huge role refactoring/cleanup. Other commits will propably follow. Because some bugs will exist. Still important for longrun and also for auto docs/help/slideshow generation

This commit is contained in:
2025-07-08 23:43:13 +02:00
parent 6b87a049d4
commit 563d5fd528
1242 changed files with 2301 additions and 1355 deletions

View File

@@ -0,0 +1,5 @@
## delete all data
```bash
docker stop joomla_application_1; docker rm -f joomla_application_1; docker volume rm -f joomla-data;
docker stop joomla_database_1; docker rm -f joomla_database_1; docker volume rm -f joomla-database;
```

View File

@@ -0,0 +1,31 @@
# Joomla CMS
## Description
Elevate your website management with [Joomla](https://www.joomla.org/), a powerful content management system that fuses versatility with dynamic design. Experience a vibrant platform that inspires creativity and drives your digital presence to new, energetic heights.
## Overview
This role deploys Joomla using Docker, automating the installation and configuration of your Joomla instance. It integrates with an external PostgreSQL database and sets up an Nginx reverse proxy for secure access, streamlining website management through container orchestration and customizable Ansible variables.
For detailed administration procedures, please refer to the [Administration.md](./Administration.md) file.
## Features
- **Powerful Content Management:** Leverage Joomla's flexible system for dynamic website creation and management.
- **Containerized Deployment:** Benefit from Docker's efficiency to deploy and update your Joomla instance seamlessly.
- **Customizable Configuration:** Easily modify settings with environment variables and templated configuration files.
- **Integrated Database Support:** Utilize an external PostgreSQL database for robust data storage.
- **Nginx Reverse Proxy:** Ensure secure and efficient access to your Joomla instance.
## Further Resources
- [Joomla Official Website](https://www.joomla.org/)
## Credits
Developed and maintained by **Kevin Veen-Birkenbach**.
Learn more at [veen.world](https://www.veen.world).
Part of the [CyMaIS Project](https://github.com/kevinveenbirkenbach/cymais)
Licensed under [CyMaIS NonCommercial License (CNCL)](https://s.veen.world/cncl).

View File

@@ -0,0 +1,26 @@
---
galaxy_info:
author: "Kevin Veen-Birkenbach"
description: "Elevate your website management with Joomla, a powerful content management system that fuses versatility with dynamic design, inspiring creativity and driving your digital presence to new heights."
license: "CyMaIS NonCommercial License (CNCL)"
license_url: "https://s.veen.world/cncl"
company: |
Kevin Veen-Birkenbach
Consulting & Coaching Solutions
https://www.veen.world
galaxy_tags:
- joomla
- docker
- cms
- content management
- self-hosted
repository: https://s.veen.world/cymais
issue_tracker_url: https://s.veen.world/cymaisissues
documentation: https://s.veen.world/cymais
logo:
class: "fa-solid fa-sitemap"
run_after:
- web-app-matomo
- web-app-keycloak
- web-app-mailu
dependencies: []

View File

View File

@@ -0,0 +1,14 @@
---
- name: "include service-rdbms-central"
include_role:
name: service-rdbms-central
- name: "include role webserver-proxy-domain for {{application_id}}"
include_role:
name: webserver-proxy-domain
vars:
domain: "{{ domains | get_domain(application_id) }}"
http_port: "{{ ports.localhost.http[application_id] }}"
loop: "{{ domains }}"
loop_control:
loop_var: domain

View File

@@ -0,0 +1,15 @@
{% include 'roles/docker-compose/templates/base.yml.j2' %}
application:
image: "{{ applications[application_id].images.joomla }}"
{% include 'roles/docker-container/templates/base.yml.j2' %}
volumes:
- data:/var/www/html
ports:
- "127.0.0.1:{{ports.localhost.http[application_id]}}:80"
{% include 'roles/docker-container/templates/networks.yml.j2' %}
{% include 'roles/docker-container/templates/depends_on/dmbs_excl.yml.j2' %}
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
data:
{% include 'roles/docker-compose/templates/networks.yml.j2' %}

View File

@@ -0,0 +1,4 @@
JOOMLA_DB_HOST="{{database_host}}:{{database_port}}"
JOOMLA_DB_USER="{{database_username}}"
JOOMLA_DB_PASSWORD="{{database_password}}"
JOOMLA_DB_NAME="{{database_name}}"

View File

@@ -0,0 +1,14 @@
images:
joomla: "joomla:latest"
features:
matomo: true
css: true
portfolio_iframe: true
central_database: true
domains:
canonical:
- "cms.{{ primary_domain }}"
docker:
services:
database:
enabled: true

View File

@@ -0,0 +1,3 @@
application_id: "joomla"
database_password: "{{joomla_database_password}}"
database_type: "postgres"