feat(web-app-magento): add Magento role + network/ports

- add role files (docs, vars, config, tasks, schema, templates)

- networks: add web-app-magento 192.168.103.208/28

- ports: add localhost http 8052

Conversation: https://chatgpt.com/share/68b8820f-f864-800f-8819-da509b99cee2
This commit is contained in:
2025-09-03 20:00:01 +02:00
parent 61c29eee60
commit 699a6b6f1e
15 changed files with 338 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
{% include 'roles/docker-compose/templates/base.yml.j2' %}
application:
{% set container_port = 8080 %}
{% include 'roles/docker-container/templates/base.yml.j2' %}
image: "{{ magento_image }}:{{ magento_version }}"
container_name: "{{ magento_name }}"
ports:
- "127.0.0.1:{{ ports.localhost.http[application_id] }}:{{ container_port }}"
volumes:
- "data:/bitnami/magento"
{% include 'roles/docker-container/templates/depends_on/dmbs_excl.yml.j2' %}
depends_on:
- search
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
{% include 'roles/docker-container/templates/networks.yml.j2' %}
search:
{% set container_port = 9200 %}
image: "{{ magento_search_image }}:{{ magento_search_version }}"
container_name: "{{ magento_search_name }}"
{% include 'roles/docker-container/templates/base.yml.j2' %}
environment:
- discovery.type=single-node
- plugins.security.disabled=true
- OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m
{% include 'roles/docker-container/templates/healthcheck/tcp.yml.j2' %}
{% include 'roles/docker-container/templates/networks.yml.j2' %}
{% include 'roles/docker-compose/templates/volumes.yml.j2' %}
data:
name: {{ magento_data }}
{% include 'roles/docker-compose/templates/networks.yml.j2' %}

View File

@@ -0,0 +1,39 @@
# Magento environment
# Base references:
# - https://github.com/bitnami/containers/tree/main/bitnami/magento
# Host & URLs
MAGENTO_HOST="{{ domains | get_domain(application_id) }}"
MAGENTO_BASE_URL="{{ domains | get_url(application_id, WEB_PROTOCOL) }}/"
MAGENTO_ENABLE_HTTPS={{ (WEB_PORT == 443) | string | lower }}
# Admin (seed from global administrator)
MAGENTO_USERNAME="{{ users.administrator.username }}"
MAGENTO_PASSWORD="{{ applications | get_app_conf(application_id, 'credentials.admin_password') }}"
MAGENTO_EMAIL="{{ users.administrator.email }}"
MAGENTO_FIRST_NAME="{{ users.administrator.firstname | default('Admin') }}"
MAGENTO_LAST_NAME="{{ users.administrator.lastname | default('User') }}"
# Database (central DB preferred)
MARIADB_HOST="{{ database_host }}"
MARIADB_PORT_NUMBER="{{ database_port }}"
MAGENTO_DATABASE_USER="{{ database_username }}"
MAGENTO_DATABASE_PASSWORD="{{ database_password }}"
MAGENTO_DATABASE_NAME="{{ database_name }}"
# Search (Magento 2.4+)
MAGENTO_SEARCH_ENGINE="opensearch"
OPENSEARCH_HOST="search"
OPENSEARCH_PORT_NUMBER="9200"
# SMTP
SMTP_HOST="{{ SYSTEM_EMAIL.HOST }}"
SMTP_PORT="{{ SYSTEM_EMAIL.PORT }}"
SMTP_USER="{{ users['no-reply'].email }}"
SMTP_PASSWORD="{{ users['no-reply'].mailu_token }}"
SMTP_PROTOCOL={{ SYSTEM_EMAIL.TLS | ternary('tls','ssl') }}
# Misc
ALLOW_EMPTY_PASSWORD="no"
BITNAMI_DEBUG="false"
PHP_MEMORY_LIMIT="1024M"