
For improved sanitation, have the application write its cache files in a directory parallel to the Git worktree rather than inside it. Change-Id: Idcfcf0e3709a03696966aa8c27b897d5be7a1970
342 lines
12 KiB
Plaintext
342 lines
12 KiB
Plaintext
<?php
|
|
## Uncomment this to disable output compression
|
|
# $wgDisableOutputCompression = true;
|
|
|
|
<% if @wg_sitename != nil %>
|
|
$wgSitename = "<%= @wg_sitename %>";
|
|
<% end %>
|
|
|
|
## The URL base path to the directory containing the wiki;
|
|
## defaults for all runtime URL paths are based off of this.
|
|
## For more information on customizing the URLs
|
|
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
|
|
## http://www.mediawiki.org/wiki/Manual:Short_URL
|
|
$wgScriptPath = "/w";
|
|
$wgScriptExtension = ".php";
|
|
$wgArticlePath = '/wiki/$1';
|
|
|
|
## The protocol and server name to use in fully-qualified URLs
|
|
$wgServer = "https://<%= @site_hostname %>";
|
|
|
|
## The relative URL path to the skins directory
|
|
$wgStylePath = "$wgScriptPath/skins";
|
|
|
|
<% if @wg_logo != nil %>
|
|
## The relative URL path to the logo. Make sure you change this from the
|
|
## default, or else you'll overwrite your logo when you upgrade!
|
|
$wgLogo = "<%= @wg_logo %>";
|
|
<% end %>
|
|
|
|
## UPO means: this is also a user preference option
|
|
|
|
$wgEnableEmail = true;
|
|
$wgEnableUserEmail = true; # UPO
|
|
$wgRequirePasswordforEmailChange = false;
|
|
|
|
$wgEmergencyContact = "<%= @serveradmin %>";
|
|
$wgPasswordSender = "<%= @serveradmin %>";
|
|
|
|
$wgEnotifUserTalk = true; # UPO
|
|
$wgEnotifWatchlist = true; # UPO
|
|
$wgEmailAuthentication = true;
|
|
|
|
## Database settings
|
|
$wgDBtype = "mysql";
|
|
$wgDBserver = "<%= @wg_dbserver %>";
|
|
$wgDBname = "<%= @wg_dbname %>";
|
|
$wgDBuser = "<%= @wg_dbuser %>";
|
|
$wgDBpassword = "<%= @wg_dbpassword %>";
|
|
|
|
# MySQL specific settings
|
|
$wgDBprefix = "";
|
|
|
|
# MySQL table options to use during installation or update
|
|
$wgDBTableOptions = "ENGINE=InnoDB, DEFAULT CHARSET=binary";
|
|
|
|
# Experimental charset support for MySQL 5.0.
|
|
$wgDBmysql5 = false;
|
|
|
|
# TODO: add a cron to run jobs and set this
|
|
#$wgJobRunRate = 0;
|
|
|
|
# Disable showing IP in the header (which break frontend caching)
|
|
$wgShowIPinHeader = false;
|
|
|
|
$wgDisableCounters = true;
|
|
|
|
$wgCacheDirectory = "<%= @mediawiki_cache_location %>";
|
|
|
|
# New-style Object cache (and session) settings
|
|
$wgObjectCaches['memcached-pecl'] = array(
|
|
'class' => 'MemcachedPeclBagOStuff',
|
|
#'serializer' => 'igbinary',
|
|
'servers' => array(
|
|
'127.0.0.1:11000',
|
|
)
|
|
);
|
|
|
|
$wgMainCacheType = 'memcached-pecl';
|
|
$wgParserCacheType = 'memcached-pecl';
|
|
$wgMessageCacheType = 'memcached-pecl';
|
|
$wgMemCachedPersistent = false;
|
|
$wgUseMemCached = true;
|
|
$wgMemCachedTimeout = 250000;
|
|
$wgMemCachedInstanceSize = 2000;
|
|
$wgSessionCacheType = 'memcached-pecl';
|
|
$wgSessionsInObjectCache = true;
|
|
|
|
## Old-style Shared memory settings
|
|
#$wgMainCacheType = CACHE_MEMCACHED;
|
|
#$wgParserCacheType = CACHE_MEMCACHED;
|
|
#$wgMessageCacheType = CACHE_MEMCACHED;
|
|
#$wgSessionsInMemcached = true;
|
|
#$wgMemCachedServers = array( '127.0.0.1:11000' );
|
|
|
|
#TODO: generate the interwiki cdb and place it in the cache directory; ugh,
|
|
# seems this is Wikimedia specific for now (bug 33395)
|
|
#$wgInterwikiCache = "$wgCacheDirectory/interwiki.cdb";
|
|
|
|
$wgCookieSecure = true;
|
|
|
|
$wgAllowUserCss = true;
|
|
$wgAllowUserJs = true;
|
|
|
|
## To enable image uploads, make sure the 'images' directory
|
|
## is writable, then set this to true:
|
|
$wgEnableUploads = false;
|
|
$wgUseImageMagick = true;
|
|
$wgImageMagickConvertCommand = "/usr/bin/convert";
|
|
$wgUploadDirectory = "<%= @mediawiki_images_location %>";
|
|
$wgFileExtensions[] = 'svg';
|
|
|
|
# InstantCommons allows wiki to use images from http://commons.wikimedia.org
|
|
$wgUseInstantCommons = false;
|
|
|
|
## If you use ImageMagick (or any other shell command) on a
|
|
## Linux server, this will need to be set to the name of an
|
|
## available UTF-8 locale
|
|
$wgShellLocale = "en_US.utf8";
|
|
|
|
# Site language code, should be one of the list in ./languages/Names.php
|
|
$wgLanguageCode = "en";
|
|
|
|
$wgSecretKey = "<%= @wg_secretkey %>";
|
|
|
|
# Site upgrade key. Must be set to a string (default provided) to turn on the
|
|
# web installer while LocalSettings.php is in place
|
|
$wgUpgradeKey = "<%= @wg_upgradekey %>";
|
|
|
|
## For attaching licensing metadata to pages, and displaying an
|
|
## appropriate copyright notice / icon. GNU Free Documentation
|
|
## License and Creative Commons licenses are supported so far.
|
|
$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright
|
|
$wgRightsUrl = "";
|
|
$wgRightsText = "";
|
|
$wgRightsIcon = "";
|
|
|
|
# Path to the GNU diff3 utility. Used for conflict resolution.
|
|
$wgDiff3 = "/usr/bin/diff3";
|
|
|
|
# Query string length limit for ResourceLoader. You should only set this if
|
|
# your web server has a query string length limit (then set it to that limit),
|
|
# or if you have suhosin.get.max_value_length set in php.ini (then set it to
|
|
# that value)
|
|
$wgResourceLoaderMaxQueryLength = -1;
|
|
|
|
# Only allow logged-in users to edit
|
|
$wgGroupPermissions['*']['edit'] = false;
|
|
|
|
## Content suppression (for *really* nasty spam or DMCA notices)
|
|
# Allow sysops to hide revisions/log items from users
|
|
$wgGroupPermissions['sysop']['deleterevision'] = true;
|
|
$wgGroupPermissions['sysop']['createaccount'] = true;
|
|
# Allow members of the suppress group to hide usernames from users and Sysops
|
|
$wgGroupPermissions['suppress']['hideuser'] = true;
|
|
# Allow members of the suppress group to hide revisions/log items from users and Sysops
|
|
$wgGroupPermissions['suppress']['deleterevision'] = true;
|
|
$wgGroupPermissions['suppress']['suppressrevision'] = true;
|
|
# Allow members of the suppress group to see the supression log
|
|
$wgGroupPermissions['suppress']['suppressionlog'] = true;
|
|
|
|
# Allow known-good users to be listed in an 'autopatrol' group so their
|
|
# edits are automatically marked as 'patrolled'
|
|
$wgGroupPermissions['autopatrol']['autopatrol'] = true;
|
|
# Autopatrol users are legit, so don't need a CAPTCHA
|
|
$wgGroupPermissions['autopatrol']['skipcaptcha'] = true;
|
|
|
|
# Only let known-good users upload files
|
|
$wgGroupPermissions['user']['upload'] = false;
|
|
$wgGroupPermissions['autopatrol']['upload'] = true;
|
|
|
|
# Only let known-good users move pages and files
|
|
$wgGroupPermissions['user']['move'] = false;
|
|
$wgGroupPermissions['autopatrol']['move'] = true;
|
|
|
|
# Only let known-good users the write API
|
|
$wgGroupPermissions['user']['writeapi'] = false;
|
|
$wgGroupPermissions['autopatrol']['writeapi'] = true;
|
|
|
|
|
|
# rate limit page creation by non-verified users to 5 per day
|
|
$wgRateLimits['createpage']['user'] = array(5, 86400);
|
|
|
|
# Useful for debugging purposes, and doesn't expose very sensitive info
|
|
$wgShowExceptionDetails = true;
|
|
|
|
$wgEnableCreativeCommonsRdf = true;
|
|
$wgRightsPage = "";
|
|
$wgRightsUrl = "http://creativecommons.org/licenses/by/3.0/";
|
|
$wgRightsText = "Attribution 3.0 Unported (CC BY 3.0)";
|
|
$wgRightsIcon = "{$wgStylePath}/common/images/cc-by.png";
|
|
|
|
$wgNamespacesWithSubpages[NS_MAIN] = 1;
|
|
|
|
## Skins
|
|
|
|
$wgSkipSkins = array("chick", "cologneblue", "nostalgia", "simple", "standard", "monobook", "modern", "myskin", "vector");
|
|
require_once( "$IP/skins/strapping/strapping.php" );
|
|
$wgDefaultSkin = "strapping";
|
|
$wgStrappingSkinLogoLocation = 'navbar';
|
|
$wgStrappingSkinLoginLocation = 'navbar';
|
|
$wgStrappingSkinAnonNavbar = true;
|
|
$wgStrappingSkinUseStandardLayout = false;
|
|
$wgStrappingSkinDisplaySidebarNavigation = false;
|
|
|
|
$wgExtraNamespaces[110] = 'Obsolete';
|
|
$wgExtraNamespaces[111] = 'Obsolete_talk';
|
|
$wgNamespacesWithSubpages[110] = true;
|
|
|
|
## Extensions
|
|
# https://www.mediawiki.org/wiki/Extension:QuestyCaptcha
|
|
require_once( "$IP/extensions/ConfirmEdit/ConfirmEdit.php" );
|
|
|
|
#Enable ReCaptchaNoCaptcha
|
|
wfLoadExtensions( array( 'ConfirmEdit', 'ConfirmEdit/ReCaptchaNoCaptcha' ) );
|
|
$wgCaptchaClass = 'ReCaptchaNoCaptcha';
|
|
$wgReCaptchaSiteKey = "<%= @wg_recaptchasitekey %>";
|
|
$wgReCaptchaSecretKey = "<%= @wg_recaptchasecretkey %>";
|
|
|
|
$wgMainCacheType = CACHE_ANYTHING;
|
|
$wgCaptchaTriggers['edit'] = true;
|
|
$wgCaptchaTriggers['create'] = true;
|
|
$wgCaptchaTriggers['createtalk'] = true;
|
|
$wgCaptchaTriggers['addurl'] = true;
|
|
$wgCaptchaTriggers['createaccount'] = true;
|
|
$wgCaptchaTriggers['badlogin'] = true;
|
|
|
|
|
|
#OpenID
|
|
require_once( "$IP/extensions/OpenID/OpenID.php" );
|
|
|
|
# Don't disallow non-openid logins
|
|
$wgOpenIDOnly = false;
|
|
# Automatically mark email addreses provided by openid as verified
|
|
$wgOpenIDTrustEmailAddress = true;
|
|
# When first-time logging-in with OpenID, use the part before the @ in any given
|
|
# e-mail address as the username if a nickname is not given by the OpenID
|
|
$wgOpenIDUseEmailAsNickname = true;
|
|
# Our servername
|
|
$wgTrustRoot = "https://<%= @site_hostname %>/";
|
|
# Only allow login through a specific OpenID provider
|
|
$wgOpenIDForcedProvider = "<%= @wg_openidforcedprovider %>";
|
|
$wgOpenIDAllowExistingAccountSelection = false;
|
|
$wgOpenIDAllowAutomaticUsername = false;
|
|
|
|
require_once( "$IP/extensions/Renameuser/Renameuser.php" );
|
|
|
|
require_once( "$IP/extensions/WikiEditor/WikiEditor.php" );
|
|
$wgDefaultUserOptions['usebetatoolbar'] = 1;
|
|
$wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;
|
|
|
|
# Add syntax highlighting and such to the editor when editing code
|
|
require "$IP/extensions/CodeEditor/CodeEditor.php";
|
|
|
|
require( "$IP/extensions/Scribunto/Scribunto.php" );
|
|
$wgScribuntoDefaultEngine = 'luastandalone';
|
|
$wgScribuntoUseGeSHi = true;
|
|
$wgScribuntoUseCodeEditor = true;
|
|
$wgScribuntoEngineConf['luastandalone']['luaPath'] = '/usr/bin/lua';
|
|
|
|
# Globally enableable Javascript gadgets
|
|
require_once( "$IP/extensions/Gadgets/Gadgets.php" );
|
|
|
|
require_once("$IP/extensions/CategoryTree/CategoryTree.php");
|
|
|
|
require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php");
|
|
|
|
# Syntax highlighting of in-content code via <source lang="blah"></source>
|
|
require_once( "$IP/extensions/SyntaxHighlight_GeSHi/SyntaxHighlight_GeSHi.php" );
|
|
|
|
# Proper citations
|
|
require_once( "$IP/extensions/Cite/Cite.php" );
|
|
|
|
# Extension which provides localised language names based on CLDR data
|
|
require_once( "$IP/extensions/cldr/cldr.php" );
|
|
|
|
# Extension to easily allow users to display languages they speak on their user pages
|
|
require_once( "$IP/extensions/Babel/Babel.php" );
|
|
|
|
# Interface for translating page contents
|
|
require_once( "$IP/extensions/Translate/Translate.php" );
|
|
$wgGroupPermissions['user']['translate'] = true;
|
|
$wgTranslateDocumentationLanguageCode = 'info';
|
|
$wgGroupPermissions['sysop']['pagetranslation'] = true;
|
|
$wgEnablePageTranslation = true;
|
|
|
|
# Interface for creating pdfs and books
|
|
require_once("$IP/extensions/Collection/Collection.php");
|
|
$wgGroupPermissions['user']['collectionsaveascommunitypage'] = true;
|
|
$wgGroupPermissions['user']['collectionsaveasuserpage'] = true;
|
|
|
|
# Extension to allow admins to mass delete pages (useful for spam)
|
|
require_once("$IP/extensions/Nuke/Nuke.php");
|
|
|
|
# Prevent creation of usernames that are meant to spoof other users (useful for spam)
|
|
require_once( "$IP/extensions/AntiSpoof/AntiSpoof.php" );
|
|
|
|
include_once("$IP/extensions/Mantle/Mantle.php");
|
|
|
|
#TODO: add MobileFrontend - requires device detection, which means we need varnish
|
|
# Mobile view of the site
|
|
require_once("$IP/extensions/MobileFrontend/MobileFrontend.php");
|
|
$wgMFAutodetectMobileView = true;
|
|
|
|
require_once( "$IP/extensions/SubPageList3/SubPageList3.php" );
|
|
|
|
require_once( "$IP/extensions/ReplaceText/ReplaceText.php" );
|
|
$wgGroupPermissions['sysop']['replacetext'] = true;
|
|
|
|
require_once( "$IP/extensions/googleAnalytics/googleAnalytics.php" );
|
|
$wgGoogleAnalyticsAccount = "<%= @wg_googleanalyticsaccount %>";
|
|
|
|
require_once( "$IP/extensions/Echo/Echo.php" );
|
|
|
|
# Disabled for now, due to weird interface positioning
|
|
require_once( "$IP/extensions/UniversalLanguageSelector/UniversalLanguageSelector.php" );
|
|
$wgULSPosition = 'personal';
|
|
$wgULSGeoService = true;
|
|
|
|
require_once( "$IP/extensions/Elastica/Elastica.php" );
|
|
require_once( "$IP/extensions/CirrusSearch/CirrusSearch.php" );
|
|
$wgCirrusSearchServers = array( '127.0.0.1' );
|
|
$wgCirrusSearchShardCount = array( 'content' => 5, 'general' => 5 );
|
|
$wgSearchType = 'CirrusSearch';
|
|
|
|
# Extension:SpamBlacklist
|
|
require_once "$IP/extensions/SpamBlacklist/SpamBlacklist.php";
|
|
$wgSpamBlacklistFiles = array(
|
|
"https://meta.wikimedia.org/w/index.php?title=Spam_blacklist&action=raw&sb_ver=1",
|
|
"https://en.wikipedia.org/w/index.php?title=MediaWiki:Spam-blacklist&action=raw&sb_ver=1"
|
|
);
|
|
|
|
# Disable password based login
|
|
function disableSomeSpecialPages(&$list) {
|
|
unset($list['Userlogin']);
|
|
return true;
|
|
}
|
|
$wgHooks['SpecialPage_initList'][]='disableSomeSpecialPages';
|
|
|
|
# Extension:SmiteSpam
|
|
# https://www.mediawiki.org/wiki/Extension:SmiteSpam
|
|
require_once "$IP/extensions/SmiteSpam/SmiteSpam.php";
|