diff --git a/.env.sample b/.env.sample index 5d13230..e99fc96 100644 --- a/.env.sample +++ b/.env.sample @@ -42,6 +42,31 @@ 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 + +## WikiMarkdown +#MARKDOWN_ENABLED=1 + +## MobileFrontend +#MOBILEFRONTEND_ENABLED=1 + +## MsUpload +#MSU_ENABLED=1 + +## PageForms +#PAGEFORMS_ENABLED=1 + +## PageSchemas +#PAGESCHEMAS_ENABLED=1 + +## SemanticMediaWiki +#SEMANTICMW_ENABLED=1 + +## WikiMarkdown +#MARKDOWN_ENABLED=1 + +## Tweeki skin +#TWEEKI_ENABLED=0 + diff --git a/LocalSettings.php.tmpl b/LocalSettings.php.tmpl index a5c35ba..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,15 +115,27 @@ $wgGroupPermissions['*']['read'] = false; $wgGroupPermissions['*']['read'] = true; {{ end }} -## Default skin: you can change the default skin. Use the internal symbolic -## names, ie 'vector', 'monobook': -$wgDefaultSkin = "vector"; - # 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': + +{{ if eq (env "TWEEKI_ENABLED") "1" }} +wfLoadSkin( 'Tweeki' ); +$wgDefaultSkin = "tweeki"; +{{ else }} +$wgDefaultSkin = "vector"; +{{ end }} + +{{ if eq (env "MOBILEFRONTEND_ENABLED") "1" }} +wfLoadExtension( 'MobileFrontend' ); +$wgDefaultMobileSkin = 'minerva'; +{{ end }} # Enabled extensions. Most of the extensions are enabled by adding # wfLoadExtensions('ExtensionName'); @@ -143,23 +154,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' ); @@ -214,6 +208,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' diff --git a/abra.sh b/abra.sh index 2d9b513..52c49d9 100644 --- a/abra.sh +++ b/abra.sh @@ -1,8 +1,8 @@ -export LOCAL_SETTINGS_CONF_VERSION=v6 +export LOCAL_SETTINGS_CONF_VERSION=v20 export HTACCESS_CONF_VERSION=v1 -export ENTRYPOINT_CONF_VERSION=v3 -export COMPOSER_LOCAL_CONF_VERSION=v1 -export PHP_INI_VERSION=v1 +export ENTRYPOINT_CONF_VERSION=v19 +export COMPOSER_LOCAL_CONF_VERSION=v5 +export PHP_INI_VERSION=v4 export SAML_ENTRYPOINT_CONF_VERSION=v3 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: 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 992706e..72ff37c 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() { @@ -50,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 \ @@ -71,12 +75,67 @@ init_extensions() { /var/www/html/extensions/OpenIDConnect 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 \ + 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 "${MARKDOWN_ENABLED-}" ]; then + if [ ! -d /var/www/html/extensions/WikiMarkdown ]; then + git clone --depth 1 \ + https://github.com/kuenzign/WikiMarkdown \ + /var/www/html/extensions/WikiMarkdown + fi + fi + } +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 diff --git a/php.ini.tmpl b/php.ini.tmpl index 586b69b..fe05f3a 100644 --- a/php.ini.tmpl +++ b/php.ini.tmpl @@ -2,3 +2,9 @@ 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 +{{ else }} +error_reporting = E_ALL +{{ end }}