main.ymlΒΆ

---
application_id: "web-app-mediawiki"
entity_name: "{{ application_id | get_entity_name }}"

MEDIAWIKI_SITENAME: "{{ lookup('config', application_id, 'services.mediawiki.sitename') }}"
MEDIAWIKI_URL: "{{ lookup('tls', application_id, 'url.base') }}"

MEDIAWIKI_HTML_DIR: "/var/www/html"
MEDIAWIKI_CONFIG_DIR: "{{ lookup('container', application_id, 'directories.config') }}"
MEDIAWIKI_VOLUMES_DIR: "{{ lookup('container', application_id, 'directories.volumes') }}"

MEDIAWIKI_LOCALSETTINGS_HOST_PATH: "{{ MEDIAWIKI_CONFIG_DIR }}/LocalSettings.php"
MEDIAWIKI_LOCALSETTINGS_CONTAINER_PATH: "{{ MEDIAWIKI_HTML_DIR }}/LocalSettings.php"

MEDIAWIKI_LOCAL_MOUNT_DIR: "{{ [ MEDIAWIKI_VOLUMES_DIR, 'mw-local' ] | path_join }}"
MEDIAWIKI_LOCAL_PATH: "{{ lookup('volume', 'web-app-mediawiki', 'mw_local').target }}"

MEDIAWIKI_VERSION: "{{ lookup('config', application_id, 'services.' ~ entity_name ~ '.version') }}"
MEDIAWIKI_IMAGE: "{{ lookup('config', application_id, 'services.' ~ entity_name ~ '.image') }}"
MEDIAWIKI_CUSTOM_IMAGE: "{{ entity_name }}_custom"
MEDIAWIKI_CONTAINER: "{{ lookup('config', application_id, 'services.' ~ entity_name ~ '.name') }}"
MEDIAWIKI_VOLUME_IMAGES: "{{ lookup('volume', application_id, 'images').name }}"
MEDIAWIKI_VOLUME_EXTENSIONS: "{{ lookup('volume', application_id, 'extensions').name }}"
MEDIAWIKI_USER: "www-data"
MEDIAWIKI_USER_GID: "33"

MEDIAWIKI_NETWORK_DATABASE: "{{ lookup('database', application_id, 'network') }}"

MEDIAWIKI_ADMINISTRATOR_NAME: "{{ lookup('users', 'administrator').username }}"
MEDIAWIKI_ADMINISTRATOR_PASSWORD: "{{ lookup('config', application_id, 'secrets.credentials.administrator_password') }}"
MEDIAWIKI_SECRET_KEY: "{{ lookup('config', application_id, 'secrets.credentials.secret_key') }}"

MEDIAWIKI_OIDC_ENABLED: "{{ lookup('config', application_id, 'services.sso.enabled') }}"
MEDIAWIKI_OIDC_CLIENT_ID: "{{ OIDC.CLIENT.ID }}"
MEDIAWIKI_OIDC_CLIENT_SECRET: "{{ OIDC.CLIENT.SECRET }}"
MEDIAWIKI_OIDC_ISSUER: "{{ OIDC.CLIENT.ISSUER_URL }}"
MEDIAWIKI_OIDC_BUTTON_TEXT: "{{ OIDC.BUTTON_TEXT }}"
MEDIAWIKI_OIDC_AUTOLOGIN: true
MEDIAWIKI_OIDC_LOCALLOGIN: false

MEDIAWIKI_LITELLM_ENABLED: "{{ lookup('config', application_id, 'services.litellm.enabled') | bool }}"
MEDIAWIKI_LITELLM_PROVIDER: "open-ai"
MEDIAWIKI_LITELLM_CONNECTION:
  url: "{{ LITELLM_OPENAI_BASE_LOCAL_URL }}"
  endpoint: "chat/completions"
  model: "{{ LITELLM_CHAT_MODEL }}"
  secret: "{{ lookup('config', application_id, 'secrets.credentials.litellm_api_key') }}"
MEDIAWIKI_LITELLM_HTTP_TIMEOUT: 120

MEDIAWIKI_EXT_BRANCH: "REL{{ (MEDIAWIKI_VERSION | string).split('.')[:2] | join('_') }}"
MEDIAWIKI_EXT_CFG_BASE: "{{ [ MEDIAWIKI_CONFIG_DIR, 'mwext', MEDIAWIKI_EXT_BRANCH ] | path_join }}"
MEDIAWIKI_EXT_HELPER_DIR: "{{ [ MEDIAWIKI_EXT_CFG_BASE, 'helpers' ] | path_join }}"
MEDIAWIKI_EXT_NAMES: "{{ lookup('config', application_id, 'addons') | dict2items | selectattr('value.enabled') | map(attribute='key') | list }}"
# nocheck: url
MEDIAWIKI_EXT_URL_PREFIX: "https://codeload.github.com/wikimedia/mediawiki-extensions-"
MEDIAWIKI_EXT_URL_SUFFIX: "/tar.gz/refs/heads/{{ MEDIAWIKI_EXT_BRANCH }}"
MEDIAWIKI_EXT_LIST: >-
  {% set _exts = [] %}
  {%- for _name in MEDIAWIKI_EXT_NAMES -%}
  {%- set _ = _exts.append({'name': _name, 'url': MEDIAWIKI_EXT_URL_PREFIX ~ _name ~ MEDIAWIKI_EXT_URL_SUFFIX}) -%}
  {%- endfor -%}
  {{ _exts }}