puppet-mediawiki/templates/Settings.php.erb

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";