mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-30 15:28:12 +02:00
web-app-mediawiki: template-driven LocalSettings.php + admin automation; compose & config tweaks
Config & features: - roles/web-app-mediawiki/config/main.yml: - Add sitename ('Wiki on {{ PRIMARY_DOMAIN | upper }}') and meta_namespace ('Meta') - Enable central_database feature and database service - Move volumes under docker.volumes (correct indentation) Tasks & automation: - roles/web-app-mediawiki/tasks/main.yml: - Avoid immediate compose handler flush (docker_compose_flush_handlers: false), then explicit meta: flush_handlers - Deploy templated LocalSettings.php to host path - Create admin via maintenance/createAndPromote.php (docker exec, idempotent changed_when/failed_when) Templates: - roles/web-app-mediawiki/templates/LocalSettings.php.j2: - Set $wgSitename, $wgMetaNamespace, $wgServer from MEDIAWIKI_* - DB settings (mysql, host:port, name, user, password) - Mail settings (EmergencyContact/PasswordSender) - Default skin: vector - Load basic extensions (ParserFunctions, Cite) - roles/web-app-mediawiki/templates/docker-compose.yml.j2: - Switch to MEDIAWIKI_* vars, mount LocalSettings.php (ro) - Use container_port, include curl healthcheck - Fix volumes name to MEDIAWIKI_VOLUME Vars: - roles/web-app-mediawiki/vars/main.yml: - Restructure with MEDIAWIKI_* (sitename, meta_namespace, URL, image/version/container/volume) - Define SETTINGS host/dock paths, container_port, default user (www-data) - Admin bootstrap vars (name/password/email) Misc: - Add empty schema/main.yml placeholder for future validation Refs: ChatGPT conversation (2025-08-28, Europe/Berlin). Link: https://chatgpt.com/share/68b0ace6-f8f4-800f-b7a7-a51a6c5260f1
This commit is contained in:
29
roles/web-app-mediawiki/templates/LocalSettings.php.j2
Normal file
29
roles/web-app-mediawiki/templates/LocalSettings.php.j2
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
# This file was automatically generated by the MediaWiki installer.
|
||||
# Managed by Ansible in your setup.
|
||||
|
||||
# Basic settings
|
||||
$wgSitename = "{{ MEDIAWIKI_SITENAME }}";
|
||||
$wgMetaNamespace = "{{ MEDIAWIKI_META_NAMESPACE }}";
|
||||
$wgScriptPath = "";
|
||||
$wgServer = "{{ MEDIAWIKI_URL }}";
|
||||
|
||||
# Database settings
|
||||
$wgDBtype = "mysql";
|
||||
$wgDBserver = "{{ database_host }}:{{ database_port }}";
|
||||
$wgDBname = "{{ database_name }}";
|
||||
$wgDBuser = "{{ database_username }}";
|
||||
$wgDBpassword = "{{ database_password }}";
|
||||
|
||||
# Email settings
|
||||
$wgEnableEmail = true;
|
||||
$wgEnableUserEmail = true;
|
||||
$wgEmergencyContact = "{{ users.administrator.email }}";
|
||||
$wgPasswordSender = "{{ users['no-reply'].email }}";
|
||||
|
||||
# Default skin
|
||||
$wgDefaultSkin = "vector";
|
||||
|
||||
# Extensions (examples)
|
||||
wfLoadExtension( 'ParserFunctions' );
|
||||
wfLoadExtension( 'Cite' );
|
Reference in New Issue
Block a user