Compare commits
	
		
			23 Commits
		
	
	
		
			fix-new-de
			...
			main
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| fbcbd5064f | |||
| 006470a427 | |||
| 95f1e9368b | |||
| 2c9ec6000e | |||
| 64d684a0b8 | |||
| a95b104f21 | |||
| eacd512e14 | |||
| 0ff841314c | |||
| 756660c624 | |||
| dd623d7e43 | |||
| 19125b7b27 | |||
| 3e3482b89e | |||
| 3018af9382 | |||
| 40831b5d91 | |||
| d63e412256 | |||
| 3c4332f794 | |||
| 08d7201772 | |||
| 0fb7f2bd7f | |||
| 639cadaa17 | |||
| 5096046a86 | |||
| de60261fce | |||
| 7d1810cf93 | |||
| 5159ed1b36 | 
							
								
								
									
										27
									
								
								.env.sample
									
									
									
									
									
								
							
							
						
						
									
										27
									
								
								.env.sample
									
									
									
									
									
								
							@ -1,6 +1,7 @@
 | 
				
			|||||||
TYPE=mediawiki
 | 
					TYPE=mediawiki
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DOMAIN=mediawiki.example.com
 | 
					DOMAIN=mediawiki.example.com
 | 
				
			||||||
 | 
					COMPOSE_FILE="compose.yml"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#EXTRA_DOMAINS=', `www.wiki.example.com`'
 | 
					#EXTRA_DOMAINS=', `www.wiki.example.com`'
 | 
				
			||||||
LETS_ENCRYPT_ENV=production
 | 
					LETS_ENCRYPT_ENV=production
 | 
				
			||||||
@ -11,21 +12,35 @@ MEDIAWIKI_EMAIL_CONTACT="info@wiki.example.com"
 | 
				
			|||||||
MEDIAWIKI_EMAIL_FROM="wiki@wiki.example.com"
 | 
					MEDIAWIKI_EMAIL_FROM="wiki@wiki.example.com"
 | 
				
			||||||
MEDIAWIKI_LOGO_FILE='$wgResourceBasePath/resources/assets/wiki.png'
 | 
					MEDIAWIKI_LOGO_FILE='$wgResourceBasePath/resources/assets/wiki.png'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# list of language options (without ".json"):
 | 
				
			||||||
 | 
					# https://gerrit.wikimedia.org/g/mediawiki/core/%2B/HEAD/languages/i18n
 | 
				
			||||||
 | 
					MEDIAWIKI_LANGUAGE="en"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MEDIAWIKI_IS_PRIVATE=1
 | 
					MEDIAWIKI_IS_PRIVATE=1
 | 
				
			||||||
 | 
					MEDIAWIKI_ALLOW_REGISTRATION=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
MEDIAWIKI_DEBUG=0
 | 
					MEDIAWIKI_DEBUG=0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## SMTP
 | 
					 | 
				
			||||||
#SMTP_HOST=postfix_relay_app
 | 
					 | 
				
			||||||
#SMTP_HOST=mailu_front
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
SECRET_DB_ROOT_PASSWORD_VERSION=v1
 | 
					SECRET_DB_ROOT_PASSWORD_VERSION=v1
 | 
				
			||||||
SECRET_DB_PASSWORD_VERSION=v1
 | 
					SECRET_DB_PASSWORD_VERSION=v1
 | 
				
			||||||
SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64
 | 
					SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SMTP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## via local postfix/mailu
 | 
				
			||||||
 | 
					#SMTP_HOST=postfix_relay_app
 | 
				
			||||||
 | 
					#SMTP_HOST=mailu_front
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					## via remote email provider
 | 
				
			||||||
 | 
					#COMPOSE_FILE="$COMPOSE_FILE:compose.smtp.yml"
 | 
				
			||||||
 | 
					#SMTP_HOST="mail.example.com"
 | 
				
			||||||
 | 
					#SMTP_PORT=587
 | 
				
			||||||
 | 
					#SMTP_USER="${MEDIAWIKI_EMAIL_FROM}"
 | 
				
			||||||
 | 
					#SECRET_SMTP_PASSWORD_VERSION=v1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# SAML
 | 
					# SAML
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#COMPOSE_FILE="compose.yml:compose.simplesaml.yml"
 | 
					#COMPOSE_FILE="$COMPOSE_FILE:compose.simplesaml.yml"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#SAML_ENABLED=1
 | 
					#SAML_ENABLED=1
 | 
				
			||||||
#SAML_CONTACT_NAME="Sam Ell"
 | 
					#SAML_CONTACT_NAME="Sam Ell"
 | 
				
			||||||
@ -41,7 +56,7 @@ SECRET_MEDIAWIKI_SECRET_KEY_VERSION=v1 # length=64
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## OpenID Connect
 | 
					## OpenID Connect
 | 
				
			||||||
# OPENID_ENABLED=1
 | 
					# OPENID_ENABLED=1
 | 
				
			||||||
# COMPOSE_FILE="compose.yml:compose.openid.yml"
 | 
					# COMPOSE_FILE="$COMPOSE_FILE:compose.openid.yml"
 | 
				
			||||||
# OPENID_KEYCLOAK_URL="https://keycloak.local:8080/realms/acme/"
 | 
					# OPENID_KEYCLOAK_URL="https://keycloak.local:8080/realms/acme/"
 | 
				
			||||||
# OPENID_CLIENT_ID="mediawiki"
 | 
					# OPENID_CLIENT_ID="mediawiki"
 | 
				
			||||||
# SECRET_OPENID_CLIENT_SECRET_VERSION=v1
 | 
					# SECRET_OPENID_CLIENT_SECRET_VERSION=v1
 | 
				
			||||||
 | 
				
			|||||||
@ -84,7 +84,7 @@ $wgShellLocale = "C.UTF-8";
 | 
				
			|||||||
#$wgCacheDirectory = "$IP/cache";
 | 
					#$wgCacheDirectory = "$IP/cache";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Site language code, should be one of the list in ./languages/data/Names.php
 | 
					# Site language code, should be one of the list in ./languages/data/Names.php
 | 
				
			||||||
$wgLanguageCode = "en";
 | 
					$wgLanguageCode = "{{ env "MEDIAWIKI_LANGUAGE" }}";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$wgSecretKey = rtrim(file_get_contents('/run/secrets/mediawiki_secret_key'));
 | 
					$wgSecretKey = rtrim(file_get_contents('/run/secrets/mediawiki_secret_key'));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -106,8 +106,13 @@ $wgRightsIcon = "";
 | 
				
			|||||||
# Path to the GNU diff3 utility. Used for conflict resolution.
 | 
					# Path to the GNU diff3 utility. Used for conflict resolution.
 | 
				
			||||||
$wgDiff3 = "/usr/bin/diff3";
 | 
					$wgDiff3 = "/usr/bin/diff3";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# The following permissions were set based on your choice in the installer
 | 
					{{ if eq (env "MEDIAWIKI_ALLOW_REGISTRATION") "1" }}
 | 
				
			||||||
 | 
					$wgGroupPermissions['*']['createaccount'] = true;
 | 
				
			||||||
 | 
					$wgEmailConfirmToEdit = true;
 | 
				
			||||||
 | 
					{{ else }}
 | 
				
			||||||
$wgGroupPermissions['*']['createaccount'] = false;
 | 
					$wgGroupPermissions['*']['createaccount'] = false;
 | 
				
			||||||
 | 
					{{ end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$wgGroupPermissions['*']['edit'] = false;
 | 
					$wgGroupPermissions['*']['edit'] = false;
 | 
				
			||||||
{{ if eq (env "MEDIAWIKI_IS_PRIVATE") "1" }}
 | 
					{{ if eq (env "MEDIAWIKI_IS_PRIVATE") "1" }}
 | 
				
			||||||
$wgGroupPermissions['*']['read'] = false;
 | 
					$wgGroupPermissions['*']['read'] = false;
 | 
				
			||||||
@ -115,6 +120,13 @@ $wgGroupPermissions['*']['read'] = false;
 | 
				
			|||||||
$wgGroupPermissions['*']['read'] = true;
 | 
					$wgGroupPermissions['*']['read'] = true;
 | 
				
			||||||
{{ end }}
 | 
					{{ end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{{ if ne (env "MEDIAWIKI_PROXY_SERVERS") "" }}
 | 
				
			||||||
 | 
					// In LocalSettings.php
 | 
				
			||||||
 | 
					$wgUseCdn = true;
 | 
				
			||||||
 | 
					$wgCdnServersNoPurge = [];
 | 
				
			||||||
 | 
					$wgCdnServersNoPurge[] = "{{ env "MEDIAWIKI_PROXY_SERVERS" }}";
 | 
				
			||||||
 | 
					{{ end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Enabled skins.
 | 
					# Enabled skins.
 | 
				
			||||||
# The following skins were automatically enabled:
 | 
					# The following skins were automatically enabled:
 | 
				
			||||||
wfLoadSkin( 'MonoBook' );
 | 
					wfLoadSkin( 'MonoBook' );
 | 
				
			||||||
@ -179,8 +191,13 @@ $wgGroupPermissions['*']['createaccount'] = false;
 | 
				
			|||||||
$wgDebugLogFile = "/var/log/debug-{$wgDBname}.log";
 | 
					$wgDebugLogFile = "/var/log/debug-{$wgDBname}.log";
 | 
				
			||||||
$wgShowExceptionDetails = true;
 | 
					$wgShowExceptionDetails = true;
 | 
				
			||||||
$wgDebugToolbar = true;
 | 
					$wgDebugToolbar = true;
 | 
				
			||||||
 | 
					{{ else }}
 | 
				
			||||||
 | 
					$wgShowDebug = false;
 | 
				
			||||||
 | 
					$wgDevelopmentWarnings = false;
 | 
				
			||||||
 | 
					$wgDeprecationReleaseLimit = '1.0';
 | 
				
			||||||
{{ end }}
 | 
					{{ end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
{{ if eq (env "OPENID_ENABLED") "1" }}
 | 
					{{ if eq (env "OPENID_ENABLED") "1" }}
 | 
				
			||||||
wfLoadExtension( 'PluggableAuth' );
 | 
					wfLoadExtension( 'PluggableAuth' );
 | 
				
			||||||
wfLoadExtension( 'OpenIDConnect' );
 | 
					wfLoadExtension( 'OpenIDConnect' );
 | 
				
			||||||
@ -201,10 +218,14 @@ $wgGroupPermissions['*']['createaccount'] = false;
 | 
				
			|||||||
{{ if env "SMTP_HOST" }}
 | 
					{{ if env "SMTP_HOST" }}
 | 
				
			||||||
$wgSMTP = [
 | 
					$wgSMTP = [
 | 
				
			||||||
    'host'     => '{{ env "SMTP_HOST" }}',       // could also be an IP address. Where the SMTP server is located
 | 
					    'host'     => '{{ env "SMTP_HOST" }}',       // could also be an IP address. Where the SMTP server is located
 | 
				
			||||||
    'port'     => 25,                 // Port to use when connecting to the SMTP server
 | 
					    'port'     => {{ env "SMTP_PORT" }},         // Port to use when connecting to the SMTP server
 | 
				
			||||||
    'auth'     => false,               // Should we use SMTP authentication (true or false)
 | 
					{{ if env "SMTP_USER" }}
 | 
				
			||||||
    #'username' => 'my_user_name',     // Username to use for SMTP authentication (if being used)
 | 
					    'auth'     => true,                          // Should we use SMTP authentication (true or false)
 | 
				
			||||||
    #'password' => 'my_password'       // Password to use for SMTP authentication (if being used)
 | 
					    'username' => '{{ env "SMTP_USER" }}',       // Username to use for SMTP authentication (if being used)
 | 
				
			||||||
 | 
					    'password' => '{{ secret "smtp_password" }}' // Password to use for SMTP authentication (if being used)
 | 
				
			||||||
 | 
					{{ else }}
 | 
				
			||||||
 | 
					    'auth'     => false
 | 
				
			||||||
 | 
					{{ end }}
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
{{ end }}
 | 
					{{ end }}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -239,3 +260,15 @@ $wgFileExtensions = array(
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
$wgUploadSizeWarning = 1000000000;
 | 
					$wgUploadSizeWarning = 1000000000;
 | 
				
			||||||
$wgMaxUploadSize = 1000000000;
 | 
					$wgMaxUploadSize = 1000000000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Greatly relax IP-based throttling for logging in while we work around docker networking issues.
 | 
				
			||||||
 | 
					# https://social.coop/@flancian/110980993608947217
 | 
				
			||||||
 | 
					$wgPasswordAttemptThrottle = [
 | 
				
			||||||
 | 
						// Short term limit
 | 
				
			||||||
 | 
						[ 'count' => 9999, 'seconds' => 300 ],
 | 
				
			||||||
 | 
						// Long term limit. We need to balance the risk
 | 
				
			||||||
 | 
						// of somebody using this as a DoS attack to lock someone
 | 
				
			||||||
 | 
						// out of their account, and someone doing a brute force attack.
 | 
				
			||||||
 | 
						[ 'count' => 999999, 'seconds' => 60 * 60 * 48 ],
 | 
				
			||||||
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										10
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								README.md
									
									
									
									
									
								
							@ -27,6 +27,8 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
## Email
 | 
					## Email
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Coop Cloud mailu or postfix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
1. `abra app config YOURAPPDOMAIN` - edit `.envrc` and uncomment the `SMTP` lines. Set `SMTP_HOST` to
 | 
					1. `abra app config YOURAPPDOMAIN` - edit `.envrc` and uncomment the `SMTP` lines. Set `SMTP_HOST` to
 | 
				
			||||||
   `postfix_relay` for `coop-cloud/postfix_relay`, or `mailu_front` for
 | 
					   `postfix_relay` for `coop-cloud/postfix_relay`, or `mailu_front` for
 | 
				
			||||||
   `coop-cloud/mailu` (assuming default stack names)
 | 
					   `coop-cloud/mailu` (assuming default stack names)
 | 
				
			||||||
@ -34,6 +36,14 @@
 | 
				
			|||||||
   `postfix_relay`. This doesn't seem to be required for Mailu.
 | 
					   `postfix_relay`. This doesn't seem to be required for Mailu.
 | 
				
			||||||
3. `abra app deploy YOURAPPDOMAIN`
 | 
					3. `abra app deploy YOURAPPDOMAIN`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Remote provider
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					1. `abra app config YOURAPPDOMAIN` - uncomment `SMTP` under the "remote email provider" section and set values for `SMTP_HOST`, `SMTP_PORT` and `SMTP_USER`
 | 
				
			||||||
 | 
					2. `abra app secret insert YOURAPPDOMAIN smtp_password v1 YOURSMTPPASSWORD`
 | 
				
			||||||
 | 
					3. `abra app deploy YOURAPPDOMAIN`
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Note: Only STARTTLS is supported, TLS won't work.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
## Single Sign On
 | 
					## Single Sign On
 | 
				
			||||||
 | 
					
 | 
				
			||||||
### SimpleSAMLphp
 | 
					### SimpleSAMLphp
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										42
									
								
								abra.sh
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								abra.sh
									
									
									
									
									
								
							@ -1,45 +1,7 @@
 | 
				
			|||||||
export LOCAL_SETTINGS_CONF_VERSION=v20
 | 
					export LOCAL_SETTINGS_CONF_VERSION=v27
 | 
				
			||||||
export HTACCESS_CONF_VERSION=v1
 | 
					export HTACCESS_CONF_VERSION=v1
 | 
				
			||||||
export ENTRYPOINT_CONF_VERSION=v20
 | 
					export ENTRYPOINT_CONF_VERSION=v21
 | 
				
			||||||
export COMPOSER_LOCAL_CONF_VERSION=v5
 | 
					export COMPOSER_LOCAL_CONF_VERSION=v5
 | 
				
			||||||
export PHP_INI_VERSION=v4
 | 
					export PHP_INI_VERSION=v4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export SAML_ENTRYPOINT_CONF_VERSION=v3
 | 
					export SAML_ENTRYPOINT_CONF_VERSION=v3
 | 
				
			||||||
 | 
					 | 
				
			||||||
abra_backup_app() {
 | 
					 | 
				
			||||||
  _abra_backup_dir "app:/var/www/html/images"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
abra_backup_db() {
 | 
					 | 
				
			||||||
  _abra_backup_mysql "db" "mediawiki"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
abra_backup() {
 | 
					 | 
				
			||||||
  abra_backup_app && abra_backup_db
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
abra_restore_app() {
 | 
					 | 
				
			||||||
  # shellcheck disable=SC2034
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
	abra__src_="-"
 | 
					 | 
				
			||||||
	abra__dst_="app:/var/www/html/"
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  zcat "$@" | sub_app_cp
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  success "Restored 'app'"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
abra_restore_db() {
 | 
					 | 
				
			||||||
  # 3wc: unlike abra_backup_db, we can assume abra__service_ will be 'db' if we
 | 
					 | 
				
			||||||
  # got this far..
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  # shellcheck disable=SC2034
 | 
					 | 
				
			||||||
  abra___no_tty="true"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  DB_ROOT_PASSWORD="$(sub_app_run cat /run/secrets/db_root_password)"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  zcat "$@" | sub_app_run mysql -u root -p"$DB_ROOT_PASSWORD" wordpress
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  success "Restored 'db'"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										14
									
								
								compose.smtp.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								compose.smtp.yml
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
				
			|||||||
 | 
					---
 | 
				
			||||||
 | 
					version: "3.8"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					services:
 | 
				
			||||||
 | 
					  app:
 | 
				
			||||||
 | 
					    environment:
 | 
				
			||||||
 | 
					      - SMTP_USER
 | 
				
			||||||
 | 
					    secrets:
 | 
				
			||||||
 | 
					      - smtp_password
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					secrets:
 | 
				
			||||||
 | 
					  smtp_password:
 | 
				
			||||||
 | 
					    name: ${STACK_NAME}_smtp_password_${SECRET_SMTP_PASSWORD_VERSION}
 | 
				
			||||||
 | 
					    external: true
 | 
				
			||||||
							
								
								
									
										18
									
								
								compose.yml
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								compose.yml
									
									
									
									
									
								
							@ -3,7 +3,7 @@ version: "3.8"
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
services:
 | 
					services:
 | 
				
			||||||
  app:
 | 
					  app:
 | 
				
			||||||
    image: mediawiki:1.39.3
 | 
					    image: mediawiki:1.40.1
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      - DOMAIN
 | 
					      - DOMAIN
 | 
				
			||||||
      - STACK_NAME
 | 
					      - STACK_NAME
 | 
				
			||||||
@ -14,12 +14,14 @@ services:
 | 
				
			|||||||
      - MEDIAWIKI_LOGO_FILE
 | 
					      - MEDIAWIKI_LOGO_FILE
 | 
				
			||||||
      - MEDIAWIKI_IS_PRIVATE
 | 
					      - MEDIAWIKI_IS_PRIVATE
 | 
				
			||||||
      - MEDIAWIKI_DEBUG
 | 
					      - MEDIAWIKI_DEBUG
 | 
				
			||||||
 | 
					      - MEDIAWIKI_LANGUAGE=${MEDIAWIKI_LANGUAGE:-en}
 | 
				
			||||||
      - SAML_ENABLED
 | 
					      - SAML_ENABLED
 | 
				
			||||||
      - OPENID_ENABLED
 | 
					      - OPENID_ENABLED
 | 
				
			||||||
      - DB_HOST=db
 | 
					      - DB_HOST=db
 | 
				
			||||||
      - DB_USER=mediawiki
 | 
					      - DB_USER=mediawiki
 | 
				
			||||||
      - DB_NAME=mediawiki
 | 
					      - DB_NAME=mediawiki
 | 
				
			||||||
      - SMTP_HOST
 | 
					      - SMTP_HOST
 | 
				
			||||||
 | 
					      - SMTP_PORT=${SMTP_PORT:-25}
 | 
				
			||||||
    volumes:
 | 
					    volumes:
 | 
				
			||||||
      - "mediawiki_images:/var/www/html/images"
 | 
					      - "mediawiki_images:/var/www/html/images"
 | 
				
			||||||
    configs:
 | 
					    configs:
 | 
				
			||||||
@ -45,11 +47,13 @@ services:
 | 
				
			|||||||
        - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
 | 
					        - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})"
 | 
				
			||||||
        - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
 | 
					        - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}"
 | 
				
			||||||
        - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
 | 
					        - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure"
 | 
				
			||||||
        - "coop-cloud.${STACK_NAME}.version=2.3.0+1.39.3"
 | 
					        - "coop-cloud.${STACK_NAME}.version=2.7.3+1.40.1"
 | 
				
			||||||
 | 
					        - "backupbot.backup=true"
 | 
				
			||||||
 | 
					        - "backupbot.backup.path=/var/www/html/images"
 | 
				
			||||||
    entrypoint: /docker-entrypoint2.sh
 | 
					    entrypoint: /docker-entrypoint2.sh
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  db:
 | 
					  db:
 | 
				
			||||||
    image: mariadb:10.10
 | 
					    image: mariadb:11.1
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      - MYSQL_USER=mediawiki
 | 
					      - MYSQL_USER=mediawiki
 | 
				
			||||||
      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password
 | 
					      - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password
 | 
				
			||||||
@ -62,6 +66,14 @@ services:
 | 
				
			|||||||
      - db_password
 | 
					      - db_password
 | 
				
			||||||
    networks:
 | 
					    networks:
 | 
				
			||||||
      - internal
 | 
					      - internal
 | 
				
			||||||
 | 
					    deploy:
 | 
				
			||||||
 | 
					      labels:
 | 
				
			||||||
 | 
					        backupbot.backup: "true"
 | 
				
			||||||
 | 
					        backupbot.backup.path: "/tmp/dump.sql.gz"
 | 
				
			||||||
 | 
					        backupbot.backup.pre-hook: "sh -c 'mysqldump --single-transaction -u root -p\"$$(cat /run/secrets/db_root_password)\" mediawiki | gzip > /tmp/dump.sql.gz'"
 | 
				
			||||||
 | 
					        backupbot.backup.post-hook: "rm -f /tmp/dump.sql.gz"
 | 
				
			||||||
 | 
					        backupbot.restore: "true"
 | 
				
			||||||
 | 
					        backupbot.restore.post-hook: "sh -c 'mysql -u root -p\"$$(cat /run/secrets/db_root_password)\" mediawiki < /tmp/dbdump.sql && rm -f /tmp/dbdump.sql'"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
volumes:
 | 
					volumes:
 | 
				
			||||||
  mariadb:
 | 
					  mariadb:
 | 
				
			||||||
 | 
				
			|||||||
@ -48,14 +48,14 @@ init_db() {
 | 
				
			|||||||
init_extensions() {
 | 
					init_extensions() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ ! -d /var/www/html/extensions/PluggableAuth ]; then
 | 
						if [ ! -d /var/www/html/extensions/PluggableAuth ]; then
 | 
				
			||||||
		git clone --depth 1 -b REL1_39 \
 | 
							git clone --depth 1 -b REL1_40 \
 | 
				
			||||||
			https://gerrit.wikimedia.org/r/p/mediawiki/extensions/PluggableAuth \
 | 
								https://gerrit.wikimedia.org/r/p/mediawiki/extensions/PluggableAuth \
 | 
				
			||||||
			/var/www/html/extensions/PluggableAuth
 | 
								/var/www/html/extensions/PluggableAuth
 | 
				
			||||||
	fi
 | 
						fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if [ -n "${SAML_ENABLED-}" ]; then
 | 
						if [ -n "${SAML_ENABLED-}" ]; then
 | 
				
			||||||
		if [ ! -d /var/www/html/extensions/SimpleSAMLphp ]; then
 | 
							if [ ! -d /var/www/html/extensions/SimpleSAMLphp ]; then
 | 
				
			||||||
			git clone --depth 1 -b REL1_39 \
 | 
								git clone --depth 1 -b REL1_40 \
 | 
				
			||||||
				https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SimpleSAMLphp \
 | 
									https://gerrit.wikimedia.org/r/p/mediawiki/extensions/SimpleSAMLphp \
 | 
				
			||||||
				/var/www/html/extensions/SimpleSAMLphp
 | 
									/var/www/html/extensions/SimpleSAMLphp
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
@ -63,7 +63,7 @@ init_extensions() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if [ -n "${OPENID_ENABLED-}" ]; then
 | 
						if [ -n "${OPENID_ENABLED-}" ]; then
 | 
				
			||||||
		if [ ! -d /var/www/html/extensions/OpenIDConnect ]; then
 | 
							if [ ! -d /var/www/html/extensions/OpenIDConnect ]; then
 | 
				
			||||||
			git clone --depth 1 -b REL1_39 \
 | 
								git clone --depth 1 -b REL1_40 \
 | 
				
			||||||
				https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenIDConnect \
 | 
									https://gerrit.wikimedia.org/r/mediawiki/extensions/OpenIDConnect \
 | 
				
			||||||
				/var/www/html/extensions/OpenIDConnect
 | 
									/var/www/html/extensions/OpenIDConnect
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
@ -71,7 +71,7 @@ init_extensions() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if [ -n "${MOBILEFRONTEND_ENABLED-}" ]; then
 | 
						if [ -n "${MOBILEFRONTEND_ENABLED-}" ]; then
 | 
				
			||||||
		if [ ! -d /var/www/html/extensions/MobileFrontend ]; then
 | 
							if [ ! -d /var/www/html/extensions/MobileFrontend ]; then
 | 
				
			||||||
			git clone --depth 1 -b REL1_39 \
 | 
								git clone --depth 1 -b REL1_40 \
 | 
				
			||||||
				https://github.com/wikimedia/mediawiki-extensions-MobileFrontend.git \
 | 
									https://github.com/wikimedia/mediawiki-extensions-MobileFrontend.git \
 | 
				
			||||||
				/var/www/html/extensions/MobileFrontend
 | 
									/var/www/html/extensions/MobileFrontend
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
@ -79,7 +79,7 @@ init_extensions() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if [ -n "${MSU_ENABLED-}" ]; then
 | 
						if [ -n "${MSU_ENABLED-}" ]; then
 | 
				
			||||||
		if [ ! -d /var/www/html/extensions/MsUpload ]; then
 | 
							if [ ! -d /var/www/html/extensions/MsUpload ]; then
 | 
				
			||||||
			git clone --depth 1 -b REL1_39 \
 | 
								git clone --depth 1 -b REL1_40 \
 | 
				
			||||||
				https://gerrit.wikimedia.org/r/mediawiki/extensions/MsUpload \
 | 
									https://gerrit.wikimedia.org/r/mediawiki/extensions/MsUpload \
 | 
				
			||||||
				/var/www/html/extensions/MsUpload
 | 
									/var/www/html/extensions/MsUpload
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
@ -87,7 +87,7 @@ init_extensions() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if [ -n "${PAGEFORMS_ENABLED-}" ]; then
 | 
						if [ -n "${PAGEFORMS_ENABLED-}" ]; then
 | 
				
			||||||
		if [ ! -d /var/www/html/extensions/PageForms ]; then
 | 
							if [ ! -d /var/www/html/extensions/PageForms ]; then
 | 
				
			||||||
			git clone --depth 1 -b REL1_39 \
 | 
								git clone --depth 1 -b REL1_40 \
 | 
				
			||||||
				https://gerrit.wikimedia.org/r/mediawiki/extensions/PageForms \
 | 
									https://gerrit.wikimedia.org/r/mediawiki/extensions/PageForms \
 | 
				
			||||||
				/var/www/html/extensions/PageForms
 | 
									/var/www/html/extensions/PageForms
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
@ -95,7 +95,7 @@ init_extensions() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	if [ -n "${PAGESCHEMAS_ENABLED-}" ]; then
 | 
						if [ -n "${PAGESCHEMAS_ENABLED-}" ]; then
 | 
				
			||||||
		if [ ! -d /var/www/html/extensions/PageSchemas ]; then
 | 
							if [ ! -d /var/www/html/extensions/PageSchemas ]; then
 | 
				
			||||||
			git clone --depth 1 -b REL1_39 \
 | 
								git clone --depth 1 -b REL1_40 \
 | 
				
			||||||
				https://gerrit.wikimedia.org/r/mediawiki/extensions/PageSchemas \
 | 
									https://gerrit.wikimedia.org/r/mediawiki/extensions/PageSchemas \
 | 
				
			||||||
				/var/www/html/extensions/PageSchemas
 | 
									/var/www/html/extensions/PageSchemas
 | 
				
			||||||
		fi
 | 
							fi
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user