mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-29 15:06:26 +02:00
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:
5
roles/web-app-joomla/Administration.md
Normal file
5
roles/web-app-joomla/Administration.md
Normal 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;
|
||||
```
|
31
roles/web-app-joomla/README.md
Normal file
31
roles/web-app-joomla/README.md
Normal 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).
|
26
roles/web-app-joomla/meta/main.yml
Normal file
26
roles/web-app-joomla/meta/main.yml
Normal 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: []
|
0
roles/web-app-joomla/meta/schema.yml
Normal file
0
roles/web-app-joomla/meta/schema.yml
Normal file
14
roles/web-app-joomla/tasks/main.yml
Normal file
14
roles/web-app-joomla/tasks/main.yml
Normal 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
|
15
roles/web-app-joomla/templates/docker-compose.yml.j2
Normal file
15
roles/web-app-joomla/templates/docker-compose.yml.j2
Normal 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' %}
|
4
roles/web-app-joomla/templates/env.j2
Normal file
4
roles/web-app-joomla/templates/env.j2
Normal 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}}"
|
14
roles/web-app-joomla/vars/configuration.yml
Normal file
14
roles/web-app-joomla/vars/configuration.yml
Normal 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
|
3
roles/web-app-joomla/vars/main.yml
Normal file
3
roles/web-app-joomla/vars/main.yml
Normal file
@@ -0,0 +1,3 @@
|
||||
application_id: "joomla"
|
||||
database_password: "{{joomla_database_password}}"
|
||||
database_type: "postgres"
|
Reference in New Issue
Block a user