From 917eb68ae73e19cde96fba747ad7bcbdbba21a6d Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Sat, 1 Apr 2023 21:09:11 +0200 Subject: [PATCH 01/12] First stab at adding extensions: - MsUpload - PageForms - PageSchemas - SemanticMediaWiki - WikiMarkdown --- .env.sample | 16 ++++++++++++++++ entrypoint.sh.tmpl | 41 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+) diff --git a/.env.sample b/.env.sample index 5d13230..f4bd134 100644 --- a/.env.sample +++ b/.env.sample @@ -45,3 +45,19 @@ SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64 # OPENID_KEYCLOAK_URL="https://keycloak.local:8080/auth/realms/acme/" # OPENID_CLIENT_ID="mediawiki" # SECRET_OPENID_CLIENT_SECRET_VERSION=v1 + +## MsUpload +#MSU_ENABLED=1 + +## PageForms +#PAGEFORMS_ENABLED=1 + +## PageSchemas +#PAGESCHEMAS_ENABLED=1 + +## SemanticMediaWiki +#SEMANTICMW_ENABLED=1 + +## WikiMarkdown +#MARKDOWN_ENABLED=1 + diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index 992706e..5278260 100755 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -71,6 +71,47 @@ init_extensions() { /var/www/html/extensions/OpenIDConnect fi fi + + if [ -n "${MSU_ENABLED-}" ]; then + if [ ! -d /var/www/html/extensions/MsUpload ]; then + git clone --depth 1 -b REL1_39 \ + https://gerrit.wikimedia.org/r/mediawiki/extensions/MsUpload \ + /var/www/html/extensions/MsUpload + fi + fi + + if [ -n "${PAGEFORMS_ENABLED-}" ]; then + if [ ! -d /var/www/html/extensions/PageForms ]; then + git clone --depth 1 -b REL1_39 \ + https://gerrit.wikimedia.org/r/mediawiki/extensions/PageForms \ + /var/www/html/extensions/PageForms + fi + fi + + if [ -n "${PAGESCHEMAS_ENABLED-}" ]; then + if [ ! -d /var/www/html/extensions/PageSchemas ]; then + git clone --depth 1 -b REL1_39 \ + https://gerrit.wikimedia.org/r/mediawiki/extensions/PageSchemas \ + /var/www/html/extensions/PageSchemas + fi + fi + + if [ -n "${SEMANTICMW_ENABLED-}" ]; then + if [ ! -d /var/www/html/extensions/SemanticMediaWiki ]; then + git clone --depth 1 -b REL1_39 \ + https://gerrit.wikimedia.org/r/mediawiki/extensions/SemanticMediaWiki \ + /var/www/html/extensions/SemanticMediaWiki + fi + fi + + if [ -n "${MARKDOWN_ENABLED-}" ]; then + if [ ! -d /var/www/html/extensions/WikiMarkdown ]; then + git clone --depth 1 -b REL1_39 \ + https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiMarkdown \ + /var/www/html/extensions/WikiMarkdown + fi + fi + } main() { From ff2d004bcf6620900a63e6b17c8f865a222cdf4c Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Sat, 1 Apr 2023 21:53:04 +0200 Subject: [PATCH 02/12] Add LocalSettings changes for the extensions in the previous commit. --- LocalSettings.php.tmpl | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/LocalSettings.php.tmpl b/LocalSettings.php.tmpl index a5c35ba..b83aa72 100644 --- a/LocalSettings.php.tmpl +++ b/LocalSettings.php.tmpl @@ -214,6 +214,30 @@ $wgSMTP = [ ]; {{ end }} +{{ if eq (env "MSU_ENABLED") "1" }} +wfLoadExtension( 'MsUpload' ); +$wgAllowJavaUploads = true; // Solves problem with Office 2007 and newer files (docx, xlsx, etc.) +{{ end }} + +{{ if eq (env "PAGEFORMS_ENABLED") "1" }} +wfLoadExtension( 'PageForms' ); +{{ end }} + +{{ if eq (env "PAGESCHEMAS_ENABLED") "1" }} +wfLoadExtension( 'PageSchemas' ); +{{ end }} + +{{ if eq (env "SEMANTICMW_ENABLED") "1" }} +wfLoadExtension( 'SemanticMediaWiki' ); +enableSemantics( '{{ env "DOMAIN" }}' ); +{{ end }} + +{{ if eq (env "MARKDOWN_ENABLED") "1" }} +wfLoadExtension( 'WikiMarkdown' ); +$wgAllowMarkdownExtra = true; // allows usage of Parsedown Extra +$wgAllowMarkdownExtended = true; // allows usage of Parsedown Extended +{{ end }} + $wgFileExtensions = array( 'png', 'gif', 'jpg', 'jpeg', 'doc', 'xls', 'mpp', 'pdf', 'ppt', 'tiff', 'bmp', 'docx', 'xlsx', 'pptx', 'ps', 'odt', 'ods', 'odp', 'odg' From f509f7b8309b741dee052bb9ff3ea7ca9cc8193b Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Sat, 1 Apr 2023 22:30:51 +0200 Subject: [PATCH 03/12] Bump LocalSettings and Entrypoint versions. --- abra.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/abra.sh b/abra.sh index 2d9b513..7e3f225 100644 --- a/abra.sh +++ b/abra.sh @@ -1,6 +1,6 @@ -export LOCAL_SETTINGS_CONF_VERSION=v6 +export LOCAL_SETTINGS_CONF_VERSION=v7 export HTACCESS_CONF_VERSION=v1 -export ENTRYPOINT_CONF_VERSION=v3 +export ENTRYPOINT_CONF_VERSION=v4 export COMPOSER_LOCAL_CONF_VERSION=v1 export PHP_INI_VERSION=v1 From 2dd1c7aeeec5b2668c41ad204c617db8a7fd1a83 Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Sat, 1 Apr 2023 22:39:09 +0200 Subject: [PATCH 04/12] Fix example OpenID URL; keycloak doesn't expect /auth/ here it seems. --- .env.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.sample b/.env.sample index f4bd134..1e6bc45 100644 --- a/.env.sample +++ b/.env.sample @@ -42,7 +42,7 @@ SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64 ## OpenID Connect # OPENID_ENABLED=1 # COMPOSE_FILE="compose.yml:compose.openid.yml" -# OPENID_KEYCLOAK_URL="https://keycloak.local:8080/auth/realms/acme/" +# OPENID_KEYCLOAK_URL="https://keycloak.local:8080/realms/acme/" # OPENID_CLIENT_ID="mediawiki" # SECRET_OPENID_CLIENT_SECRET_VERSION=v1 From 3101cff3e88f494328af9e49d26883998040cf18 Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Mon, 8 May 2023 22:25:52 +0200 Subject: [PATCH 05/12] SemanticMediaWiki now works -- after installing with composer :) --- abra.sh | 6 +++--- composer.local.json.tmpl | 5 +++++ entrypoint.sh.tmpl | 15 +++++---------- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/abra.sh b/abra.sh index 7e3f225..166bfc0 100644 --- a/abra.sh +++ b/abra.sh @@ -1,7 +1,7 @@ -export LOCAL_SETTINGS_CONF_VERSION=v7 +export LOCAL_SETTINGS_CONF_VERSION=v12 export HTACCESS_CONF_VERSION=v1 -export ENTRYPOINT_CONF_VERSION=v4 -export COMPOSER_LOCAL_CONF_VERSION=v1 +export ENTRYPOINT_CONF_VERSION=v11 +export COMPOSER_LOCAL_CONF_VERSION=v5 export PHP_INI_VERSION=v1 export SAML_ENTRYPOINT_CONF_VERSION=v3 diff --git a/composer.local.json.tmpl b/composer.local.json.tmpl index 6a93b46..6027113 100644 --- a/composer.local.json.tmpl +++ b/composer.local.json.tmpl @@ -1,4 +1,9 @@ { +{{ if eq (env "SEMANTICMW_ENABLED") "1" }} + "require": { + "mediawiki/semantic-media-wiki": "^4.1.0" + }, +{{ end }} "extra": { "merge-plugin": { "include": [ diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index 5278260..8a470c5 100755 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -17,6 +17,9 @@ composer_install() { set -eu cd /var/www/html/ && composer update && composer install + + # SMW needs this; some other extensions brought in by composer might as well. + php /var/www/html/maintenance/update.php --quick } init_db() { @@ -96,18 +99,10 @@ init_extensions() { fi fi - if [ -n "${SEMANTICMW_ENABLED-}" ]; then - if [ ! -d /var/www/html/extensions/SemanticMediaWiki ]; then - git clone --depth 1 -b REL1_39 \ - https://gerrit.wikimedia.org/r/mediawiki/extensions/SemanticMediaWiki \ - /var/www/html/extensions/SemanticMediaWiki - fi - fi - if [ -n "${MARKDOWN_ENABLED-}" ]; then if [ ! -d /var/www/html/extensions/WikiMarkdown ]; then - git clone --depth 1 -b REL1_39 \ - https://gerrit.wikimedia.org/r/mediawiki/extensions/WikiMarkdown \ + git clone --depth 1 \ + https://github.com/kuenzign/WikiMarkdown \ /var/www/html/extensions/WikiMarkdown fi fi From a931c54b31c61fd69fb7e62f095b69477251970c Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Mon, 8 May 2023 22:32:54 +0200 Subject: [PATCH 06/12] Make MEDIAWIKI_DEBUG also control level of PHP warnings shown. --- abra.sh | 2 +- php.ini.tmpl | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/abra.sh b/abra.sh index 166bfc0..5c09c91 100644 --- a/abra.sh +++ b/abra.sh @@ -2,7 +2,7 @@ export LOCAL_SETTINGS_CONF_VERSION=v12 export HTACCESS_CONF_VERSION=v1 export ENTRYPOINT_CONF_VERSION=v11 export COMPOSER_LOCAL_CONF_VERSION=v5 -export PHP_INI_VERSION=v1 +export PHP_INI_VERSION=v2 export SAML_ENTRYPOINT_CONF_VERSION=v3 diff --git a/php.ini.tmpl b/php.ini.tmpl index 586b69b..464a51d 100644 --- a/php.ini.tmpl +++ b/php.ini.tmpl @@ -2,3 +2,7 @@ upload_max_filesize = 10M post_max_size = 10M max_execution_time = 7200 max_file_uploads = 1000 + +{{ if eq (env "MEDIAWIKI_DEBUG") "0" }} +error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT +{{ end }} From 7ca11b8bc980931e92625c7fd55f63795fa8e6b2 Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Mon, 15 May 2023 01:10:00 +0200 Subject: [PATCH 07/12] Add Tweeki skin as option. --- LocalSettings.php.tmpl | 7 +++++++ abra.sh | 4 ++-- entrypoint.sh.tmpl | 14 ++++++++++++++ 3 files changed, 23 insertions(+), 2 deletions(-) diff --git a/LocalSettings.php.tmpl b/LocalSettings.php.tmpl index b83aa72..72e92c0 100644 --- a/LocalSettings.php.tmpl +++ b/LocalSettings.php.tmpl @@ -118,13 +118,20 @@ $wgGroupPermissions['*']['read'] = true; ## Default skin: you can change the default skin. Use the internal symbolic ## names, ie 'vector', 'monobook': + +{{ if eq (env "TWEEKI_ENABLED") "1" }} +wfLoadSkin( 'Tweeki' ); +$wgDefaultSkin = "tweeki"; +{{ else }} $wgDefaultSkin = "vector"; +{{ end }} # Enabled skins. # The following skins were automatically enabled: wfLoadSkin( 'MonoBook' ); wfLoadSkin( 'Timeless' ); wfLoadSkin( 'Vector' ); +wfLoadSkin( 'MinervaNeue' ); # Enabled extensions. Most of the extensions are enabled by adding # wfLoadExtensions('ExtensionName'); diff --git a/abra.sh b/abra.sh index 5c09c91..ffbea2c 100644 --- a/abra.sh +++ b/abra.sh @@ -1,6 +1,6 @@ -export LOCAL_SETTINGS_CONF_VERSION=v12 +export LOCAL_SETTINGS_CONF_VERSION=v16 export HTACCESS_CONF_VERSION=v1 -export ENTRYPOINT_CONF_VERSION=v11 +export ENTRYPOINT_CONF_VERSION=v15 export COMPOSER_LOCAL_CONF_VERSION=v5 export PHP_INI_VERSION=v2 diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index 8a470c5..85ac2bf 100755 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -109,10 +109,24 @@ init_extensions() { } +init_skins() { + + if [ -n "${TWEEKI_ENABLED-}" ]; then + if [ ! -d /var/www/html/skins/Tweeki ]; then + git clone --depth 1 \ + https://github.com/thaider/Tweeki \ + /var/www/html/skins/Tweeki + fi + fi + +} + + main() { set -eu init_extensions + init_skins init_composer composer_install init_db From b1d3e2a0f9d5ad8e2a5e546fbbdcb803f291ab68 Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Mon, 15 May 2023 01:11:37 +0200 Subject: [PATCH 08/12] Add Tweeki to sample. --- .env.sample | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.env.sample b/.env.sample index 1e6bc45..4f13c15 100644 --- a/.env.sample +++ b/.env.sample @@ -61,3 +61,6 @@ SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64 ## WikiMarkdown #MARKDOWN_ENABLED=1 +## Tweeki skin +#TWEEKI_ENABLED=1 + From 112bd3300fcf7af72ae0f47847e9c7863db75178 Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Sun, 28 May 2023 15:17:29 +0200 Subject: [PATCH 09/12] Disable parsoid, it's no longer needed. This applies changes from https://git.coopcloud.tech/coop-cloud/mediawiki/pulls/32 independently; I believe the result should be a clean merge. --- LocalSettings.php.tmpl | 17 ----------------- abra.sh | 2 +- compose.yml | 8 -------- 3 files changed, 1 insertion(+), 26 deletions(-) diff --git a/LocalSettings.php.tmpl b/LocalSettings.php.tmpl index 72e92c0..49e384b 100644 --- a/LocalSettings.php.tmpl +++ b/LocalSettings.php.tmpl @@ -150,23 +150,6 @@ $wgDefaultUserOptions['visualeditor-enable'] = 1; $wgVisualEditorAllowLossySwitching = false; -$wgVirtualRestConfig['modules']['parsoid'] = [ - // URL to the Parsoid instance - use port 8142 if you use the Debian package - the parameter 'URL' was first used but is now deprecated (string) - 'url' => 'http://parsoid:8000/', - // Parsoid "domain" (string, optional) - MediaWiki >= 1.26 - 'domain' => 'localhost', - // Parsoid "prefix" (string, optional) - deprecated since MediaWiki 1.26, use 'domain' - 'prefix' => 'localhost', - // Forward cookies in the case of private wikis (string or false, optional) - 'forwardCookies' => true, - // request timeout in seconds (integer or null, optional) - 'timeout' => null, - // Parsoid HTTP proxy (string or null, optional) - 'HTTPProxy' => null, - // whether to parse URL as if they were meant for RESTBase (boolean or null, optional) - 'restbaseCompat' => null, -]; - {{ if eq (env "SAML_ENABLED") "1" }} wfLoadExtension( 'PluggableAuth' ); diff --git a/abra.sh b/abra.sh index ffbea2c..27558ac 100644 --- a/abra.sh +++ b/abra.sh @@ -1,4 +1,4 @@ -export LOCAL_SETTINGS_CONF_VERSION=v16 +export LOCAL_SETTINGS_CONF_VERSION=v17 export HTACCESS_CONF_VERSION=v1 export ENTRYPOINT_CONF_VERSION=v15 export COMPOSER_LOCAL_CONF_VERSION=v5 diff --git a/compose.yml b/compose.yml index 18fd7c4..840b227 100644 --- a/compose.yml +++ b/compose.yml @@ -63,14 +63,6 @@ services: networks: - internal - parsoid: - image: thenets/parsoid:0.11.0 - hostname: parsoidserver - networks: - - internal - environment: - PARSOID_DOMAIN_localhost: http://app:80/api.php - volumes: mariadb: mediawiki_images: From b78c20fe4157438f03e24ce2b49c3774d2b4f551 Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Sun, 28 May 2023 15:21:12 +0200 Subject: [PATCH 10/12] Disable Tweeki skin by default as it's a bit opinionated/non-standard. --- .env.sample | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.env.sample b/.env.sample index 4f13c15..f504abc 100644 --- a/.env.sample +++ b/.env.sample @@ -62,5 +62,5 @@ SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64 #MARKDOWN_ENABLED=1 ## Tweeki skin -#TWEEKI_ENABLED=1 +#TWEEKI_ENABLED=0 From e2ca6b6df444d1900429afb2dfa8add9a75a4f5c Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Tue, 30 May 2023 23:46:40 +0200 Subject: [PATCH 11/12] Add MobileFrontend support and fix issues spotted during PR review :D https://git.coopcloud.tech/coop-cloud/mediawiki/pulls/31 --- .env.sample | 6 ++++++ LocalSettings.php.tmpl | 18 +++++++++++------- abra.sh | 6 +++--- entrypoint.sh.tmpl | 9 +++++++++ php.ini.tmpl | 2 ++ 5 files changed, 31 insertions(+), 10 deletions(-) diff --git a/.env.sample b/.env.sample index f504abc..e99fc96 100644 --- a/.env.sample +++ b/.env.sample @@ -46,6 +46,12 @@ SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64 # OPENID_CLIENT_ID="mediawiki" # SECRET_OPENID_CLIENT_SECRET_VERSION=v1 +## WikiMarkdown +#MARKDOWN_ENABLED=1 + +## MobileFrontend +#MOBILEFRONTEND_ENABLED=1 + ## MsUpload #MSU_ENABLED=1 diff --git a/LocalSettings.php.tmpl b/LocalSettings.php.tmpl index 49e384b..41a2833 100644 --- a/LocalSettings.php.tmpl +++ b/LocalSettings.php.tmpl @@ -5,7 +5,6 @@ if ( !defined( 'MEDIAWIKI' ) ) { exit; } - ## Uncomment this to disable output compression # $wgDisableOutputCompression = true; @@ -116,6 +115,13 @@ $wgGroupPermissions['*']['read'] = false; $wgGroupPermissions['*']['read'] = true; {{ end }} +# Enabled skins. +# The following skins were automatically enabled: +wfLoadSkin( 'MonoBook' ); +wfLoadSkin( 'Timeless' ); +wfLoadSkin( 'Vector' ); +wfLoadSkin( 'MinervaNeue' ); + ## Default skin: you can change the default skin. Use the internal symbolic ## names, ie 'vector', 'monobook': @@ -126,12 +132,10 @@ $wgDefaultSkin = "tweeki"; $wgDefaultSkin = "vector"; {{ end }} -# Enabled skins. -# The following skins were automatically enabled: -wfLoadSkin( 'MonoBook' ); -wfLoadSkin( 'Timeless' ); -wfLoadSkin( 'Vector' ); -wfLoadSkin( 'MinervaNeue' ); +{{ if eq (env "MOBILEFRONTEND_ENABLED") "1" }} +wfLoadExtension( 'MobileFrontend' ); +$wgDefaultMobileSkin = 'minerva'; +{{ end }} # Enabled extensions. Most of the extensions are enabled by adding # wfLoadExtensions('ExtensionName'); diff --git a/abra.sh b/abra.sh index 27558ac..52c49d9 100644 --- a/abra.sh +++ b/abra.sh @@ -1,8 +1,8 @@ -export LOCAL_SETTINGS_CONF_VERSION=v17 +export LOCAL_SETTINGS_CONF_VERSION=v20 export HTACCESS_CONF_VERSION=v1 -export ENTRYPOINT_CONF_VERSION=v15 +export ENTRYPOINT_CONF_VERSION=v19 export COMPOSER_LOCAL_CONF_VERSION=v5 -export PHP_INI_VERSION=v2 +export PHP_INI_VERSION=v4 export SAML_ENTRYPOINT_CONF_VERSION=v3 diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index 85ac2bf..04135cc 100755 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -53,6 +53,7 @@ init_db() { } init_extensions() { + if [ ! -d /var/www/html/extensions/PluggableAuth ]; then git clone --depth 1 -b REL1_39 \ https://gerrit.wikimedia.org/r/p/mediawiki/extensions/PluggableAuth \ @@ -75,6 +76,14 @@ init_extensions() { fi fi + if [ -n "${MOBILEFRONTEND_ENABLED-}" ]; then + if [ ! -d /var/www/html/extensions/MobileFrontend ]; then + git clone --depth 1 -b REL1_39 \ + https://github.com/wikimedia/mediawiki-extensions-MobileFrontend.git \ + /var/www/html/extensions/MobileFrontend + fi + fi + if [ -n "${MSU_ENABLED-}" ]; then if [ ! -d /var/www/html/extensions/MsUpload ]; then git clone --depth 1 -b REL1_39 \ diff --git a/php.ini.tmpl b/php.ini.tmpl index 464a51d..fe05f3a 100644 --- a/php.ini.tmpl +++ b/php.ini.tmpl @@ -5,4 +5,6 @@ max_file_uploads = 1000 {{ if eq (env "MEDIAWIKI_DEBUG") "0" }} error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT +{{ else }} +error_reporting = E_ALL {{ end }} From 0c50c3398f9382baec1651ac1a5d80a1f2426c0c Mon Sep 17 00:00:00 2001 From: Flancian <0@flancia.org> Date: Tue, 30 May 2023 23:50:22 +0200 Subject: [PATCH 12/12] Use tabs ;) --- entrypoint.sh.tmpl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index 04135cc..72ff37c 100755 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -135,7 +135,7 @@ main() { set -eu init_extensions - init_skins + init_skins init_composer composer_install init_db