<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.jb-vpn.uk/index.php?action=history&amp;feed=atom&amp;title=Wiki_Management%3AUpload_Instructions</id>
	<title>Wiki Management:Upload Instructions - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.jb-vpn.uk/index.php?action=history&amp;feed=atom&amp;title=Wiki_Management%3AUpload_Instructions"/>
	<link rel="alternate" type="text/html" href="https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;action=history"/>
	<updated>2026-06-16T06:48:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.5</generator>
	<entry>
		<id>https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=262&amp;oldid=prev</id>
		<title>Josh: Updated documentation from markdown files</title>
		<link rel="alternate" type="text/html" href="https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=262&amp;oldid=prev"/>
		<updated>2026-05-16T14:04:36Z</updated>

		<summary type="html">&lt;p&gt;Updated documentation from markdown files&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 14:04, 16 May 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-l245&quot;&gt;Line 245:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 245:&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;&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&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;pre class=&amp;quot;lang-bash&amp;quot;&amp;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;WIKI_URL=&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;10&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;8&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0.2:8080&lt;/del&gt;&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;WIKI_URL=&quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wiki&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;jb-vpn&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;uk&lt;/ins&gt;&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;USERNAME=&amp;quot;your_username&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;USERNAME=&amp;quot;your_username&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;PASSWORD=&amp;quot;your_password&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;PASSWORD=&amp;quot;your_password&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-l303&quot;&gt;Line 303:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 303:&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;pre class=&amp;quot;lang-bash&amp;quot;&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;pre class=&amp;quot;lang-bash&amp;quot;&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;div&gt;==== Test connectivity ====&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;==== Test connectivity ====&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;curl -I http://10.8.0.2:8080&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;curl -I https://wiki.jb-vpn.uk&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;curl -I https://wiki.jb-vpn.uk&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;== Test API ==&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;== Test API &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(public or local) &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;curl &quot;http://&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;10&lt;/del&gt;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;8&lt;/del&gt;.0.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;2&lt;/del&gt;:&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;8080&lt;/del&gt;/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;format=json&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;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;curl &quot;https://wiki.jb-vpn.uk/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;format=json&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;curl &quot;http://&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;127&lt;/ins&gt;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;0&lt;/ins&gt;.0.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1&lt;/ins&gt;:&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;8010&lt;/ins&gt;/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;format=json&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;&amp;lt;/pre&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;/pre&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 mediawiki:diff:1.41:old-245:rev-262:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Josh</name></author>
	</entry>
	<entry>
		<id>https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=245&amp;oldid=prev</id>
		<title>Josh: Major update - troubleshooting guide: Uploading Documentation to Wiki (61 sections) (wiki management)</title>
		<link rel="alternate" type="text/html" href="https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=245&amp;oldid=prev"/>
		<updated>2026-01-01T13:44:59Z</updated>

		<summary type="html">&lt;p&gt;Major update - troubleshooting guide: Uploading Documentation to Wiki (61 sections) (wiki management)&lt;/p&gt;
&lt;a href=&quot;https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;amp;diff=245&amp;amp;oldid=216&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Josh</name></author>
	</entry>
	<entry>
		<id>https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=216&amp;oldid=prev</id>
		<title>Josh: Minor update - troubleshooting guide: Uploading Documentation to Wiki (24 sections) (wiki management)</title>
		<link rel="alternate" type="text/html" href="https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=216&amp;oldid=prev"/>
		<updated>2026-01-01T13:28:41Z</updated>

		<summary type="html">&lt;p&gt;Minor update - troubleshooting guide: Uploading Documentation to Wiki (24 sections) (wiki management)&lt;/p&gt;
&lt;a href=&quot;https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;amp;diff=216&amp;amp;oldid=182&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Josh</name></author>
	</entry>
	<entry>
		<id>https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=182&amp;oldid=prev</id>
		<title>Josh: Added troubleshooting guide: Uploading Documentation to Wiki (wiki management)</title>
		<link rel="alternate" type="text/html" href="https://wiki.jb-vpn.uk/index.php?title=Wiki_Management:Upload_Instructions&amp;diff=182&amp;oldid=prev"/>
		<updated>2026-01-01T13:16:23Z</updated>

		<summary type="html">&lt;p&gt;Added troubleshooting guide: Uploading Documentation to Wiki (wiki management)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Uploading Documentation to Wiki =&lt;br /&gt;
&lt;br /&gt;
This guide explains how to upload the documentation files to your MediaWiki instance.&lt;br /&gt;
&lt;br /&gt;
== Option 1: Automated Upload (Recommended) ==&lt;br /&gt;
&lt;br /&gt;
Use the unified wiki manager script to automatically upload all documentation files.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
The script requires &amp;lt;code&amp;gt;mwclient&amp;lt;/code&amp;gt; library, which should already be installed:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
pip3 install --break-system-packages mwclient&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Usage ===&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;First time setup&amp;#039;&amp;#039;&amp;#039; - Store credentials:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --store-credentials&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Upload all documentation files:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --upload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Update the Main Page with documentation links:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --update-main-page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Do both at once:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --upload --update-main-page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Check sync status:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --status&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Sync changes from wiki to local files:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --sync&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Delete orphaned wiki pages&amp;#039;&amp;#039;&amp;#039; (pages that no longer have corresponding local files):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
= Preview what would be deleted (dry run - recommended first) =&lt;br /&gt;
python3 /root/wiki_manager.py --delete-orphaned --dry-run&lt;br /&gt;
&lt;br /&gt;
= Actually delete orphaned pages (with confirmation) =&lt;br /&gt;
python3 /root/wiki_manager.py --delete-orphaned&lt;br /&gt;
&lt;br /&gt;
= Delete orphaned pages without confirmation (non-interactive) =&lt;br /&gt;
python3 /root/wiki_manager.py --delete-orphaned -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Upload new docs and delete old orphaned pages in one go:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --upload --delete-orphaned -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Managing Orphaned Pages ===&lt;br /&gt;
&lt;br /&gt;
When you restructure documentation (e.g., breaking large files into smaller sub-pages), old wiki pages may become &amp;quot;orphaned&amp;quot; - they exist on the wiki but no longer have corresponding local files.&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;--delete-orphaned&amp;lt;/code&amp;gt; feature helps you clean up these old pages:&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;Finds orphaned pages&amp;#039;&amp;#039;&amp;#039;: Automatically searches for all &amp;lt;code&amp;gt;Documentation:&amp;lt;/code&amp;gt; pages on the wiki and compares them with your local files =&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;Shows what would be deleted&amp;#039;&amp;#039;&amp;#039;: Lists all orphaned pages with their content length =&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;Safety features&amp;#039;&amp;#039;&amp;#039;: =&lt;br /&gt;
   &amp;#039;&amp;#039; Use &amp;lt;code&amp;gt;--dry-run&amp;lt;/code&amp;gt; first to preview what would be deleted&lt;br /&gt;
   &amp;#039;&amp;#039; Requires confirmation (or use &amp;lt;code&amp;gt;-y&amp;lt;/code&amp;gt; flag for non-interactive mode)&lt;br /&gt;
   &amp;#039;&amp;#039; Shows detailed information about each page before deletion&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Example workflow after restructuring documentation:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
= 1. First, preview what would be deleted =&lt;br /&gt;
python3 /root/wiki_manager.py --delete-orphaned --dry-run&lt;br /&gt;
&lt;br /&gt;
= 2. If the list looks correct, actually delete them =&lt;br /&gt;
python3 /root/wiki_manager.py --delete-orphaned -y&lt;br /&gt;
&lt;br /&gt;
= 3. Upload the new restructured documentation =&lt;br /&gt;
python3 /root/wiki_manager.py --upload --update-main-page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: The script only deletes pages in the &amp;lt;code&amp;gt;Documentation:&amp;lt;/code&amp;gt; namespace that don&amp;#039;t have corresponding local files. It will never delete pages that still have local files, ensuring your active documentation is always preserved.&lt;br /&gt;
&lt;br /&gt;
=== Customizing Upload Comments ===&lt;br /&gt;
&lt;br /&gt;
By default, the script uses the comment &amp;quot;Uploaded documentation from markdown files&amp;quot; for all uploads. You can customize this behavior in two ways:&lt;br /&gt;
&lt;br /&gt;
==== Option 1: Custom Comment ====&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;code&amp;gt;--comment&amp;lt;/code&amp;gt; flag to specify a custom comment that will be used for all uploads:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --upload --comment &amp;quot;Updated documentation for v2.0&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is useful when you want to provide a specific message for a batch of uploads, such as:&lt;br /&gt;
&amp;#039;&amp;#039; Version updates: &amp;lt;code&amp;gt;--comment &amp;quot;Documentation update for version 2.1&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039; Feature additions: &amp;lt;code&amp;gt;--comment &amp;quot;Added new SSH port forwarding documentation&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039; Bug fixes: &amp;lt;code&amp;gt;--comment &amp;quot;Fixed formatting issues in configuration guides&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Option 2: Auto-Generated Comments ====&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;code&amp;gt;--auto-comment&amp;lt;/code&amp;gt; flag to automatically generate meaningful comments based on the content of each file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --upload --auto-comment&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The auto-comment feature analyzes each file to generate contextual comments such as:&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;code&amp;gt;&amp;quot;Added configuration guide: SSH Port Forwarding (configuration)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;code&amp;gt;&amp;quot;Major update - troubleshooting guide: Port Forwarding Troubleshooting (3 sections) (troubleshooting)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;code&amp;gt;&amp;quot;Content added - overview: System Overview (getting started)&amp;quot;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The auto-comment generator:&lt;br /&gt;
&amp;#039;&amp;#039; Detects document type (troubleshooting guide, configuration guide, overview, etc.)&lt;br /&gt;
&amp;#039;&amp;#039; Identifies whether it&amp;#039;s a new page or an update&lt;br /&gt;
&amp;#039;&amp;#039; Compares with existing wiki content to detect changes (major update, content added, minor update)&lt;br /&gt;
&amp;#039;&amp;#039; Extracts the document title from markdown headers&lt;br /&gt;
&amp;#039;&amp;#039; Counts sections to provide context&lt;br /&gt;
&amp;#039;&amp;#039; Categorizes based on file path&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: The &amp;lt;code&amp;gt;--comment&amp;lt;/code&amp;gt; flag takes precedence over &amp;lt;code&amp;gt;--auto-comment&amp;lt;/code&amp;gt;. If both are specified, the custom comment will be used.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Examples:&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
= Upload with auto-generated comments =&lt;br /&gt;
python3 /root/wiki_manager.py --upload --auto-comment&lt;br /&gt;
&lt;br /&gt;
= Upload with custom comment and update main page =&lt;br /&gt;
python3 /root/wiki_manager.py --upload --update-main-page --comment &amp;quot;Major documentation update&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Upload with custom comment in non-interactive mode =&lt;br /&gt;
python3 /root/wiki_manager.py --upload --comment &amp;quot;Quick fix&amp;quot; -y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== What the Script Does ===&lt;br /&gt;
&lt;br /&gt;
The unified wiki manager script:&lt;br /&gt;
= Automatically discovers all documentation files in the &amp;lt;code&amp;gt;/root/documentation/&amp;lt;/code&amp;gt; directory =&lt;br /&gt;
= Converts markdown files to MediaWiki wikitext format =&lt;br /&gt;
= Maps files to wiki pages based on folder structure: =&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;code&amp;gt;getting-started/&amp;#039;&amp;#039;.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Page_Name&amp;lt;/code&amp;gt; (e.g., &amp;lt;code&amp;gt;getting-started/system-overview/index.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Index&amp;lt;/code&amp;gt;)&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;code&amp;gt;configuration/&amp;#039;&amp;#039;.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Page_Name&amp;lt;/code&amp;gt; (e.g., &amp;lt;code&amp;gt;configuration/adding-services/step-by-step.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Step By Step&amp;lt;/code&amp;gt;)&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;code&amp;gt;troubleshooting/&amp;#039;&amp;#039;.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Page_Name&amp;lt;/code&amp;gt; (e.g., &amp;lt;code&amp;gt;troubleshooting/port-forwarding-troubleshooting.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Port Forwarding Troubleshooting&amp;lt;/code&amp;gt;)&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;code&amp;gt;wiki-management/&amp;#039;&amp;#039;.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Page_Name&amp;lt;/code&amp;gt; (e.g., &amp;lt;code&amp;gt;wiki-management/upload-instructions.md&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;Documentation:Upload Instructions&amp;lt;/code&amp;gt;)&lt;br /&gt;
= Uploads all documentation pages to the wiki =&lt;br /&gt;
= Can update the Main Page with links to all documentation =&lt;br /&gt;
= Can identify and delete orphaned wiki pages (pages without corresponding local files) =&lt;br /&gt;
&lt;br /&gt;
=== Customizing Wiki URL ===&lt;br /&gt;
&lt;br /&gt;
The script automatically detects the wiki URL. To specify a custom URL, edit the script or use environment variables.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Option 2: Manual Upload ==&lt;br /&gt;
&lt;br /&gt;
If you prefer to upload manually or the script doesn&amp;#039;t work:&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Access the Wiki ===&lt;br /&gt;
&lt;br /&gt;
= Navigate to your wiki: [https://wiki.jb-vpn.uk/index.php?title=Main_Page https://wiki.jb-vpn.uk/index.php?title=Main_Page] =&lt;br /&gt;
= Log in with your MediaWiki account =&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Create the Documentation Namespace ===&lt;br /&gt;
&lt;br /&gt;
= Go to: [https://wiki.jb-vpn.uk/index.php?title=Special:CreatePage https://wiki.jb-vpn.uk/index.php?title=Special:CreatePage] =&lt;br /&gt;
= Create a page named &amp;lt;code&amp;gt;Documentation:Index&amp;lt;/code&amp;gt; =&lt;br /&gt;
= Or navigate directly: [https://wiki.jb-vpn.uk/index.php?title=Documentation:Index&amp;amp;action=edit https://wiki.jb-vpn.uk/index.php?title=Documentation:Index&amp;amp;action=edit] =&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Convert and Paste Content ===&lt;br /&gt;
&lt;br /&gt;
For each documentation file:&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;Read the markdown file&amp;#039;&amp;#039;&amp;#039;: =&lt;br /&gt;
   &amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
   cat /root/documentation/index.md&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;Manually convert key elements&amp;#039;&amp;#039;&amp;#039;: =&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;code&amp;gt;# Header&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;= Header =&amp;lt;/code&amp;gt;&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;code&amp;gt;## Header&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;== Header ==&amp;lt;/code&amp;gt;&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;code&amp;gt;### Header&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;=== Header ===&amp;lt;/code&amp;gt;&lt;br /&gt;
   &amp;#039;&amp;#039; Inline code: `&amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;code&amp;lt;code&amp;gt; &amp;lt;/code&amp;gt;&amp;lt;code&amp;gt; → &amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;code&amp;lt;/code&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;bold&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt; → &amp;lt;/code&amp;gt;&amp;#039;&amp;#039;&amp;#039;bold&amp;#039;&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;/code&amp;gt;&amp;#039;&amp;#039;italic&amp;#039;&amp;#039;&amp;lt;code&amp;gt; → &amp;lt;/code&amp;gt;&amp;#039;&amp;#039;italic&amp;#039;&amp;#039;&amp;lt;code&amp;gt;&lt;br /&gt;
   &amp;#039;&amp;#039; Code blocks: Wrap with &amp;lt;/code&amp;gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&amp;lt;code&amp;gt; and &amp;lt;/code&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;Create the pages&amp;#039;&amp;#039;&amp;#039;: =&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;/code&amp;gt;Documentation:Index&amp;lt;code&amp;gt; (from &amp;lt;/code&amp;gt;documentation/index.md&amp;lt;code&amp;gt;)&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;/code&amp;gt;Documentation:System_Overview&amp;lt;code&amp;gt; (from &amp;lt;/code&amp;gt;documentation/getting-started/system-overview.md&amp;lt;code&amp;gt;)&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;/code&amp;gt;Documentation:Adding_Services&amp;lt;code&amp;gt; (from &amp;lt;/code&amp;gt;documentation/configuration/adding-services.md&amp;lt;code&amp;gt;)&lt;br /&gt;
   &amp;#039;&amp;#039; &amp;lt;/code&amp;gt;Documentation:Current_Services&amp;lt;code&amp;gt; (from &amp;lt;/code&amp;gt;documentation/configuration/current-services.md&amp;lt;code&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
=== Step 4: Add Navigation ===&lt;br /&gt;
&lt;br /&gt;
Create a navigation template or update the main page to link to:&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;/code&amp;gt;[Documentation Index](index.md)&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;/code&amp;gt;[System Overview](System_Overview.md)&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;/code&amp;gt;[Adding Services](Adding_Services.md)&amp;lt;code&amp;gt;&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;/code&amp;gt;[Current Services](Current_Services.md)&amp;lt;code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Option 3: Using MediaWiki API with curl ==&lt;br /&gt;
&lt;br /&gt;
You can also use curl to upload via the MediaWiki API:&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Get Login Token ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
WIKI_URL=&amp;quot;http://10.8.0.2:8080&amp;quot;&lt;br /&gt;
USERNAME=&amp;quot;your_username&amp;quot;&lt;br /&gt;
PASSWORD=&amp;quot;your_password&amp;quot;&lt;br /&gt;
&lt;br /&gt;
= Get login token =&lt;br /&gt;
LOGIN_TOKEN=$(curl -s &amp;quot;$WIKI_URL/api.php?action=query&amp;amp;meta=tokens&amp;amp;type=login&amp;amp;format=json&amp;quot; | grep -oP &amp;#039;(?&amp;lt;=&amp;quot;logintoken&amp;quot;:&amp;quot;)[^&amp;quot;]&amp;#039;&amp;#039;&amp;#039; # Login&lt;br /&gt;
LOGIN_RESULT=$(curl -s -c cookies.txt -b cookies.txt \&lt;br /&gt;
  -d &amp;quot;action=login&amp;quot; \&lt;br /&gt;
  -d &amp;quot;lgname=$USERNAME&amp;quot; \&lt;br /&gt;
  -d &amp;quot;lgpassword=$PASSWORD&amp;quot; \&lt;br /&gt;
  -d &amp;quot;lgtoken=$LOGIN_TOKEN&amp;quot; \&lt;br /&gt;
  -d &amp;quot;format=json&amp;quot; \&lt;br /&gt;
  &amp;quot;$WIKI_URL/api.php&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Login: $LOGIN_RESULT&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Get Edit Token ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
EDIT_TOKEN=$(curl -s -b cookies.txt \&lt;br /&gt;
  &amp;quot;$WIKI_URL/api.php?action=query&amp;amp;meta=tokens&amp;amp;format=json&amp;quot; | \&lt;br /&gt;
  grep -oP &amp;#039;(?&amp;lt;=&amp;quot;csrftoken&amp;quot;:&amp;quot;)[^&amp;quot;])&amp;#039;&amp;#039;&amp;#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Upload Page ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
PAGE_NAME=&amp;quot;Documentation:Index&amp;quot;&lt;br /&gt;
CONTENT=$(cat /root/documentation/index.md | sed &amp;#039;s/#/=/g&amp;#039;)  # Basic conversion&lt;br /&gt;
&lt;br /&gt;
curl -s -b cookies.txt \&lt;br /&gt;
  -d &amp;quot;action=edit&amp;quot; \&lt;br /&gt;
  -d &amp;quot;title=$PAGE_NAME&amp;quot; \&lt;br /&gt;
  -d &amp;quot;text=$CONTENT&amp;quot; \&lt;br /&gt;
  -d &amp;quot;token=$EDIT_TOKEN&amp;quot; \&lt;br /&gt;
  -d &amp;quot;format=json&amp;quot; \&lt;br /&gt;
  &amp;quot;$WIKI_URL/api.php&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Note&amp;#039;&amp;#039;&amp;#039;: This method requires manual markdown-to-wikitext conversion and is more complex.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== Script Authentication Issues ===&lt;br /&gt;
&lt;br /&gt;
If login fails:&lt;br /&gt;
= Verify your MediaWiki username and password =&lt;br /&gt;
= Check that your account has edit permissions =&lt;br /&gt;
= Ensure the wiki is accessible from the VPS =&lt;br /&gt;
&lt;br /&gt;
=== Connection Issues ===&lt;br /&gt;
&lt;br /&gt;
If you can&amp;#039;t connect:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
= Test connectivity =&lt;br /&gt;
curl -I http://10.8.0.2:8080&lt;br /&gt;
curl -I https://wiki.jb-vpn.uk&lt;br /&gt;
&lt;br /&gt;
= Test API =&lt;br /&gt;
curl &amp;quot;http://10.8.0.2:8080/api.php?action=query&amp;amp;meta=siteinfo&amp;amp;format=json&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Permission Issues ===&lt;br /&gt;
&lt;br /&gt;
Ensure your MediaWiki account has:&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;/code&amp;gt;edit&amp;lt;code&amp;gt; permission&lt;br /&gt;
&amp;#039;&amp;#039; &amp;lt;/code&amp;gt;createpage` permission (if pages don&amp;#039;t exist)&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=== Updating the Main Page ===&lt;br /&gt;
&lt;br /&gt;
To update the Main Page with links to all documentation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
python3 /root/wiki_manager.py --update-main-page&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will add a comprehensive list of all documentation pages to the Main Page.&lt;br /&gt;
&lt;br /&gt;
=== Complete Workflow Example ===&lt;br /&gt;
&lt;br /&gt;
Here&amp;#039;s a complete example workflow for restructuring documentation:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;lang-bash&amp;quot;&amp;gt;&lt;br /&gt;
= 1. Preview orphaned pages that would be deleted =&lt;br /&gt;
python3 /root/wiki_manager.py --delete-orphaned --dry-run&lt;br /&gt;
&lt;br /&gt;
= 2. Delete orphaned pages (if the preview looks correct) =&lt;br /&gt;
python3 /root/wiki_manager.py --delete-orphaned -y&lt;br /&gt;
&lt;br /&gt;
= 3. Upload all new/updated documentation =&lt;br /&gt;
python3 /root/wiki_manager.py --upload --auto-comment&lt;br /&gt;
&lt;br /&gt;
= 4. Update the Main Page with new documentation structure =&lt;br /&gt;
python3 /root/wiki_manager.py --update-main-page&lt;br /&gt;
&lt;br /&gt;
= Or do steps 3 and 4 together: =&lt;br /&gt;
python3 /root/wiki_manager.py --upload --update-main-page --auto-comment&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[Category:Documentation]]&lt;br /&gt;
[[Category:Documentation/Wiki Management]]&lt;/div&gt;</summary>
		<author><name>Josh</name></author>
	</entry>
</feed>