<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Mediawiki_Additional_Configuration</id>
	<title>Mediawiki Additional Configuration - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.comfac.net/index.php?action=history&amp;feed=atom&amp;title=Mediawiki_Additional_Configuration"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;action=history"/>
	<updated>2026-06-05T11:00:29Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=110&amp;oldid=prev</id>
		<title>Dani at 00:33, 5 March 2026</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=110&amp;oldid=prev"/>
		<updated>2026-03-05T00:33:47Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:33, 5 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l283&quot;&gt;Line 283:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 283:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;After restarting your wiki, log in as an admin and go to:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;After restarting your wiki, log in as an admin and go to:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Special:UserRights&#039;&#039;&#039; (or click &#039;&#039;&#039;Special Pages&#039;&#039;&#039; → &#039;&#039;&#039;User rights &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;management&lt;/del&gt;&#039;&#039;&#039;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* &#039;&#039;&#039;Special:UserRights&#039;&#039;&#039; (or click &#039;&#039;&#039;Special Pages&#039;&#039;&#039; → &#039;&#039;&#039;User &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;and &lt;/ins&gt;rights &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;section&lt;/ins&gt;&#039;&#039;&#039;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Enter a username&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Enter a username&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Check the &amp;#039;&amp;#039;&amp;#039;editor&amp;#039;&amp;#039;&amp;#039; box&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Check the &amp;#039;&amp;#039;&amp;#039;editor&amp;#039;&amp;#039;&amp;#039; box&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key database:diff:1.41:old-109:rev-110:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Dani</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=109&amp;oldid=prev</id>
		<title>Dani at 00:25, 5 March 2026</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=109&amp;oldid=prev"/>
		<updated>2026-03-05T00:25:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;amp;diff=109&amp;amp;oldid=93&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Dani</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=93&amp;oldid=prev</id>
		<title>BabiSender at 08:22, 26 February 2026</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=93&amp;oldid=prev"/>
		<updated>2026-02-26T08:22:32Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 08:22, 26 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l251&quot;&gt;Line 251:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 251:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----------------------------------------- */&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----------------------------------------- */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ANONYMOUS USERS (not logged in)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Anonymous users&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;*&#039;][&#039;read&#039;] = true; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;          # Can view pages&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;*&#039;][&#039;read&#039;] = true;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;         # Cannot edit&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;*&#039;][&#039;edit&#039;] = false;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Cannot create accounts&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;*&#039;][&#039;createaccount&#039;] = false;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;LOGGED-IN USERS (default group)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Disable public account creation&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;user&lt;/del&gt;&#039;][&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;read&#039;] = true;        # Can view pages&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*&lt;/ins&gt;&#039;][&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;createaccount&lt;/ins&gt;&#039;] = false;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;user&#039;][&#039;edit&lt;/del&gt;&#039;] = false; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      # Cannot edit (read-only)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;EDITOR GROUP (must be assigned by admin)&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Allow bureaucrats/admins to create accounts&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;editor&lt;/del&gt;&#039;][&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;read&lt;/del&gt;&#039;] = true; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;     # Can view pages&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;bureaucrat&lt;/ins&gt;&#039;][&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;createaccount&lt;/ins&gt;&#039;] = true;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;editor&#039;][&#039;edit&#039;] = true;      # Can edit pages&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;editor&#039;][&#039;upload&#039;] = true;    # Can upload files&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;editor&#039;][&#039;reupload&#039;] = true;  # Can replace existing files&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;SYSOP GROUP &lt;/del&gt;(&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;administrators&lt;/del&gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Logged-in users &lt;/ins&gt;(&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;view only&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sysop&lt;/del&gt;&#039;][&#039;read&#039;] = true; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      # Can view pages&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;user&lt;/ins&gt;&#039;][&#039;read&#039;] = true;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;sysop&lt;/del&gt;&#039;][&#039;edit&#039;] = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;true&lt;/del&gt;; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;      # Can edit pages&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$wgGroupPermissions[&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;user&lt;/ins&gt;&#039;][&#039;edit&#039;] = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;false&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;sysop&#039;][&#039;protect&#039;] = true;    # Can protect pages&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;sysop&#039;][&#039;userrights&#039;] = true; # Can assign user groups&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Enable protection levels&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Editor group&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wgRestrictionLevels&lt;/del&gt;[] = &#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;user&lt;/del&gt;&#039;;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;$&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wgGroupPermissions&lt;/ins&gt;[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;editor&#039;][&#039;read&#039;] = true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;editor&#039;][&#039;edit&#039;] = true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;editor&#039;][&#039;upload&#039;] = true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;editor&#039;][&#039;reupload&#039;] = true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;# Sysop (admin)&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;sysop&#039;][&#039;read&#039;] = true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;sysop&#039;][&#039;edit&#039;&lt;/ins&gt;] = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;sysop&#039;][&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;protect&lt;/ins&gt;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;] = true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;sysop&#039;][&#039;userrights&#039;] = true;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgGroupPermissions[&#039;sysop&#039;][&#039;createaccount&#039;] = true&lt;/ins&gt;;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key database:diff:1.41:old-22:rev-93:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>BabiSender</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=22&amp;oldid=prev</id>
		<title>BabiSender at 06:37, 12 February 2026</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=22&amp;oldid=prev"/>
		<updated>2026-02-12T06:37:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:37, 12 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l752&quot;&gt;Line 752:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 752:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Install additional extensions from https://www.mediawiki.org/wiki/Category:Extensions&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Install additional extensions from https://www.mediawiki.org/wiki/Category:Extensions&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;For additional help, visit the official MediaWiki documentation at https://www.mediawiki.org/&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&#039;&#039;&lt;/ins&gt;For additional help, visit the official MediaWiki documentation at&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&#039;&#039;&#039;&#039;&#039; &lt;/ins&gt;https://www.mediawiki.org/&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key database:diff:1.41:old-20:rev-22:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>BabiSender</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=20&amp;oldid=prev</id>
		<title>BabiSender at 06:33, 12 February 2026</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=20&amp;oldid=prev"/>
		<updated>2026-02-12T06:33:21Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 06:33, 12 February 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l534&quot;&gt;Line 534:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 534:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Click &amp;#039;&amp;#039;&amp;#039;Preferences&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Click &amp;#039;&amp;#039;&amp;#039;Preferences&amp;#039;&amp;#039;&amp;#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Click the &amp;#039;&amp;#039;&amp;#039;Two-factor authentication&amp;#039;&amp;#039;&amp;#039; tab (or &amp;#039;&amp;#039;&amp;#039;OATH&amp;#039;&amp;#039;&amp;#039; tab)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Click the &amp;#039;&amp;#039;&amp;#039;Two-factor authentication&amp;#039;&amp;#039;&amp;#039; tab (or &amp;#039;&amp;#039;&amp;#039;OATH&amp;#039;&amp;#039;&amp;#039; tab)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Click &#039;&#039;&#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Enable two-factor authentication&lt;/del&gt;&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# Click &#039;&#039;&#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Manage&#039;&#039;&#039; and &#039;&#039;&#039;Add an authenticator app&lt;/ins&gt;&#039;&#039;&#039;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# You&amp;#039;ll see a QR code on the screen&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# You&amp;#039;ll see a QR code on the screen&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key database:diff:1.41:old-19:rev-20:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>BabiSender</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=19&amp;oldid=prev</id>
		<title>BabiSender: Created page with &quot;== MediaWiki Additional Configuration Guide ==  &lt;div style=&quot;font-size: 100%;&quot;&gt; &#039;&#039;&#039;&#039;&#039;This guide covers advanced configuration options for your MediaWiki installation, including logos, permissions, email, private namespaces, and two-factor authentication.&#039;&#039;&#039;&#039;&#039;  &lt;div style=&quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&quot;&gt; &#039;&#039;&#039;Prerequisites:&#039;&#039;&#039; Complete the &#039;&#039;&#039;MediaWiki Docker Setup Guide&#039;&#039;&#039; before proceeding with...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.comfac.net/index.php?title=Mediawiki_Additional_Configuration&amp;diff=19&amp;oldid=prev"/>
		<updated>2026-02-12T06:14:48Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;== MediaWiki Additional Configuration Guide ==  &amp;lt;div style=&amp;quot;font-size: 100%;&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;This guide covers advanced configuration options for your MediaWiki installation, including logos, permissions, email, private namespaces, and two-factor authentication.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;  &amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt; &amp;#039;&amp;#039;&amp;#039;Prerequisites:&amp;#039;&amp;#039;&amp;#039; Complete the &amp;#039;&amp;#039;&amp;#039;&lt;a href=&quot;/index.php?title=MediaWiki_Docker_Setup_Guide&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki Docker Setup Guide (page does not exist)&quot;&gt;MediaWiki Docker Setup Guide&lt;/a&gt;&amp;#039;&amp;#039;&amp;#039; before proceeding with...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== MediaWiki Additional Configuration Guide ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-size: 100%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;This guide covers advanced configuration options for your MediaWiki installation, including logos, permissions, email, private namespaces, and two-factor authentication.&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Prerequisites:&amp;#039;&amp;#039;&amp;#039; Complete the &amp;#039;&amp;#039;&amp;#039;[[MediaWiki Docker Setup Guide]]&amp;#039;&amp;#039;&amp;#039; before proceeding with this configuration.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Advanced Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== Part 1: Customizing Your Wiki&amp;#039;s Appearance ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;1. Upload Your Logo Files&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Before configuring logos, you need to upload your logo images to the wiki&amp;#039;s images folder.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step A: Prepare Your Logo Files&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Create logo images in these sizes:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Small logo (50x50 pixels):&amp;#039;&amp;#039;&amp;#039; For favicon and small displays - save as &amp;lt;code&amp;gt;yourlogo-50.svg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;yourlogo-50.png&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Large logo (160x160 pixels):&amp;#039;&amp;#039;&amp;#039; For the main wiki logo - save as &amp;lt;code&amp;gt;yourlogo-160.svg&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;yourlogo-160.png&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Tip:&amp;#039;&amp;#039;&amp;#039; SVG format is recommended because it scales cleanly at any size. PNG is also acceptable.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step B: Copy Logo Files to the Server&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
First, you need to upload files to the Docker volume:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
# Create a temporary container to access the images volume&lt;br /&gt;
docker run -d --name temp-mediawiki \&lt;br /&gt;
  -v 230912_images:/var/www/html/images \&lt;br /&gt;
  mediawiki sleep 3600&lt;br /&gt;
&lt;br /&gt;
# Copy your logo files into the container&lt;br /&gt;
docker cp ~/Downloads/yourlogo-50.svg temp-mediawiki:/var/www/html/images/&lt;br /&gt;
docker cp ~/Downloads/yourlogo-160.svg temp-mediawiki:/var/www/html/images/&lt;br /&gt;
&lt;br /&gt;
# Fix permissions&lt;br /&gt;
docker exec temp-mediawiki chown 33:33 /var/www/html/images/yourlogo-50.svg&lt;br /&gt;
docker exec temp-mediawiki chown 33:33 /var/www/html/images/yourlogo-160.svg&lt;br /&gt;
&lt;br /&gt;
# Remove the temporary container&lt;br /&gt;
docker stop temp-mediawiki&lt;br /&gt;
docker rm temp-mediawiki&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; Replace &amp;lt;code&amp;gt;yourlogo-50.svg&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;yourlogo-160.svg&amp;lt;/code&amp;gt; with your actual filename. Adjust the path &amp;lt;code&amp;gt;~/Downloads/&amp;lt;/code&amp;gt; if your files are saved elsewhere.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2. Configure Logo and Favicon in LocalSettings.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open your LocalSettings.php file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find the existing &amp;lt;code&amp;gt;$wgLogos&amp;lt;/code&amp;gt; section (it looks like this):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
$wgLogos = [&lt;br /&gt;
	&amp;#039;1x&amp;#039; =&amp;gt; &amp;quot;$wgResourceBasePath/resources/assets/change-your-logo.svg&amp;quot;,&lt;br /&gt;
	&amp;#039;icon&amp;#039; =&amp;gt; &amp;quot;$wgResourceBasePath/resources/assets/change-your-logo.svg&amp;quot;,&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
$wgLogos = [&lt;br /&gt;
	&amp;#039;1x&amp;#039; =&amp;gt; &amp;quot;$wgResourceBasePath/images/yourlogo-160.svg&amp;quot;,&lt;br /&gt;
	&amp;#039;icon&amp;#039; =&amp;gt; &amp;quot;$wgResourceBasePath/images/yourlogo-50.svg&amp;quot;,&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
$wgFavicon = &amp;quot;$wgResourceBasePath/images/yourlogo-50.svg&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;What this does:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;#039;1x&amp;#039;&amp;lt;/code&amp;gt; sets your main wiki logo (shown in the corner)&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;#039;icon&amp;#039;&amp;lt;/code&amp;gt; sets the smaller icon version&lt;br /&gt;
* &amp;lt;code&amp;gt;$wgFavicon&amp;lt;/code&amp;gt; sets the browser tab icon&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 2: Customizing the Wiki Skin (Theme) ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;3. Configure the Modern Vector Skin&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
MediaWiki comes with several &amp;quot;skins&amp;quot; (visual themes). The Vector skin has a modern version called &amp;lt;code&amp;gt;vector-2022&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php again:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find this line near the bottom:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
$wgDefaultSkin = &amp;quot;monobook&amp;quot;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace it with this configuration block:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
# Use the modern Vector 2022 skin by default&lt;br /&gt;
$wgDefaultSkin = &amp;quot;vector-2022&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Make existing users see the new skin too&lt;br /&gt;
$wgVectorDefaultSkinVersionForExistingAccounts = &amp;quot;2&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Make the skin work well on mobile devices&lt;br /&gt;
$wgVectorResponsive = true;&lt;br /&gt;
&lt;br /&gt;
# Enable appearance customization options for users&lt;br /&gt;
$wgVectorFeatureFlags = [&lt;br /&gt;
    &amp;#039;VectorAppearance&amp;#039; =&amp;gt; [&lt;br /&gt;
        &amp;#039;logged_in&amp;#039; =&amp;gt; true,&lt;br /&gt;
        &amp;#039;logged_out&amp;#039; =&amp;gt; true,&lt;br /&gt;
    ],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;What this does:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Sets the modern Vector skin as default&lt;br /&gt;
* Makes it responsive for mobile/tablet viewing&lt;br /&gt;
* Allows users to customize appearance settings&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 3: Setting Up Email and SMTP ===&lt;br /&gt;
&lt;br /&gt;
This allows your wiki to send password reset emails, notifications, and user-to-user messages.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;4. Configure Email Settings&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Important:&amp;#039;&amp;#039;&amp;#039; This example uses Gmail. If using another email provider, you&amp;#039;ll need their SMTP settings.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step A: Generate a Gmail App Password&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
If using Gmail, you need an &amp;quot;App Password&amp;quot; (regular passwords won&amp;#039;t work):&lt;br /&gt;
&lt;br /&gt;
# Go to your Google Account: https://myaccount.google.com/&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;Security&amp;#039;&amp;#039;&amp;#039; in the left sidebar&lt;br /&gt;
# Scroll to &amp;quot;How you sign in to Google&amp;quot;&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;2-Step Verification&amp;#039;&amp;#039;&amp;#039; (you must enable this first)&lt;br /&gt;
# Scroll down and click &amp;#039;&amp;#039;&amp;#039;App passwords&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Select &amp;#039;&amp;#039;&amp;#039;Mail&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Other (Custom name)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Type &amp;quot;MediaWiki&amp;quot; as the name&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;Generate&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Copy the 16-character password (it looks like: &amp;lt;code&amp;gt;abcd efgh ijkl mnop&amp;lt;/code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step B: Add Email Configuration to LocalSettings.php&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Scroll to the bottom (after the extensions section) and add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
/*-------------------------------------------&lt;br /&gt;
EMAIL &amp;amp; SMTP CONFIGURATION&lt;br /&gt;
----------------------------------------- */&lt;br /&gt;
&lt;br /&gt;
# Enable email features&lt;br /&gt;
$wgEnableEmail = true;&lt;br /&gt;
$wgEnableUserEmail = true;&lt;br /&gt;
$wgEmailAuthentication = true;&lt;br /&gt;
&lt;br /&gt;
# Enable email notifications for talk pages and watchlist&lt;br /&gt;
$wgEnotifUserTalk = true;&lt;br /&gt;
$wgEnotifWatchlist = true;&lt;br /&gt;
&lt;br /&gt;
# Set your wiki&amp;#039;s email addresses&lt;br /&gt;
$wgEmergencyContact = &amp;quot;your-email@gmail.com&amp;quot;;&lt;br /&gt;
$wgPasswordSender = &amp;quot;your-email@gmail.com&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Gmail SMTP configuration&lt;br /&gt;
$wgSMTP = [&lt;br /&gt;
    &amp;#039;host&amp;#039;     =&amp;gt; &amp;#039;smtp.gmail.com&amp;#039;,&lt;br /&gt;
    &amp;#039;IDHost&amp;#039;   =&amp;gt; &amp;#039;yourdomain.com&amp;#039;,           # Your domain (or &amp;#039;gmail.com&amp;#039; for testing)&lt;br /&gt;
    &amp;#039;port&amp;#039;     =&amp;gt; 587,&lt;br /&gt;
    &amp;#039;auth&amp;#039;     =&amp;gt; true,&lt;br /&gt;
    &amp;#039;username&amp;#039; =&amp;gt; &amp;#039;your-email@gmail.com&amp;#039;,     # Your Gmail address&lt;br /&gt;
    &amp;#039;password&amp;#039; =&amp;gt; &amp;#039;your app password here&amp;#039;,   # Paste your 16-character App Password&lt;br /&gt;
    &amp;#039;secure&amp;#039;   =&amp;gt; &amp;#039;tls&amp;#039;&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
# Email settings&lt;br /&gt;
$wgUserEmailUseReplyTo = true;&lt;br /&gt;
$wgAllowHTMLEmail = true;&lt;br /&gt;
&lt;br /&gt;
# Enable password reset via email&lt;br /&gt;
$wgPasswordResetRoutes = [&lt;br /&gt;
    &amp;#039;username&amp;#039; =&amp;gt; true,&lt;br /&gt;
    &amp;#039;email&amp;#039; =&amp;gt; true,&lt;br /&gt;
];&lt;br /&gt;
&lt;br /&gt;
# Password reset links expire after 24 hours&lt;br /&gt;
$wgNewPasswordExpiry = 86400;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Replace these values:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;lt;code&amp;gt;your-email@gmail.com&amp;lt;/code&amp;gt; → Your actual Gmail address&lt;br /&gt;
* &amp;lt;code&amp;gt;your app password here&amp;lt;/code&amp;gt; → The 16-character password from Step A (remove spaces)&lt;br /&gt;
* &amp;lt;code&amp;gt;yourdomain.com&amp;lt;/code&amp;gt; → Your wiki&amp;#039;s domain name&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 4: Permission System (Who Can Do What) ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;5. Create a Clean Permission Structure&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
By default, MediaWiki allows anyone to edit. Let&amp;#039;s create a more controlled system with different user levels.&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find the existing permissions section in your CUSTOM PERMISSIONS &amp;amp; EXTENSIONS block:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
// 1. SECURITY: Prevent anonymous editing and account creation&lt;br /&gt;
$wgGroupPermissions[&amp;#039;*&amp;#039;][&amp;#039;edit&amp;#039;] = false;&lt;br /&gt;
$wgGroupPermissions[&amp;#039;*&amp;#039;][&amp;#039;createaccount&amp;#039;] = false;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace it with this expanded permission system:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
/*-------------------------------------------&lt;br /&gt;
CLEAN PERMISSION SYSTEM&lt;br /&gt;
----------------------------------------- */&lt;br /&gt;
&lt;br /&gt;
# ANONYMOUS USERS (not logged in)&lt;br /&gt;
$wgGroupPermissions[&amp;#039;*&amp;#039;][&amp;#039;read&amp;#039;] = true;           # Can view pages&lt;br /&gt;
$wgGroupPermissions[&amp;#039;*&amp;#039;][&amp;#039;edit&amp;#039;] = false;          # Cannot edit&lt;br /&gt;
$wgGroupPermissions[&amp;#039;*&amp;#039;][&amp;#039;createaccount&amp;#039;] = false; # Cannot create accounts&lt;br /&gt;
&lt;br /&gt;
# LOGGED-IN USERS (default group)&lt;br /&gt;
$wgGroupPermissions[&amp;#039;user&amp;#039;][&amp;#039;read&amp;#039;] = true;        # Can view pages&lt;br /&gt;
$wgGroupPermissions[&amp;#039;user&amp;#039;][&amp;#039;edit&amp;#039;] = false;       # Cannot edit (read-only)&lt;br /&gt;
&lt;br /&gt;
# EDITOR GROUP (must be assigned by admin)&lt;br /&gt;
$wgGroupPermissions[&amp;#039;editor&amp;#039;][&amp;#039;read&amp;#039;] = true;      # Can view pages&lt;br /&gt;
$wgGroupPermissions[&amp;#039;editor&amp;#039;][&amp;#039;edit&amp;#039;] = true;      # Can edit pages&lt;br /&gt;
$wgGroupPermissions[&amp;#039;editor&amp;#039;][&amp;#039;upload&amp;#039;] = true;    # Can upload files&lt;br /&gt;
$wgGroupPermissions[&amp;#039;editor&amp;#039;][&amp;#039;reupload&amp;#039;] = true;  # Can replace existing files&lt;br /&gt;
&lt;br /&gt;
# SYSOP GROUP (administrators)&lt;br /&gt;
$wgGroupPermissions[&amp;#039;sysop&amp;#039;][&amp;#039;read&amp;#039;] = true;       # Can view pages&lt;br /&gt;
$wgGroupPermissions[&amp;#039;sysop&amp;#039;][&amp;#039;edit&amp;#039;] = true;       # Can edit pages&lt;br /&gt;
$wgGroupPermissions[&amp;#039;sysop&amp;#039;][&amp;#039;protect&amp;#039;] = true;    # Can protect pages&lt;br /&gt;
$wgGroupPermissions[&amp;#039;sysop&amp;#039;][&amp;#039;userrights&amp;#039;] = true; # Can assign user groups&lt;br /&gt;
&lt;br /&gt;
# Enable protection levels&lt;br /&gt;
$wgRestrictionLevels[] = &amp;#039;user&amp;#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;What this permission structure means:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Anonymous visitors:&amp;#039;&amp;#039;&amp;#039; Can only read pages&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Logged-in users:&amp;#039;&amp;#039;&amp;#039; Can only read pages (no editing)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Editors:&amp;#039;&amp;#039;&amp;#039; Can read, edit, and upload files (assigned by admins)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Sysops (Admins):&amp;#039;&amp;#039;&amp;#039; Full control over the wiki&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to assign the Editor role:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After restarting your wiki, log in as an admin and go to:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Special:UserRights&amp;#039;&amp;#039;&amp;#039; (or click &amp;#039;&amp;#039;&amp;#039;Special Pages&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;User rights management&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
* Enter a username&lt;br /&gt;
* Check the &amp;#039;&amp;#039;&amp;#039;editor&amp;#039;&amp;#039;&amp;#039; box&lt;br /&gt;
* Click &amp;#039;&amp;#039;&amp;#039;Save user groups&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 5: Creating a Private Namespace ===&lt;br /&gt;
&lt;br /&gt;
Private namespaces let you create pages that only certain user groups can see. This is useful for internal documentation, confidential information, or drafts.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;6. Configure the Private Namespace&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
The Lockdown extension should already be installed from the basic setup. Now let&amp;#039;s configure it.&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add this section after your extensions (near the bottom of the CUSTOM PERMISSIONS &amp;amp; EXTENSIONS block):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
/*-------------------------------------------&lt;br /&gt;
PRIVATE NAMESPACE (RESTRICTED ACCESS)&lt;br /&gt;
----------------------------------------- */&lt;br /&gt;
&lt;br /&gt;
# Load the Lockdown extension&lt;br /&gt;
wfLoadExtension( &amp;#039;Lockdown&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
# Define namespace IDs (must be unique)&lt;br /&gt;
define(&amp;quot;NS_PRIVATE&amp;quot;, 3000);&lt;br /&gt;
define(&amp;quot;NS_PRIVATE_TALK&amp;quot;, 3001);&lt;br /&gt;
&lt;br /&gt;
# Register the namespace names&lt;br /&gt;
$wgExtraNamespaces[NS_PRIVATE] = &amp;quot;Private&amp;quot;;&lt;br /&gt;
$wgExtraNamespaces[NS_PRIVATE_TALK] = &amp;quot;Private_talk&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
# Set permissions for the Private namespace&lt;br /&gt;
# Only logged-in users, editors, and admins can READ&lt;br /&gt;
$wgNamespacePermissionLockdown[NS_PRIVATE][&amp;#039;read&amp;#039;] = [&amp;#039;user&amp;#039;, &amp;#039;editor&amp;#039;, &amp;#039;sysop&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
# Only editors and admins can EDIT&lt;br /&gt;
$wgNamespacePermissionLockdown[NS_PRIVATE][&amp;#039;edit&amp;#039;] = [&amp;#039;editor&amp;#039;, &amp;#039;sysop&amp;#039;];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;How to use the Private namespace:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
To create a private page, use this format in the URL or search:&lt;br /&gt;
* &amp;lt;code&amp;gt;Private:YourPageName&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example: &amp;lt;code&amp;gt;Private:Company_Policies&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Anonymous users and non-logged-in visitors will get an access denied message.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 6: Additional Recommended Extensions ===&lt;br /&gt;
&lt;br /&gt;
These extensions add useful features for a professional wiki.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;7. Enable Additional Extensions&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find your EXTERNAL EXTENSIONS section and expand it with these additional extensions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
// 3. EXTERNAL EXTENSIONS&lt;br /&gt;
wfLoadExtension( &amp;#039;Mermaid&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
/*-------------------------------------------&lt;br /&gt;
ADDITIONAL RECOMMENDED EXTENSIONS&lt;br /&gt;
----------------------------------------- */&lt;br /&gt;
&lt;br /&gt;
# Content organization&lt;br /&gt;
wfLoadExtension( &amp;#039;CategoryTree&amp;#039; );      # Browse categories as tree structure&lt;br /&gt;
wfLoadExtension( &amp;#039;ImageMap&amp;#039; );          # Clickable image regions&lt;br /&gt;
&lt;br /&gt;
# User experience&lt;br /&gt;
wfLoadExtension( &amp;#039;Echo&amp;#039; );              # Notification system&lt;br /&gt;
wfLoadExtension( &amp;#039;Thanks&amp;#039; );            # Thank users for edits&lt;br /&gt;
wfLoadExtension( &amp;#039;DiscussionTools&amp;#039; );   # Better talk page discussions&lt;br /&gt;
&lt;br /&gt;
# Content features&lt;br /&gt;
wfLoadExtension( &amp;#039;TemplateData&amp;#039; );      # Document templates&lt;br /&gt;
wfLoadExtension( &amp;#039;TemplateStyles&amp;#039; );    # CSS styling for templates&lt;br /&gt;
wfLoadExtension( &amp;#039;Poem&amp;#039; );              # Format poetry and verse&lt;br /&gt;
&lt;br /&gt;
# File handling&lt;br /&gt;
wfLoadExtension( &amp;#039;PdfHandler&amp;#039; );        # Display PDF thumbnails&lt;br /&gt;
wfLoadExtension( &amp;#039;MultimediaViewer&amp;#039; );  # Better image viewing&lt;br /&gt;
&lt;br /&gt;
# Moderation &amp;amp; security&lt;br /&gt;
wfLoadExtension( &amp;#039;ConfirmEdit&amp;#039; );       # CAPTCHA for spam prevention&lt;br /&gt;
wfLoadExtension( &amp;#039;SpamBlacklist&amp;#039; );     # Block spam URLs&lt;br /&gt;
wfLoadExtension( &amp;#039;TitleBlacklist&amp;#039; );    # Block page title patterns&lt;br /&gt;
wfLoadExtension( &amp;#039;CiteThisPage&amp;#039; );      # Citation tools&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; Some of these extensions may already be included in your MediaWiki installation. If you get an error about a missing extension after restarting, simply comment out that line by adding &amp;lt;code&amp;gt;#&amp;lt;/code&amp;gt; at the beginning or remove it entirely.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 7: Enable File Uploads ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;8. Configure Upload Settings&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find the line with &amp;lt;code&amp;gt;$wgEnableUploads&amp;lt;/code&amp;gt; and update the upload settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
# Enable file uploads&lt;br /&gt;
$wgEnableUploads = true;&lt;br /&gt;
$wgUseImageMagick = true;&lt;br /&gt;
$wgImageMagickConvertCommand = &amp;quot;/usr/bin/convert&amp;quot;;&lt;br /&gt;
$wgUseInstantCommons = false;&lt;br /&gt;
&lt;br /&gt;
# Allow these file types to be uploaded&lt;br /&gt;
$wgFileExtensions = [&amp;#039;png&amp;#039;,&amp;#039;gif&amp;#039;,&amp;#039;jpg&amp;#039;,&amp;#039;jpeg&amp;#039;,&amp;#039;webp&amp;#039;,&amp;#039;svg&amp;#039;,&amp;#039;pdf&amp;#039;,&amp;#039;doc&amp;#039;,&amp;#039;docx&amp;#039;,&amp;#039;xls&amp;#039;,&amp;#039;xlsx&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
# Allow SVG files with embedded titles&lt;br /&gt;
$wgAllowTitleInSVG = true;&lt;br /&gt;
$wgSVGConverter = &amp;#039;ImageMagick&amp;#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note:&amp;#039;&amp;#039;&amp;#039; You can add or remove file extensions based on your needs. Be cautious about allowing executable files or scripts.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 8: Two-Factor Authentication for Administrators ===&lt;br /&gt;
&lt;br /&gt;
Add an extra layer of security by requiring administrators to use two-factor authentication.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;9. Install the OATHAuth Extension&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
First, check if the extension already exists:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
ls /opt/stacks/mediawiki/extensions/ | grep -i oath&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don&amp;#039;t see &amp;lt;code&amp;gt;OATHAuth&amp;lt;/code&amp;gt;, install it:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
cd /opt/stacks/mediawiki/extensions&lt;br /&gt;
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/OATHAuth.git&lt;br /&gt;
sudo chown -R 33:33 OATHAuth&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;10. Configure OATHAuth for Admins Only&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Open LocalSettings.php:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /opt/stacks/mediawiki/LocalSettings.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Add this configuration after your extensions:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
/*-------------------------------------------&lt;br /&gt;
TWO-FACTOR AUTHENTICATION (ADMINS ONLY)&lt;br /&gt;
----------------------------------------- */&lt;br /&gt;
&lt;br /&gt;
# Load the OATHAuth extension&lt;br /&gt;
wfLoadExtension( &amp;#039;OATHAuth&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
# REQUIRE 2FA for administrators (sysops) only&lt;br /&gt;
$wgOATHRequiredForGroups = [&amp;#039;sysop&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
# Optional: Also require 2FA for bureaucrats if you have this group&lt;br /&gt;
# $wgOATHRequiredForGroups = [&amp;#039;sysop&amp;#039;, &amp;#039;bureaucrat&amp;#039;];&lt;br /&gt;
&lt;br /&gt;
# Allow TOTP (Time-based One-Time Password) - works with Google Authenticator, Authy, etc.&lt;br /&gt;
$wgOATHAuthModules = [&lt;br /&gt;
    &amp;#039;totp&amp;#039; =&amp;gt; [&lt;br /&gt;
        &amp;#039;class&amp;#039; =&amp;gt; &amp;#039;MediaWiki\\Extension\\OATHAuth\\Module\\TOTP&amp;#039;,&lt;br /&gt;
    ],&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #f8f9fa; border-left: 4px solid #3498db; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;What this does:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Loads the OATHAuth extension&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Requires&amp;#039;&amp;#039;&amp;#039; 2FA only for users in the &amp;#039;sysop&amp;#039; (administrator) group&lt;br /&gt;
* Regular users and editors do NOT need 2FA&lt;br /&gt;
* Uses TOTP method (compatible with most authenticator apps)&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save and exit.&lt;br /&gt;
&lt;br /&gt;
=== Part 9: Apply All Changes ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;11. Update the Database and Restart&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
After making all these configuration changes, update your database and restart the containers:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
# Update database to recognize new extensions and namespaces&lt;br /&gt;
docker exec -it mediawiki php maintenance/update.php --quick&lt;br /&gt;
&lt;br /&gt;
# Restart MediaWiki to apply all changes&lt;br /&gt;
cd /opt/stacks/mediawiki&lt;br /&gt;
docker compose restart&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Wait about 30 seconds for the containers to fully restart.&lt;br /&gt;
&lt;br /&gt;
== Setting Up Two-Factor Authentication ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;12. Set Up 2FA for Administrator Accounts&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Now each administrator needs to enable 2FA on their account.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step A: Install an Authenticator App (If Not Already Installed)&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
On your phone or tablet, install one of these apps:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Google Authenticator&amp;#039;&amp;#039;&amp;#039; (iOS/Android)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Microsoft Authenticator&amp;#039;&amp;#039;&amp;#039; (iOS/Android)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Authy&amp;#039;&amp;#039;&amp;#039; (iOS/Android)&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;1Password&amp;#039;&amp;#039;&amp;#039; (if you use a password manager)&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step B: Enable 2FA on Your Admin Account&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Log in to MediaWiki as an administrator&lt;br /&gt;
# Click on your username in the top-right corner&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;Preferences&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Click the &amp;#039;&amp;#039;&amp;#039;Two-factor authentication&amp;#039;&amp;#039;&amp;#039; tab (or &amp;#039;&amp;#039;&amp;#039;OATH&amp;#039;&amp;#039;&amp;#039; tab)&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;Enable two-factor authentication&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# You&amp;#039;ll see a QR code on the screen&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step C: Scan the QR Code&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Open your authenticator app on your phone&lt;br /&gt;
# Tap the &amp;quot;+&amp;quot; or &amp;quot;Add account&amp;quot; button&lt;br /&gt;
# Scan the QR code shown on your screen&lt;br /&gt;
# The app will add an entry like &amp;quot;MediaWiki - YourUsername&amp;quot;&lt;br /&gt;
# You&amp;#039;ll see a 6-digit code that changes every 30 seconds&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Step D: Verify the Setup&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
# Enter the 6-digit code from your authenticator app into the MediaWiki form&lt;br /&gt;
# You&amp;#039;ll also see &amp;#039;&amp;#039;&amp;#039;scratch codes&amp;#039;&amp;#039;&amp;#039; (recovery codes) - SAVE THESE SAFELY!&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;Confirm&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Enable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;CRITICAL - Save Your Recovery Codes!&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Write down or securely save your recovery codes (also called scratch codes). If you lose access to your phone, these codes are the ONLY way to regain access to your account. Store them in a safe place like:&lt;br /&gt;
* A password manager&lt;br /&gt;
* A secure note app&lt;br /&gt;
* Printed on paper in a safe location&lt;br /&gt;
&lt;br /&gt;
Each recovery code can only be used once.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;13. Test Two-Factor Authentication&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Log out and log back in&amp;#039;&amp;#039;&amp;#039; to verify 2FA is working:&lt;br /&gt;
&lt;br /&gt;
# Log out of your MediaWiki account&lt;br /&gt;
# Log back in with your username and password&lt;br /&gt;
# You&amp;#039;ll now see a new screen asking for a &amp;#039;&amp;#039;&amp;#039;Two-factor authentication token&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Open your authenticator app&lt;br /&gt;
# Enter the current 6-digit code&lt;br /&gt;
# Click &amp;#039;&amp;#039;&amp;#039;Continue&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Log in&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
You should now be logged in successfully!&lt;br /&gt;
&lt;br /&gt;
== Verification Checklist ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;14. Test Your Configuration&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Visit your wiki and verify these features are working:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Logo:&amp;#039;&amp;#039;&amp;#039; Your custom logo appears in the top-left corner and as the favicon&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Skin:&amp;#039;&amp;#039;&amp;#039; The modern Vector 2022 skin is active&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Permissions:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
# Log out and confirm you can only read pages&lt;br /&gt;
# Log in as a regular user and confirm you cannot edit&lt;br /&gt;
# Log in as admin and assign the &amp;quot;editor&amp;quot; role to a test user via &amp;#039;&amp;#039;&amp;#039;Special:UserRights&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Confirm the editor can now edit pages&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Email:&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
# Click &amp;quot;Forgot password?&amp;quot; on the login page&lt;br /&gt;
# Enter your username or email&lt;br /&gt;
# Check that you receive the reset email&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Private Namespace:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Create a page like &amp;lt;code&amp;gt;Private:Test&amp;lt;/code&amp;gt;&lt;br /&gt;
# Log out and confirm anonymous users cannot access it&lt;br /&gt;
# Log in as a regular user and confirm you can view it&lt;br /&gt;
# Check that only editors and admins can edit it&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;File Uploads:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Log in as an editor or admin&lt;br /&gt;
# Go to &amp;#039;&amp;#039;&amp;#039;Special:Upload&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Try uploading an image file&lt;br /&gt;
# Verify it appears on the page&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Two-Factor Authentication:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Verify all admins have set up 2FA&lt;br /&gt;
# Test login process with 2FA code&lt;br /&gt;
# Verify recovery codes are saved securely&lt;br /&gt;
&lt;br /&gt;
== Managing Two-Factor Authentication ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If an Admin Loses Access to Their Phone:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
They can use one of their recovery codes instead of the authenticator code:&lt;br /&gt;
# At the 2FA prompt, enter one of the saved recovery codes&lt;br /&gt;
# Once logged in, immediately go to &amp;#039;&amp;#039;&amp;#039;Preferences&amp;#039;&amp;#039;&amp;#039; → &amp;#039;&amp;#039;&amp;#039;Two-factor authentication&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
# Disable 2FA, then re-enable it with a new QR code&lt;br /&gt;
# Generate new recovery codes&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;If Recovery Codes Are Also Lost:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Another administrator needs to disable 2FA for that account:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
# Run this command to disable 2FA for a specific user&lt;br /&gt;
docker exec -it mediawiki php maintenance/run.php OATHAuth:deleteUser --user=&amp;quot;USERNAME&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &amp;lt;code&amp;gt;USERNAME&amp;lt;/code&amp;gt; with the actual username.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;background-color: #fff3cd; border-left: 4px solid #ffc107; padding: 12px; margin: 15px 0; font-size: 90%;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Security Tip:&amp;#039;&amp;#039;&amp;#039; Create at least two administrator accounts so one admin can help recover another&amp;#039;s account if needed.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Email not sending?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Verify your Gmail App Password is correct (16 characters, no spaces)&lt;br /&gt;
* Check that 2-Step Verification is enabled on your Google account&lt;br /&gt;
* Look at container logs: &amp;lt;code&amp;gt;docker compose logs -f mediawiki&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Logo not appearing?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Verify files were copied correctly: &amp;lt;code&amp;gt;docker exec mediawiki ls -la /var/www/html/images/&amp;lt;/code&amp;gt;&lt;br /&gt;
* Hard refresh your browser: &amp;lt;code&amp;gt;Ctrl + Shift + R&amp;lt;/code&amp;gt; (Windows/Linux) or &amp;lt;code&amp;gt;Cmd + Shift + R&amp;lt;/code&amp;gt; (Mac)&lt;br /&gt;
* Check the exact filenames in LocalSettings.php match the uploaded files&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Private namespace not working?&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Ensure Lockdown extension is installed: &amp;lt;code&amp;gt;ls /opt/stacks/mediawiki/extensions/Lockdown&amp;lt;/code&amp;gt;&lt;br /&gt;
* Run database update: &amp;lt;code&amp;gt;docker exec -it mediawiki php maintenance/update.php --quick&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart containers: &amp;lt;code&amp;gt;docker compose restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;2FA prompt not appearing for admins:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Verify the configuration in LocalSettings.php&lt;br /&gt;
* Check that database update ran successfully: &amp;lt;code&amp;gt;docker exec -it mediawiki php maintenance/update.php&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart containers: &amp;lt;code&amp;gt;docker compose restart&amp;lt;/code&amp;gt;&lt;br /&gt;
* Clear your browser cache and try again&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;QR code not displaying:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Check container logs: &amp;lt;code&amp;gt;docker compose logs -f mediawiki&amp;lt;/code&amp;gt;&lt;br /&gt;
* Verify OATHAuth extension is installed: &amp;lt;code&amp;gt;ls /opt/stacks/mediawiki/extensions/OATHAuth&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Authenticator codes not working:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Verify your phone&amp;#039;s time is set to automatic (not manual)&lt;br /&gt;
* Time synchronization is critical for TOTP to work&lt;br /&gt;
* Try syncing time in your authenticator app settings&lt;br /&gt;
&lt;br /&gt;
== Maintenance Tasks ==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Regular Backups&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
Create a backup script for your wiki:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
# Save as /opt/scripts/backup-mediawiki.sh&lt;br /&gt;
&lt;br /&gt;
BACKUP_DIR=&amp;quot;/opt/backups/mediawiki&amp;quot;&lt;br /&gt;
DATE=$(date +%Y%m%d_%H%M%S)&lt;br /&gt;
&lt;br /&gt;
mkdir -p $BACKUP_DIR&lt;br /&gt;
&lt;br /&gt;
# Backup database&lt;br /&gt;
docker exec mediawiki-db mysqldump -u root -pyour_root_password my_wiki &amp;gt; $BACKUP_DIR/db_$DATE.sql&lt;br /&gt;
&lt;br /&gt;
# Backup LocalSettings.php&lt;br /&gt;
cp /opt/stacks/mediawiki/LocalSettings.php $BACKUP_DIR/LocalSettings_$DATE.php&lt;br /&gt;
&lt;br /&gt;
# Backup images (use docker volume backup)&lt;br /&gt;
docker run --rm -v 230912_images:/data -v $BACKUP_DIR:/backup alpine tar czf /backup/images_$DATE.tar.gz -C /data .&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Backup completed: $DATE&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Updating MediaWiki&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
When a new version is released:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; style=&amp;quot;font-size: 85%;&amp;quot;&amp;gt;&lt;br /&gt;
# Pull the latest MediaWiki image&lt;br /&gt;
docker pull mediawiki:latest&lt;br /&gt;
&lt;br /&gt;
# Restart with the new image&lt;br /&gt;
cd /opt/stacks/mediawiki&lt;br /&gt;
docker compose down&lt;br /&gt;
docker compose up -d&lt;br /&gt;
&lt;br /&gt;
# Update the database schema&lt;br /&gt;
docker exec -it mediawiki php maintenance/update.php&lt;br /&gt;
&lt;br /&gt;
# Clear the cache&lt;br /&gt;
docker exec -it mediawiki php maintenance/rebuildLocalisationCache.php&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Summary ==&lt;br /&gt;
&lt;br /&gt;
You&amp;#039;ve successfully configured advanced features for your MediaWiki installation:&lt;br /&gt;
&lt;br /&gt;
✓ Custom logos and modern Vector 2022 theme&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
✓ Email notifications via SMTP (Gmail)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
✓ Multi-level permission system (Anonymous, User, Editor, Sysop)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
✓ Private namespace for confidential content&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
✓ Additional professional extensions&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
✓ File upload capabilities&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
✓ Two-factor authentication for administrators&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
✓ Enhanced security hardening&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;Your MediaWiki installation is now fully configured and production-ready!&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
== Next Steps ==&lt;br /&gt;
&lt;br /&gt;
Your wiki is now fully configured! You can:&lt;br /&gt;
&lt;br /&gt;
* Create user accounts and assign roles via &amp;#039;&amp;#039;&amp;#039;Special:UserRights&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Start creating content in the main namespace&lt;br /&gt;
* Create private documentation in the &amp;lt;code&amp;gt;Private:&amp;lt;/code&amp;gt; namespace&lt;br /&gt;
* Customize the main page by editing &amp;#039;&amp;#039;&amp;#039;MediaWiki:Mainpage&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* Explore &amp;#039;&amp;#039;&amp;#039;Special:SpecialPages&amp;#039;&amp;#039;&amp;#039; to discover all available features&lt;br /&gt;
* Set up automatic backups (see Maintenance Tasks above)&lt;br /&gt;
* Configure SSL/HTTPS if not already done&lt;br /&gt;
* Install additional extensions from https://www.mediawiki.org/wiki/Category:Extensions&lt;br /&gt;
&lt;br /&gt;
For additional help, visit the official MediaWiki documentation at https://www.mediawiki.org/&lt;/div&gt;</summary>
		<author><name>BabiSender</name></author>
	</entry>
</feed>