<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.opensourceecology.org/index.php?action=history&amp;feed=atom&amp;title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3</id>
	<title>CHG-2025-XX-XX migrate wiki to hetzner3 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.opensourceecology.org/index.php?action=history&amp;feed=atom&amp;title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3"/>
	<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;action=history"/>
	<updated>2026-04-16T19:03:34Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.13</generator>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=304441&amp;oldid=prev</id>
		<title>Maltfield: update LocalSettings to enable the new extensions SmiteSpam &amp; DeleteBatch</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=304441&amp;oldid=prev"/>
		<updated>2025-03-17T21:57:30Z</updated>

		<summary type="html">&lt;p&gt;update LocalSettings to enable the new extensions SmiteSpam &amp;amp; DeleteBatch&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 21:57, 17 March 2025&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-l277&quot;&gt;Line 277:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 277:&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;         fi&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;         fi&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;done&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;done&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;&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;# enable new extensions: SmiteSpam &amp;amp; DeleteBatch&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;grep &#039;SmiteSpam&#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &quot;s%wfLoadExtension\( &#039;Nuke&#039; \);%wfLoadExtension( &#039;Nuke&#039; );\nwfLoadExtension( &#039;SmiteSpam&#039; );\nwfLoadExtension( &#039;DeleteBatch&#039; );%igs&quot; ${vhostDir}/LocalSettings.php&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;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;# add skins (with wfLoadSkin() instead of require_once)&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;# add skins (with wfLoadSkin() instead of require_once)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=304440&amp;oldid=prev</id>
		<title>Maltfield: adding a couple new spam-cleanup-related plugins per discussion with Marcin</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=304440&amp;oldid=prev"/>
		<updated>2025-03-17T21:37:38Z</updated>

		<summary type="html">&lt;p&gt;adding a couple new spam-cleanup-related plugins per discussion with Marcin&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 21:37, 17 March 2025&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-l266&quot;&gt;Line 266:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 266:&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;# UPDATE 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;# UPDATE 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;extensions=&amp;quot;ConfirmAccount UserMerge Widgets&amp;quot;&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;extensions=&amp;quot;ConfirmAccount UserMerge Widgets &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DeleteBatch SmiteSpam&lt;/ins&gt;&amp;quot;&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;&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;for extension in ${extensions}; do&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;for extension in ${extensions}; do&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303480&amp;oldid=prev</id>
		<title>Maltfield: add bogus chmod command</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303480&amp;oldid=prev"/>
		<updated>2025-02-13T23:06:52Z</updated>

		<summary type="html">&lt;p&gt;add bogus chmod command&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 23:06, 13 February 2025&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-l201&quot;&gt;Line 201:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 201:&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;# fix MediaWiki bugs&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;# fix MediaWiki bugs&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;grep &amp;#039;ini_set&amp;#039; ${vhostDir}/LocalSettings.php || sed -i &amp;#039;s%^&amp;lt;?php%&amp;lt;?php\n# fix mediawiki bugs\n# * https://phabricator.wikimedia.org/T385965\nif( ! function_exists(&amp;quot;ini_set&amp;quot;) ){\n\tfunction ini_set(){\n\t\treturn;\n\t}\n}\nif( ! function_exists(&amp;quot;putenv&amp;quot;) ){\n\tfunction putenv(){\n\t\treturn;\n\t}\n}\nif( ! function_exists(&amp;quot;php_uname&amp;quot;) ){\n\tfunction php_uname(){\n\t\treturn;\n\t}\n}\nif( ! function_exists(&amp;quot;set_time_limit&amp;quot;) ){\n\tfunction set_time_limit(){\n\t\treturn;\n\t}\n}\n%&amp;#039; ${vhostDir}/LocalSettings.php&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;grep &amp;#039;ini_set&amp;#039; ${vhostDir}/LocalSettings.php || sed -i &amp;#039;s%^&amp;lt;?php%&amp;lt;?php\n# fix mediawiki bugs\n# * https://phabricator.wikimedia.org/T385965\nif( ! function_exists(&amp;quot;ini_set&amp;quot;) ){\n\tfunction ini_set(){\n\t\treturn;\n\t}\n}\nif( ! function_exists(&amp;quot;putenv&amp;quot;) ){\n\tfunction putenv(){\n\t\treturn;\n\t}\n}\nif( ! function_exists(&amp;quot;php_uname&amp;quot;) ){\n\tfunction php_uname(){\n\t\treturn;\n\t}\n}\nif( ! function_exists(&amp;quot;set_time_limit&amp;quot;) ){\n\tfunction set_time_limit&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(){\n\t\treturn;\n\t}\n}\nif( ! function_exists(&amp;quot;chmod&amp;quot;) ){\n\tfunction chmod&lt;/ins&gt;(){\n\t\treturn;\n\t}\n}\n%&amp;#039; ${vhostDir}/LocalSettings.php&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;&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;# FIX PERMISSIONS&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;# FIX PERMISSIONS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303479&amp;oldid=prev</id>
		<title>Maltfield: missing semicolons</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303479&amp;oldid=prev"/>
		<updated>2025-02-13T22:59:56Z</updated>

		<summary type="html">&lt;p&gt;missing semicolons&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 22:59, 13 February 2025&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-l285&quot;&gt;Line 285:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 285:&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;# re-enable ConfirmEdit and switch to FancyCaption&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;# re-enable ConfirmEdit and switch to FancyCaption&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;grep &amp;#039;FancyCaptcha&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;%\#\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;\n\nwfLoadExtensions([ &amp;#039;ConfirmEdit&amp;#039;, &amp;#039;ConfirmEdit/FancyCaptcha&amp;#039; ]);\n\\\$wgCaptchaDirectory = &amp;#039;/var/www/html/wiki.opensourceecology.org/htdocs/images/captcha/&amp;#039;\n\\\$wgCaptchaSecret = &amp;#039;$wgCaptchaSecret&amp;#039;\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;grep &amp;#039;FancyCaptcha&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;%\#\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;\n\nwfLoadExtensions([ &amp;#039;ConfirmEdit&amp;#039;, &amp;#039;ConfirmEdit/FancyCaptcha&amp;#039; ]);\n\\\$wgCaptchaDirectory = &amp;#039;/var/www/html/wiki.opensourceecology.org/htdocs/images/captcha/&amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/ins&gt;\n\\\$wgCaptchaSecret = &amp;#039;$wgCaptchaSecret&amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/ins&gt;\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;&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;# update cron script to use new secret&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;# update cron script to use new secret&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303478&amp;oldid=prev</id>
		<title>Maltfield: make backup of mediawiki_generate_captchas.sh first</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303478&amp;oldid=prev"/>
		<updated>2025-02-13T22:48:02Z</updated>

		<summary type="html">&lt;p&gt;make backup of mediawiki_generate_captchas.sh first&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 22:48, 13 February 2025&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-l288&quot;&gt;Line 288:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 288:&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;# update cron script to use new secret&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;# update cron script to use new secret&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;sed -&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;e &lt;/del&gt;&amp;quot;s%CAPTCHA_SECRET=&amp;#039;\([^&amp;#039;]*\)&amp;#039;%\CAPTCHA_SECRET=&amp;#039;$wgCaptchaSecret&amp;#039;%&amp;quot; /usr/local/bin/mediawiki_generate_captchas.sh&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;cp /usr/local/bin/mediawiki_generate_captchas.sh /usr/local/bin/mediawiki_generate_captchas.sh.$(date &amp;quot;+%Y%m%d_%H%M%S&amp;quot;)&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;sed -&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;ie &lt;/ins&gt;&amp;quot;s%CAPTCHA_SECRET=&amp;#039;\([^&amp;#039;]*\)&amp;#039;%\CAPTCHA_SECRET=&amp;#039;$wgCaptchaSecret&amp;#039;%&amp;quot; /usr/local/bin/mediawiki_generate_captchas.sh&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;&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;# re-enable ConfirmAccount extension&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;# re-enable ConfirmAccount extension&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303477&amp;oldid=prev</id>
		<title>Maltfield: update CAPTCHA salt secret in /usr/local/bin/mediawiki_generate_captchas.sh to match MediaWiki LocalSettings.php file</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303477&amp;oldid=prev"/>
		<updated>2025-02-13T22:46:26Z</updated>

		<summary type="html">&lt;p&gt;update CAPTCHA salt secret in /usr/local/bin/mediawiki_generate_captchas.sh to match MediaWiki LocalSettings.php file&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 22:46, 13 February 2025&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-l286&quot;&gt;Line 286:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 286:&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;# re-enable ConfirmEdit and switch to FancyCaption&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;# re-enable ConfirmEdit and switch to FancyCaption&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;grep &amp;#039;FancyCaptcha&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;%\#\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;\n\nwfLoadExtensions([ &amp;#039;ConfirmEdit&amp;#039;, &amp;#039;ConfirmEdit/FancyCaptcha&amp;#039; ]);\n\\\$wgCaptchaDirectory = &amp;#039;/var/www/html/wiki.opensourceecology.org/htdocs/images/captcha/&amp;#039;\n\\\$wgCaptchaSecret = &amp;#039;$wgCaptchaSecret&amp;#039;\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;grep &amp;#039;FancyCaptcha&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;%\#\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;\n\nwfLoadExtensions([ &amp;#039;ConfirmEdit&amp;#039;, &amp;#039;ConfirmEdit/FancyCaptcha&amp;#039; ]);\n\\\$wgCaptchaDirectory = &amp;#039;/var/www/html/wiki.opensourceecology.org/htdocs/images/captcha/&amp;#039;\n\\\$wgCaptchaSecret = &amp;#039;$wgCaptchaSecret&amp;#039;\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;&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;# update cron script to use new secret&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;sed -e &quot;s%CAPTCHA_SECRET=&#039;\([^&#039;]*\)&#039;%\CAPTCHA_SECRET=&#039;$wgCaptchaSecret&#039;%&quot; /usr/local/bin/mediawiki_generate_captchas.sh&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;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;# re-enable ConfirmAccount extension&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;# re-enable ConfirmAccount extension&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303476&amp;oldid=prev</id>
		<title>Maltfield: wgCaptchaSecret needs to be set on hetzner3, not hetzner2</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303476&amp;oldid=prev"/>
		<updated>2025-02-13T22:39:52Z</updated>

		<summary type="html">&lt;p&gt;wgCaptchaSecret needs to be set on hetzner3, not hetzner2&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 22:39, 13 February 2025&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-l90&quot;&gt;Line 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 90:&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;source /root/backups/backup.settings&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;source /root/backups/backup.settings&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;stamp=`date +%Y%m%d`&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;stamp=`date +%Y%m%d`&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;wgCaptchaSecret=$(cat /dev/random | strings | grep -oE &#039;[A-Za-z0-9]&#039; | perl -p -e &#039;s/\n//g&#039; | head -c 64)&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;div&gt;backupDir_hetzner2=&amp;quot;/var/tmp/backups_for_migration_to_hetzner2/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner2=&amp;quot;/var/tmp/backups_for_migration_to_hetzner2/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner3=&amp;quot;/var/tmp/backups_for_migration_from_hetzner2/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner3=&amp;quot;/var/tmp/backups_for_migration_from_hetzner2/${vhost_name}_${stamp}&amp;quot;&lt;/div&gt;&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-l126&quot;&gt;Line 126:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 125:&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;source /root/backups/backup.settings&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;source /root/backups/backup.settings&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;stamp=`date +%Y%m%d`&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;stamp=`date +%Y%m%d`&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;wgCaptchaSecret=$(cat /dev/random | strings | grep -oE &#039;[A-Za-z0-9]&#039; | perl -p -e &#039;s/\n//g&#039; | head -c 64)&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;backupDir_hetzner2=&amp;quot;/var/tmp/backups_for_migration_to_hetzner3/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner2=&amp;quot;/var/tmp/backups_for_migration_to_hetzner3/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner3=&amp;quot;/var/tmp/backups_for_migration_from_hetzner2/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner3=&amp;quot;/var/tmp/backups_for_migration_from_hetzner2/${vhost_name}_${stamp}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303466&amp;oldid=prev</id>
		<title>Maltfield: update admins after install</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303466&amp;oldid=prev"/>
		<updated>2025-02-13T22:16:11Z</updated>

		<summary type="html">&lt;p&gt;update admins after install&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 22:16, 13 February 2025&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-l312&quot;&gt;Line 312:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 312:&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;# log into the new MediaWiki site, and update settings:&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;# log into the new MediaWiki site, and update settings:&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;&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;# Create a new account (Called &#039;CatarinaAdmin&#039;) and add it to sysop group&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;&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;# Remove the following accounts from the sysop group&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;## Audrey Rampone&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;## Elifarley&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;## Hart&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;## Will&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;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;# TODO: Enforce 2FA for all admin accounts&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;# TODO: Enforce 2FA for all admin accounts&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303460&amp;oldid=prev</id>
		<title>Maltfield: s/hCaptcha/FancyCaptcha/</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303460&amp;oldid=prev"/>
		<updated>2025-02-13T21:46:03Z</updated>

		<summary type="html">&lt;p&gt;s/hCaptcha/FancyCaptcha/&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 21:46, 13 February 2025&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-l284&quot;&gt;Line 284:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 284:&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;grep &amp;#039;wfLoadExtension.*CategoryTree&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;#039;s%#require_once\(&amp;quot;{\$IP}/extensions/CategoryTree/CategoryTree.php&amp;quot;\);%#require_once(&amp;quot;{$IP}/extensions/CategoryTree/CategoryTree.php&amp;quot;);\n\nwfLoadExtension( &amp;quot;CategoryTree&amp;quot; );\n%igs&amp;#039; ${vhostDir}/LocalSettings.php&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;grep &amp;#039;wfLoadExtension.*CategoryTree&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;#039;s%#require_once\(&amp;quot;{\$IP}/extensions/CategoryTree/CategoryTree.php&amp;quot;\);%#require_once(&amp;quot;{$IP}/extensions/CategoryTree/CategoryTree.php&amp;quot;);\n\nwfLoadExtension( &amp;quot;CategoryTree&amp;quot; );\n%igs&amp;#039; ${vhostDir}/LocalSettings.php&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;# re-enable ConfirmEdit and switch to &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hCaptcha&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;# re-enable ConfirmEdit and switch to &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;FancyCaption&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;grep &amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hCaptcha&lt;/del&gt;&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;%\#\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;\n\nwfLoadExtensions([ &amp;#039;ConfirmEdit&amp;#039;, &amp;#039;ConfirmEdit/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;hCaptcha&lt;/del&gt;&amp;#039; ]);\n\\\$&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wgHCaptchaSiteKey &lt;/del&gt;= &amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;your public&lt;/del&gt;/&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;site key here&lt;/del&gt;&amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/del&gt;\n\\\$&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wgHCaptchaSecretKey &lt;/del&gt;= &amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;your private key here&lt;/del&gt;&amp;#039;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;;&lt;/del&gt;\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;grep &amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;FancyCaptcha&lt;/ins&gt;&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;%\#\\\$wgCaptchaClass = &amp;#039;SimpleCaptcha&amp;#039;;\n\nwfLoadExtensions([ &amp;#039;ConfirmEdit&amp;#039;, &amp;#039;ConfirmEdit/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;FancyCaptcha&lt;/ins&gt;&amp;#039; ]);\n\\\$&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wgCaptchaDirectory &lt;/ins&gt;= &amp;#039;/&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;var/www/html/wiki.opensourceecology.org/htdocs/images/captcha/&lt;/ins&gt;&amp;#039;\n\\\$&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wgCaptchaSecret &lt;/ins&gt;= &amp;#039;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;$wgCaptchaSecret&lt;/ins&gt;&amp;#039;\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;&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;# re-enable ConfirmAccount extension&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;# re-enable ConfirmAccount extension&lt;/div&gt;&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-l304&quot;&gt;Line 304:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 304:&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;# configure OATH (2FA) requirements&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;# configure OATH (2FA) requirements&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;grep &amp;#039;wgOATHAuthWindowRadius&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%wfLoadExtension\( &amp;#039;OATHAuth&amp;#039; \);%wfLoadExtension( &amp;#039;OATHAuth&amp;#039; );\n\n# Relaxed mode with +/- 4 minutes time drift tolerance. This is important or users will complain and/or disable 2FA entirely\n# The security consequences are small. The usability benefits are huge.\n\\\$wgOATHAuthWindowRadius = 8;\n\n# make admins require 2FA\n\\\$wgOATHRequiredForGroups = [&amp;#039;sysop&amp;#039;, &amp;#039;interface-admin&amp;#039;, &amp;#039;bureaucrat&amp;#039;, &amp;#039;suppress&amp;#039;, &amp;#039;widgeteditor&amp;#039; ];\n\n# make &amp;#039;powerful&amp;#039; rights require 2FA\n\\\$wgOATHExclusiveRights =  [ &amp;#039;apihighlimits&amp;#039;, &amp;#039;applychangetags&amp;#039;, &amp;#039;autoconfirmed&amp;#039;, &amp;#039;autopatrol&amp;#039;, &amp;#039;bigdelete&amp;#039;, &amp;#039;block&amp;#039;, &amp;#039;blockemail&amp;#039;, &amp;#039;bot&amp;#039;, &amp;#039;changetags&amp;#039;, &amp;#039;createaccount&amp;#039;, &amp;#039;createtalk&amp;#039;, &amp;#039;delete&amp;#039;, &amp;#039;deletechangetags&amp;#039;, &amp;#039;deletedhistory&amp;#039;, &amp;#039;deletedtext&amp;#039;, &amp;#039;deletelogentry&amp;#039;, &amp;#039;deleterevision&amp;#039;, &amp;#039;editcontentmodel&amp;#039;, &amp;#039;editinterface&amp;#039;, &amp;#039;editprotected&amp;#039;, &amp;#039;editsemiprotected&amp;#039;, &amp;#039;editsitecss&amp;#039;, &amp;#039;editsitejs&amp;#039;, &amp;#039;editsitejson&amp;#039;, &amp;#039;editusercss&amp;#039;, &amp;#039;edituserjs&amp;#039;, &amp;#039;edituserjson&amp;#039;, &amp;#039;hideuser&amp;#039;, &amp;#039;import&amp;#039;, &amp;#039;importupload&amp;#039;, &amp;#039;ipblock-exempt&amp;#039;, &amp;#039;managechangetags&amp;#039;, &amp;#039;markbotedits&amp;#039;, &amp;#039;mergehistory&amp;#039;, &amp;#039;move-categorypages&amp;#039;, &amp;#039;move-rootuserpages&amp;#039;, &amp;#039;move-subpages&amp;#039;, &amp;#039;nominornewtalk&amp;#039;, &amp;#039;noratelimit&amp;#039;, &amp;#039;patrol&amp;#039;, &amp;#039;protect&amp;#039;, &amp;#039;renameuser&amp;#039;, &amp;#039;reupload-shared&amp;#039;, &amp;#039;sendemail&amp;#039;, &amp;#039;suppressionlog&amp;#039;, &amp;#039;suppressredirect&amp;#039;, &amp;#039;suppressrevision&amp;#039;, &amp;#039;unblockself&amp;#039;, &amp;#039;unwatchedpages&amp;#039;, &amp;#039;userrights&amp;#039;, ];\n\n# full list for reference (taken from htdocs/includes/MainConfigSchema.php) https://www.mediawiki.org/wiki/Extension:OATHAuth#Configuration\n#\\\$wgOATHExclusiveRights =  [ &amp;#039;apihighlimits&amp;#039;, &amp;#039;applychangetags&amp;#039;, &amp;#039;autoconfirmed&amp;#039;, &amp;#039;autopatrol&amp;#039;, &amp;#039;bigdelete&amp;#039;, &amp;#039;block&amp;#039;, &amp;#039;blockemail&amp;#039;, &amp;#039;bot&amp;#039;, &amp;#039;browsearchive&amp;#039;, &amp;#039;changetags&amp;#039;, &amp;#039;createaccount&amp;#039;, &amp;#039;createpage&amp;#039;, &amp;#039;createtalk&amp;#039;, &amp;#039;delete&amp;#039;, &amp;#039;deletechangetags&amp;#039;, &amp;#039;deletedhistory&amp;#039;, &amp;#039;deletedtext&amp;#039;, &amp;#039;deletelogentry&amp;#039;, &amp;#039;deleterevision&amp;#039;, &amp;#039;edit&amp;#039;, &amp;#039;editcontentmodel&amp;#039;, &amp;#039;editinterface&amp;#039;, &amp;#039;editmyoptions&amp;#039;, &amp;#039;editmyprivateinfo&amp;#039;, &amp;#039;editmyusercss&amp;#039;, &amp;#039;editmyuserjs&amp;#039;, &amp;#039;editmyuserjson&amp;#039;, &amp;#039;editmyuserjsredirect&amp;#039;, &amp;#039;editmywatchlist&amp;#039;, &amp;#039;editprotected&amp;#039;, &amp;#039;editsemiprotected&amp;#039;, &amp;#039;editsitecss&amp;#039;, &amp;#039;editsitejs&amp;#039;, &amp;#039;editsitejson&amp;#039;, &amp;#039;editusercss&amp;#039;, &amp;#039;edituserjs&amp;#039;, &amp;#039;edituserjson&amp;#039;, &amp;#039;hideuser&amp;#039;, &amp;#039;import&amp;#039;, &amp;#039;importupload&amp;#039;, &amp;#039;ipblock-exempt&amp;#039;, &amp;#039;managechangetags&amp;#039;, &amp;#039;markbotedits&amp;#039;, &amp;#039;mergehistory&amp;#039;, &amp;#039;minoredit&amp;#039;, &amp;#039;move&amp;#039;, &amp;#039;move-categorypages&amp;#039;, &amp;#039;movefile&amp;#039;, &amp;#039;move-rootuserpages&amp;#039;, &amp;#039;move-subpages&amp;#039;, &amp;#039;nominornewtalk&amp;#039;, &amp;#039;noratelimit&amp;#039;, &amp;#039;patrol&amp;#039;, &amp;#039;protect&amp;#039;, &amp;#039;read&amp;#039;, &amp;#039;renameuser&amp;#039;, &amp;#039;reupload&amp;#039;, &amp;#039;reupload-shared&amp;#039;, &amp;#039;rollback&amp;#039;, &amp;#039;sendemail&amp;#039;, &amp;#039;suppressionlog&amp;#039;, &amp;#039;suppressredirect&amp;#039;, &amp;#039;suppressrevision&amp;#039;, &amp;#039;unblockself&amp;#039;, &amp;#039;undelete&amp;#039;, &amp;#039;unwatchedpages&amp;#039;, &amp;#039;upload&amp;#039;, &amp;#039;userrights&amp;#039;, &amp;#039;viewmyprivateinfo&amp;#039;, &amp;#039;viewmywatchlist&amp;#039;, &amp;#039;viewsuppressed&amp;#039; ];\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;grep &amp;#039;wgOATHAuthWindowRadius&amp;#039; ${vhostDir}/LocalSettings.php || perl -0777 -pi -e &amp;quot;s%wfLoadExtension\( &amp;#039;OATHAuth&amp;#039; \);%wfLoadExtension( &amp;#039;OATHAuth&amp;#039; );\n\n# Relaxed mode with +/- 4 minutes time drift tolerance. This is important or users will complain and/or disable 2FA entirely\n# The security consequences are small. The usability benefits are huge.\n\\\$wgOATHAuthWindowRadius = 8;\n\n# make admins require 2FA\n\\\$wgOATHRequiredForGroups = [&amp;#039;sysop&amp;#039;, &amp;#039;interface-admin&amp;#039;, &amp;#039;bureaucrat&amp;#039;, &amp;#039;suppress&amp;#039;, &amp;#039;widgeteditor&amp;#039; ];\n\n# make &amp;#039;powerful&amp;#039; rights require 2FA\n\\\$wgOATHExclusiveRights =  [ &amp;#039;apihighlimits&amp;#039;, &amp;#039;applychangetags&amp;#039;, &amp;#039;autoconfirmed&amp;#039;, &amp;#039;autopatrol&amp;#039;, &amp;#039;bigdelete&amp;#039;, &amp;#039;block&amp;#039;, &amp;#039;blockemail&amp;#039;, &amp;#039;bot&amp;#039;, &amp;#039;changetags&amp;#039;, &amp;#039;createaccount&amp;#039;, &amp;#039;createtalk&amp;#039;, &amp;#039;delete&amp;#039;, &amp;#039;deletechangetags&amp;#039;, &amp;#039;deletedhistory&amp;#039;, &amp;#039;deletedtext&amp;#039;, &amp;#039;deletelogentry&amp;#039;, &amp;#039;deleterevision&amp;#039;, &amp;#039;editcontentmodel&amp;#039;, &amp;#039;editinterface&amp;#039;, &amp;#039;editprotected&amp;#039;, &amp;#039;editsemiprotected&amp;#039;, &amp;#039;editsitecss&amp;#039;, &amp;#039;editsitejs&amp;#039;, &amp;#039;editsitejson&amp;#039;, &amp;#039;editusercss&amp;#039;, &amp;#039;edituserjs&amp;#039;, &amp;#039;edituserjson&amp;#039;, &amp;#039;hideuser&amp;#039;, &amp;#039;import&amp;#039;, &amp;#039;importupload&amp;#039;, &amp;#039;ipblock-exempt&amp;#039;, &amp;#039;managechangetags&amp;#039;, &amp;#039;markbotedits&amp;#039;, &amp;#039;mergehistory&amp;#039;, &amp;#039;move-categorypages&amp;#039;, &amp;#039;move-rootuserpages&amp;#039;, &amp;#039;move-subpages&amp;#039;, &amp;#039;nominornewtalk&amp;#039;, &amp;#039;noratelimit&amp;#039;, &amp;#039;patrol&amp;#039;, &amp;#039;protect&amp;#039;, &amp;#039;renameuser&amp;#039;, &amp;#039;reupload-shared&amp;#039;, &amp;#039;sendemail&amp;#039;, &amp;#039;suppressionlog&amp;#039;, &amp;#039;suppressredirect&amp;#039;, &amp;#039;suppressrevision&amp;#039;, &amp;#039;unblockself&amp;#039;, &amp;#039;unwatchedpages&amp;#039;, &amp;#039;userrights&amp;#039;, ];\n\n# full list for reference (taken from htdocs/includes/MainConfigSchema.php) https://www.mediawiki.org/wiki/Extension:OATHAuth#Configuration\n#\\\$wgOATHExclusiveRights =  [ &amp;#039;apihighlimits&amp;#039;, &amp;#039;applychangetags&amp;#039;, &amp;#039;autoconfirmed&amp;#039;, &amp;#039;autopatrol&amp;#039;, &amp;#039;bigdelete&amp;#039;, &amp;#039;block&amp;#039;, &amp;#039;blockemail&amp;#039;, &amp;#039;bot&amp;#039;, &amp;#039;browsearchive&amp;#039;, &amp;#039;changetags&amp;#039;, &amp;#039;createaccount&amp;#039;, &amp;#039;createpage&amp;#039;, &amp;#039;createtalk&amp;#039;, &amp;#039;delete&amp;#039;, &amp;#039;deletechangetags&amp;#039;, &amp;#039;deletedhistory&amp;#039;, &amp;#039;deletedtext&amp;#039;, &amp;#039;deletelogentry&amp;#039;, &amp;#039;deleterevision&amp;#039;, &amp;#039;edit&amp;#039;, &amp;#039;editcontentmodel&amp;#039;, &amp;#039;editinterface&amp;#039;, &amp;#039;editmyoptions&amp;#039;, &amp;#039;editmyprivateinfo&amp;#039;, &amp;#039;editmyusercss&amp;#039;, &amp;#039;editmyuserjs&amp;#039;, &amp;#039;editmyuserjson&amp;#039;, &amp;#039;editmyuserjsredirect&amp;#039;, &amp;#039;editmywatchlist&amp;#039;, &amp;#039;editprotected&amp;#039;, &amp;#039;editsemiprotected&amp;#039;, &amp;#039;editsitecss&amp;#039;, &amp;#039;editsitejs&amp;#039;, &amp;#039;editsitejson&amp;#039;, &amp;#039;editusercss&amp;#039;, &amp;#039;edituserjs&amp;#039;, &amp;#039;edituserjson&amp;#039;, &amp;#039;hideuser&amp;#039;, &amp;#039;import&amp;#039;, &amp;#039;importupload&amp;#039;, &amp;#039;ipblock-exempt&amp;#039;, &amp;#039;managechangetags&amp;#039;, &amp;#039;markbotedits&amp;#039;, &amp;#039;mergehistory&amp;#039;, &amp;#039;minoredit&amp;#039;, &amp;#039;move&amp;#039;, &amp;#039;move-categorypages&amp;#039;, &amp;#039;movefile&amp;#039;, &amp;#039;move-rootuserpages&amp;#039;, &amp;#039;move-subpages&amp;#039;, &amp;#039;nominornewtalk&amp;#039;, &amp;#039;noratelimit&amp;#039;, &amp;#039;patrol&amp;#039;, &amp;#039;protect&amp;#039;, &amp;#039;read&amp;#039;, &amp;#039;renameuser&amp;#039;, &amp;#039;reupload&amp;#039;, &amp;#039;reupload-shared&amp;#039;, &amp;#039;rollback&amp;#039;, &amp;#039;sendemail&amp;#039;, &amp;#039;suppressionlog&amp;#039;, &amp;#039;suppressredirect&amp;#039;, &amp;#039;suppressrevision&amp;#039;, &amp;#039;unblockself&amp;#039;, &amp;#039;undelete&amp;#039;, &amp;#039;unwatchedpages&amp;#039;, &amp;#039;upload&amp;#039;, &amp;#039;userrights&amp;#039;, &amp;#039;viewmyprivateinfo&amp;#039;, &amp;#039;viewmywatchlist&amp;#039;, &amp;#039;viewsuppressed&amp;#039; ];\n%igs&amp;quot; ${vhostDir}/LocalSettings.php&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;&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;# add hCAPTCHA keys&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;vim ${vhostDir}/LocalSettings.php&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;&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;# FIX PERMISSIONS&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;# FIX PERMISSIONS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
	<entry>
		<id>https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303459&amp;oldid=prev</id>
		<title>Maltfield: randomly generate wgCaptchaSecret (for MediaWiki ConfirmEdit/ConfirmAccount FancyCaptcha)</title>
		<link rel="alternate" type="text/html" href="https://wiki.opensourceecology.org/index.php?title=CHG-2025-XX-XX_migrate_wiki_to_hetzner3&amp;diff=303459&amp;oldid=prev"/>
		<updated>2025-02-13T21:35:21Z</updated>

		<summary type="html">&lt;p&gt;randomly generate wgCaptchaSecret (for MediaWiki ConfirmEdit/ConfirmAccount FancyCaptcha)&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 21:35, 13 February 2025&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-l90&quot;&gt;Line 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 90:&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;source /root/backups/backup.settings&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;source /root/backups/backup.settings&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;stamp=`date +%Y%m%d`&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;stamp=`date +%Y%m%d`&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;wgCaptchaSecret=$(cat /dev/random | strings | grep -oE &#039;[A-Za-z0-9]&#039; | perl -p -e &#039;s/\n//g&#039; | head -c 64)&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;backupDir_hetzner2=&amp;quot;/var/tmp/backups_for_migration_to_hetzner2/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner2=&amp;quot;/var/tmp/backups_for_migration_to_hetzner2/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner3=&amp;quot;/var/tmp/backups_for_migration_from_hetzner2/${vhost_name}_${stamp}&amp;quot;&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;backupDir_hetzner3=&amp;quot;/var/tmp/backups_for_migration_from_hetzner2/${vhost_name}_${stamp}&amp;quot;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maltfield</name></author>
	</entry>
</feed>