<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thibble.org/goomba/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=T20A02</id>
	<title>Thibble Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thibble.org/goomba/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=T20A02"/>
	<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php/Special:Contributions/T20A02"/>
	<updated>2026-07-29T01:06:55Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Nginx_Reverse_Proxy_%2B_SSL&amp;diff=115</id>
		<title>Nginx Reverse Proxy + SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Nginx_Reverse_Proxy_%2B_SSL&amp;diff=115"/>
		<updated>2025-04-14T14:59:13Z</updated>

		<summary type="html">&lt;p&gt;T20A02: Created page with &amp;quot;= Nginx Reverse Proxy =  In this guide I will be outlining the necessary steps to setup and configure a Nginx Reverse Proxy instance using docker, and configuring SSL using Lets Encrypt and Cloudflare. This will allow the use of subdomains and a safe way to expose services to the internet, which providing SSL based security for these services outside of the local network.   == Setup ==  In this guide we will be using docker, and assuming that a basic installation of dock...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Nginx Reverse Proxy =&lt;br /&gt;
&lt;br /&gt;
In this guide I will be outlining the necessary steps to setup and configure a Nginx Reverse Proxy instance using docker, and configuring SSL using Lets Encrypt and Cloudflare. This will allow the use of subdomains and a safe way to expose services to the internet, which providing SSL based security for these services outside of the local network. &lt;br /&gt;
&lt;br /&gt;
== Setup ==&lt;br /&gt;
&lt;br /&gt;
In this guide we will be using docker, and assuming that a basic installation of docker is installed on the host system. In additon do this for ease of configuration and scalability a docker file was used.&lt;br /&gt;
&lt;br /&gt;
This will also assume that you have a docker macvlan network configured, to allow the container its own IP address for easy of port management with further containers. &lt;br /&gt;
&lt;br /&gt;
First Create the directory to house your docker file and create a file named &amp;quot;docker-compose.yml&amp;quot; with the following content:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  app:&lt;br /&gt;
    container_name: reverse-proxy&lt;br /&gt;
    image: &#039;docker.io/jc21/nginx-proxy-manager:latest&#039;&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    networks:&lt;br /&gt;
      service:&lt;br /&gt;
        ipv4_address: 192.168.1.20&lt;br /&gt;
    ports:&lt;br /&gt;
      - &#039;80:80&#039;&lt;br /&gt;
      - &#039;81:81&#039;&lt;br /&gt;
      - &#039;443:443&#039;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data:/data&lt;br /&gt;
      - ./letsencrypt:/etc/letsencrypt&lt;br /&gt;
    healthcheck:&lt;br /&gt;
      test: [&amp;quot;CMD&amp;quot;, &amp;quot;/usr/bin/check-health&amp;quot;]&lt;br /&gt;
      interval: 10s&lt;br /&gt;
      timeout: 3s&lt;br /&gt;
&lt;br /&gt;
networks:&lt;br /&gt;
  service:&lt;br /&gt;
    external: true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are not using macvlan networking some edits can be made to yeild the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
services:&lt;br /&gt;
  app:&lt;br /&gt;
    container_name: reverse-proxy&lt;br /&gt;
    image: &#039;docker.io/jc21/nginx-proxy-manager:latest&#039;&lt;br /&gt;
    restart: unless-stopped&lt;br /&gt;
    ports:&lt;br /&gt;
      - &#039;80:80&#039;&lt;br /&gt;
      - &#039;81:81&#039;&lt;br /&gt;
      - &#039;443:443&#039;&lt;br /&gt;
    volumes:&lt;br /&gt;
      - ./data:/data&lt;br /&gt;
      - ./letsencrypt:/etc/letsencrypt&lt;br /&gt;
    healthcheck:&lt;br /&gt;
      test: [&amp;quot;CMD&amp;quot;, &amp;quot;/usr/bin/check-health&amp;quot;]&lt;br /&gt;
      interval: 10s&lt;br /&gt;
      timeout: 3s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is saved, from that directory run &amp;lt;pre&amp;gt;docker compose up -d&amp;lt;/pre&amp;gt;. This will pull and start the container. Now from the IP specified in the macvlan, or from the host address, you should be able to access the web UI with the following:&lt;br /&gt;
&lt;br /&gt;
https://192.168.0.X:81/&lt;br /&gt;
&lt;br /&gt;
Now you have spun a fresh install of Nginx proxy manager. &lt;br /&gt;
&lt;br /&gt;
== SSL Configuration ==&lt;br /&gt;
&lt;br /&gt;
In this half of the guide we will be going over the setup, and pulling of a &amp;quot;wildcard&amp;quot; or edge certificate from Cloudflare to validate the SSL of all of the subdomains you will be using from your domain.&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=114</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=114"/>
		<updated>2025-04-14T14:47:25Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Network Bypass]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Configuring Headscale]]&lt;br /&gt;
&lt;br /&gt;
[[Nginx Reverse Proxy + SSL]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
[[Windows AD with linux Clients]]&lt;br /&gt;
&lt;br /&gt;
[[Apt Repository Cache]]&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;br /&gt;
&lt;br /&gt;
[[ESXI Settup]]&lt;br /&gt;
&lt;br /&gt;
[[Hyper‐V Creating New, and Linked VM&#039;s]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Dell_Optiplex_NVME_BIOS_mod&amp;diff=113</id>
		<title>Dell Optiplex NVME BIOS mod</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Dell_Optiplex_NVME_BIOS_mod&amp;diff=113"/>
		<updated>2025-02-02T04:37:41Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Install and boot from an NVMe SSD on a Dell OptiPlex 9020, 7020 or 3020 ===&lt;br /&gt;
&lt;br /&gt;
December 25, 2021 by Paulie&lt;br /&gt;
&lt;br /&gt;
In this post I will show you how you can modify the BIOS of your Dell OptiPlex 9020, 7020 or 3020 so that they can support an NVMe SSD drive as a boot device. These machines have a UEFI BIOS, but they do not contain an NVMe driver. By adding the driver into the BIOS you can boot from a PCIe NVMe SSD.&lt;br /&gt;
&lt;br /&gt;
Required Hardware&lt;br /&gt;
&lt;br /&gt;
In order to carry out this upgrade, you will need a few things:&lt;br /&gt;
&lt;br /&gt;
An NVMe SSD. I used a 512Gb Samsung 970 EVOPlus&lt;br /&gt;
An NVMe to PCIe Adapter, I used this one from Amazon.&lt;br /&gt;
A Dell OptiPlex 9020, 7020 or 3020 to upgrade.&lt;br /&gt;
I have personally tried this procedure on the 3020 and 7020 Small Form Factor and a 9020 Minitower. It works for every variant of the machine. There are slight variations in the procedure for each machine.&lt;br /&gt;
&lt;br /&gt;
Procedure Overview&lt;br /&gt;
&lt;br /&gt;
This process involves five steps:&lt;br /&gt;
&lt;br /&gt;
Upgrade your current BIOS if required.&lt;br /&gt;
A18 for the OptiPlex 7020.&lt;br /&gt;
A20 for the OptiPlex 3020.&lt;br /&gt;
A25 for the OptiPlex 9020.&lt;br /&gt;
Backup your current BIOS.&lt;br /&gt;
Add NVMe driver support into the BIOS backup.&lt;br /&gt;
Writing the modified BIOS back to the system.&lt;br /&gt;
Install the PCIe NVMe SSD and Adapter.&lt;br /&gt;
Optimise BIOS settings.&lt;br /&gt;
Machine Preparation&lt;br /&gt;
&lt;br /&gt;
Before starting the the physical installation of the NVMe SSD you can do all of the required preparation while the machine is running on your existing drive.&lt;br /&gt;
&lt;br /&gt;
== Upgrade your BIOS ==&lt;br /&gt;
&lt;br /&gt;
The first step, is to upgrade your current BIOS:&lt;br /&gt;
&lt;br /&gt;
A18 for the OptiPlex 7020.&lt;br /&gt;
A20 for the OptiPlex 3020.&lt;br /&gt;
A25 for the OptiPlex 9020.&lt;br /&gt;
Just download the BIOS update from the Dell website and run the update. Before the update runs it will show your current version and the version that you will be updated to:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-BIOS-Update-Prompt.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Dell BIOS Update Utility for Dell Optiplex&lt;br /&gt;
&lt;br /&gt;
Install Intel Management Engine Components&lt;br /&gt;
&lt;br /&gt;
Next install the Intel Management Engine Components from Dell. These management components will allow you to access the BIOS in order to back it up. Reboot once after installation of the management tools.&lt;br /&gt;
&lt;br /&gt;
Download Intel Management Engine Tools&lt;br /&gt;
&lt;br /&gt;
Now download Intel ME System Tools and extract the Zip file to your machine. For the purposes of this blog post I will assume that it has been extracted to: C:\Intel ME System Tools v9.1 r7.&lt;br /&gt;
&lt;br /&gt;
The Intel ME System Tools will be used to backup the BIOS and write the modified image back to the machine.&lt;br /&gt;
&lt;br /&gt;
== Backup your current BIOS ==&lt;br /&gt;
&lt;br /&gt;
Parts of the BIOS are protected and cannot be read to or written from. In order to get a complete backup the machine must be put into service mode.&lt;br /&gt;
&lt;br /&gt;
Switch the machine off completely.&lt;br /&gt;
Disconnect it from the mains Power.&lt;br /&gt;
Move the jumper from the two pin PSWD connector, to the two PIN SERVICE_MODE connector. It is located between the Power Supply and the PCI Slot closest to it:&lt;br /&gt;
Note: If you have a spare jumper you could leave the password jumper in place.&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-Service-Mode.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of Dell Optiplex 7020 Motherboard Service mode pins.&lt;br /&gt;
&lt;br /&gt;
[[File:OptiPlex-3020-Service-Mode.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Service Mode pins for Dell OptiPlex 7020 SFF&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-9020-Service-Mode.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of Dell Optiplex 3020 Motherboard Service mode pins.&lt;br /&gt;
&lt;br /&gt;
Service Mode Pins for Dell OptiPlex 3020 SFF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service Mode Pins for Dell OptiPlex 7020/9020 Mini Tower&lt;br /&gt;
&lt;br /&gt;
Once the machine is in service mode, turn it back on, you will receive some warning notifications:&lt;br /&gt;
&lt;br /&gt;
First a warning informing you that the password has been disabled. Don’t worry about this as you will be putting the password jumper back where it should be soon. It will show this message:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Security-Manager.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Image of Dell Security Manager warning when the password reset jumper has been removed from Dell OptiPlex&lt;br /&gt;
&lt;br /&gt;
Next, you will also receive a message notifying you that service mode is enabled:&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-Service-Mode-alert.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Warning from Dell OptiPlex when the service mode jumpers have been set.&lt;br /&gt;
&lt;br /&gt;
Press F1 to continue and continue to boot normally&lt;br /&gt;
&lt;br /&gt;
When your machine is booted up again you can take a backup of your existing firmware. Open a command prompt as administrator:&lt;br /&gt;
&lt;br /&gt;
[[File:Run-Command-Prompt-Administrator.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Showing how to run a command prompt as an administrator&lt;br /&gt;
&lt;br /&gt;
Run the following commands:&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;\Intel ME System Tools v9.1 r7\Flash Programming Tool\WIN64&amp;quot; fptw64.exe -d backup.bin&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-3020-Backup-BIOS-Intel-FPT.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of output from Intel Flash Programming Tool when taking a backup of a Dell OptiPlex BIOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The example above is from an OptiPlex 7020, the output from the 3020 will look slightly different as it only has a single flash device and will give output such as:&lt;br /&gt;
&lt;br /&gt;
Platform: Intel(R) H81 Express Chipset Reading HSFSTS register... Flash Descriptor: Valid&lt;br /&gt;
&lt;br /&gt;
--- Flash Devices Found ---&lt;br /&gt;
MX25L6405D    ID:0xc22017    Size: 8192KB (65535Kb)&lt;br /&gt;
Reading Flash [0x800000] 8192KB of 8192KB - 100% complete. Writing flash contents to file &amp;quot;backup.bin&amp;quot;...&lt;br /&gt;
Memory Dump Complete FPT Operation Passed&lt;br /&gt;
&lt;br /&gt;
You will now have a file named backup.bin which contains a full backup of your BIOS. Leave the command prompt open as we are going to use it again to write the modified BIOS back.&lt;br /&gt;
&lt;br /&gt;
== Modify the BIOS Image ==&lt;br /&gt;
&lt;br /&gt;
Download and open UEFITool 0.28.0 to modify your BIOS (Direct link to version I used).&lt;br /&gt;
&lt;br /&gt;
Open the backup.bin from the previous step in UEFI Tool and expand it like so:&lt;br /&gt;
&lt;br /&gt;
Image of UEFI Tool with a Dell BIOS Image loaded.&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-UEFITool.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Scroll to the bottom of this section and you should see an area that looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Insert-NVME-DXE-Location.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of correct location to insert NVMe driver in Dell OptiPlex BIOS&lt;br /&gt;
&lt;br /&gt;
Now, download this NVMe Express Driver and save it to your machine. Next, right click on the final DXE Driver before the Freeform entries. Specifically these is IDs:&lt;br /&gt;
&lt;br /&gt;
D95D6B4F-92FA-4E78-9C48-C68C0813688E for the OptiPlex 7020 or 9020&lt;br /&gt;
6C58FC74-64DA-4D83-8BCD-9FD574C97316 for the OptiPlex 3020&lt;br /&gt;
Right click the item and choose Insert After:&lt;br /&gt;
&lt;br /&gt;
[[File:Insert-NVME-DXE-InsertAfter.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Choose the file NvmExpressDxe_Small.ffs that you just downloaded and you will see it appear right after the item that you selected:&lt;br /&gt;
&lt;br /&gt;
[[File:Insert-NVME-DXE-Inserted.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of NVMe Driver being inserted into Dell Optiplex BIOS&lt;br /&gt;
&lt;br /&gt;
Now go to File -&amp;gt; Save Image File and save the file as nvme.bin.&lt;br /&gt;
&lt;br /&gt;
== Write the new BIOS to the machine ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to write the new file back to the machine. Go back to the command prompt session. Type the following command:&lt;br /&gt;
&lt;br /&gt;
fptw64.exe -bios -f nvme.bin&lt;br /&gt;
&lt;br /&gt;
You should get output like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-Write-NVMe-BIOS-1.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Shut down the machine and take the jumper off the service pins and move it back to the password reset pins if you took it from there.&lt;br /&gt;
&lt;br /&gt;
== Install the PCI NVMe SSD ==&lt;br /&gt;
&lt;br /&gt;
If you have not yet installed your SSD into the machine, you can do it now. For the 7020 use the blue PCI slot, it is approximately twice as fast as the smaller black one.&lt;br /&gt;
&lt;br /&gt;
For the 3020 you need to install it into the PCI Slot closest to the Power Supply.&lt;br /&gt;
&lt;br /&gt;
== Optimise BIOS Settings ==&lt;br /&gt;
&lt;br /&gt;
Now that you have written the new BIOS, restart the machine.&lt;br /&gt;
&lt;br /&gt;
You should be able to see the adapter in the BIOS:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-NVMe-Bios-System-Information-1024x576.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Image of System Information screen from a Dell Optiplex 7020 BIOS.&lt;br /&gt;
&lt;br /&gt;
If you are not going to have any SATA drives connected you need to disable them in the BIOS, here you can see I have disabled all of the ports that do not have a drive connected:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-NVMe-Bios-SATA-Options-1024x576.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Disabling the un-used ports prevents an error on startup.&lt;br /&gt;
&lt;br /&gt;
Finally, if you want the maximum possible speed from your new drive, consider disabling C-States in the BIOS. This makes it marginally faster, but I doubt you would notice much difference:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-Disable-C-States-1024x576.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you should be bale to boot from an NVMe Drive natively using a PCIe adapter!&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Dell_Optiplex_NVME_BIOS_mod&amp;diff=112</id>
		<title>Dell Optiplex NVME BIOS mod</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Dell_Optiplex_NVME_BIOS_mod&amp;diff=112"/>
		<updated>2025-02-02T04:37:20Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Install and boot from an NVMe SSD on a Dell OptiPlex 9020, 7020 or 3020&lt;br /&gt;
&lt;br /&gt;
December 25, 2021 by Paulie&lt;br /&gt;
&lt;br /&gt;
In this post I will show you how you can modify the BIOS of your Dell OptiPlex 9020, 7020 or 3020 so that they can support an NVMe SSD drive as a boot device. These machines have a UEFI BIOS, but they do not contain an NVMe driver. By adding the driver into the BIOS you can boot from a PCIe NVMe SSD.&lt;br /&gt;
&lt;br /&gt;
Required Hardware&lt;br /&gt;
&lt;br /&gt;
In order to carry out this upgrade, you will need a few things:&lt;br /&gt;
&lt;br /&gt;
An NVMe SSD. I used a 512Gb Samsung 970 EVOPlus&lt;br /&gt;
An NVMe to PCIe Adapter, I used this one from Amazon.&lt;br /&gt;
A Dell OptiPlex 9020, 7020 or 3020 to upgrade.&lt;br /&gt;
I have personally tried this procedure on the 3020 and 7020 Small Form Factor and a 9020 Minitower. It works for every variant of the machine. There are slight variations in the procedure for each machine.&lt;br /&gt;
&lt;br /&gt;
Procedure Overview&lt;br /&gt;
&lt;br /&gt;
This process involves five steps:&lt;br /&gt;
&lt;br /&gt;
Upgrade your current BIOS if required.&lt;br /&gt;
A18 for the OptiPlex 7020.&lt;br /&gt;
A20 for the OptiPlex 3020.&lt;br /&gt;
A25 for the OptiPlex 9020.&lt;br /&gt;
Backup your current BIOS.&lt;br /&gt;
Add NVMe driver support into the BIOS backup.&lt;br /&gt;
Writing the modified BIOS back to the system.&lt;br /&gt;
Install the PCIe NVMe SSD and Adapter.&lt;br /&gt;
Optimise BIOS settings.&lt;br /&gt;
Machine Preparation&lt;br /&gt;
&lt;br /&gt;
Before starting the the physical installation of the NVMe SSD you can do all of the required preparation while the machine is running on your existing drive.&lt;br /&gt;
&lt;br /&gt;
== Upgrade your BIOS ==&lt;br /&gt;
&lt;br /&gt;
The first step, is to upgrade your current BIOS:&lt;br /&gt;
&lt;br /&gt;
A18 for the OptiPlex 7020.&lt;br /&gt;
A20 for the OptiPlex 3020.&lt;br /&gt;
A25 for the OptiPlex 9020.&lt;br /&gt;
Just download the BIOS update from the Dell website and run the update. Before the update runs it will show your current version and the version that you will be updated to:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-BIOS-Update-Prompt.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Dell BIOS Update Utility for Dell Optiplex&lt;br /&gt;
&lt;br /&gt;
Install Intel Management Engine Components&lt;br /&gt;
&lt;br /&gt;
Next install the Intel Management Engine Components from Dell. These management components will allow you to access the BIOS in order to back it up. Reboot once after installation of the management tools.&lt;br /&gt;
&lt;br /&gt;
Download Intel Management Engine Tools&lt;br /&gt;
&lt;br /&gt;
Now download Intel ME System Tools and extract the Zip file to your machine. For the purposes of this blog post I will assume that it has been extracted to: C:\Intel ME System Tools v9.1 r7.&lt;br /&gt;
&lt;br /&gt;
The Intel ME System Tools will be used to backup the BIOS and write the modified image back to the machine.&lt;br /&gt;
&lt;br /&gt;
== Backup your current BIOS ==&lt;br /&gt;
&lt;br /&gt;
Parts of the BIOS are protected and cannot be read to or written from. In order to get a complete backup the machine must be put into service mode.&lt;br /&gt;
&lt;br /&gt;
Switch the machine off completely.&lt;br /&gt;
Disconnect it from the mains Power.&lt;br /&gt;
Move the jumper from the two pin PSWD connector, to the two PIN SERVICE_MODE connector. It is located between the Power Supply and the PCI Slot closest to it:&lt;br /&gt;
Note: If you have a spare jumper you could leave the password jumper in place.&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-Service-Mode.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of Dell Optiplex 7020 Motherboard Service mode pins.&lt;br /&gt;
&lt;br /&gt;
[[File:OptiPlex-3020-Service-Mode.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Service Mode pins for Dell OptiPlex 7020 SFF&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-9020-Service-Mode.jpg|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of Dell Optiplex 3020 Motherboard Service mode pins.&lt;br /&gt;
&lt;br /&gt;
Service Mode Pins for Dell OptiPlex 3020 SFF&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Service Mode Pins for Dell OptiPlex 7020/9020 Mini Tower&lt;br /&gt;
&lt;br /&gt;
Once the machine is in service mode, turn it back on, you will receive some warning notifications:&lt;br /&gt;
&lt;br /&gt;
First a warning informing you that the password has been disabled. Don’t worry about this as you will be putting the password jumper back where it should be soon. It will show this message:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Security-Manager.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Image of Dell Security Manager warning when the password reset jumper has been removed from Dell OptiPlex&lt;br /&gt;
&lt;br /&gt;
Next, you will also receive a message notifying you that service mode is enabled:&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-Service-Mode-alert.png|400px]]&lt;br /&gt;
&lt;br /&gt;
Warning from Dell OptiPlex when the service mode jumpers have been set.&lt;br /&gt;
&lt;br /&gt;
Press F1 to continue and continue to boot normally&lt;br /&gt;
&lt;br /&gt;
When your machine is booted up again you can take a backup of your existing firmware. Open a command prompt as administrator:&lt;br /&gt;
&lt;br /&gt;
[[File:Run-Command-Prompt-Administrator.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Showing how to run a command prompt as an administrator&lt;br /&gt;
&lt;br /&gt;
Run the following commands:&lt;br /&gt;
&lt;br /&gt;
cd &amp;quot;\Intel ME System Tools v9.1 r7\Flash Programming Tool\WIN64&amp;quot; fptw64.exe -d backup.bin&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-3020-Backup-BIOS-Intel-FPT.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of output from Intel Flash Programming Tool when taking a backup of a Dell OptiPlex BIOS&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The example above is from an OptiPlex 7020, the output from the 3020 will look slightly different as it only has a single flash device and will give output such as:&lt;br /&gt;
&lt;br /&gt;
Platform: Intel(R) H81 Express Chipset Reading HSFSTS register... Flash Descriptor: Valid&lt;br /&gt;
&lt;br /&gt;
--- Flash Devices Found ---&lt;br /&gt;
MX25L6405D    ID:0xc22017    Size: 8192KB (65535Kb)&lt;br /&gt;
Reading Flash [0x800000] 8192KB of 8192KB - 100% complete. Writing flash contents to file &amp;quot;backup.bin&amp;quot;...&lt;br /&gt;
Memory Dump Complete FPT Operation Passed&lt;br /&gt;
&lt;br /&gt;
You will now have a file named backup.bin which contains a full backup of your BIOS. Leave the command prompt open as we are going to use it again to write the modified BIOS back.&lt;br /&gt;
&lt;br /&gt;
== Modify the BIOS Image ==&lt;br /&gt;
&lt;br /&gt;
Download and open UEFITool 0.28.0 to modify your BIOS (Direct link to version I used).&lt;br /&gt;
&lt;br /&gt;
Open the backup.bin from the previous step in UEFI Tool and expand it like so:&lt;br /&gt;
&lt;br /&gt;
Image of UEFI Tool with a Dell BIOS Image loaded.&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-UEFITool.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Scroll to the bottom of this section and you should see an area that looks like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Insert-NVME-DXE-Location.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of correct location to insert NVMe driver in Dell OptiPlex BIOS&lt;br /&gt;
&lt;br /&gt;
Now, download this NVMe Express Driver and save it to your machine. Next, right click on the final DXE Driver before the Freeform entries. Specifically these is IDs:&lt;br /&gt;
&lt;br /&gt;
D95D6B4F-92FA-4E78-9C48-C68C0813688E for the OptiPlex 7020 or 9020&lt;br /&gt;
6C58FC74-64DA-4D83-8BCD-9FD574C97316 for the OptiPlex 3020&lt;br /&gt;
Right click the item and choose Insert After:&lt;br /&gt;
&lt;br /&gt;
[[File:Insert-NVME-DXE-InsertAfter.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Choose the file NvmExpressDxe_Small.ffs that you just downloaded and you will see it appear right after the item that you selected:&lt;br /&gt;
&lt;br /&gt;
[[File:Insert-NVME-DXE-Inserted.png|700px]]&lt;br /&gt;
&lt;br /&gt;
Image of NVMe Driver being inserted into Dell Optiplex BIOS&lt;br /&gt;
&lt;br /&gt;
Now go to File -&amp;gt; Save Image File and save the file as nvme.bin.&lt;br /&gt;
&lt;br /&gt;
== Write the new BIOS to the machine ==&lt;br /&gt;
&lt;br /&gt;
You are now ready to write the new file back to the machine. Go back to the command prompt session. Type the following command:&lt;br /&gt;
&lt;br /&gt;
fptw64.exe -bios -f nvme.bin&lt;br /&gt;
&lt;br /&gt;
You should get output like this:&lt;br /&gt;
&lt;br /&gt;
[[File:Optiplex-7020-Write-NVMe-BIOS-1.png|500px]]&lt;br /&gt;
&lt;br /&gt;
Shut down the machine and take the jumper off the service pins and move it back to the password reset pins if you took it from there.&lt;br /&gt;
&lt;br /&gt;
== Install the PCI NVMe SSD ==&lt;br /&gt;
&lt;br /&gt;
If you have not yet installed your SSD into the machine, you can do it now. For the 7020 use the blue PCI slot, it is approximately twice as fast as the smaller black one.&lt;br /&gt;
&lt;br /&gt;
For the 3020 you need to install it into the PCI Slot closest to the Power Supply.&lt;br /&gt;
&lt;br /&gt;
== Optimise BIOS Settings ==&lt;br /&gt;
&lt;br /&gt;
Now that you have written the new BIOS, restart the machine.&lt;br /&gt;
&lt;br /&gt;
You should be able to see the adapter in the BIOS:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-NVMe-Bios-System-Information-1024x576.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Image of System Information screen from a Dell Optiplex 7020 BIOS.&lt;br /&gt;
&lt;br /&gt;
If you are not going to have any SATA drives connected you need to disable them in the BIOS, here you can see I have disabled all of the ports that do not have a drive connected:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-NVMe-Bios-SATA-Options-1024x576.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Disabling the un-used ports prevents an error on startup.&lt;br /&gt;
&lt;br /&gt;
Finally, if you want the maximum possible speed from your new drive, consider disabling C-States in the BIOS. This makes it marginally faster, but I doubt you would notice much difference:&lt;br /&gt;
&lt;br /&gt;
[[File:Dell-Optiplex-7020-Disable-C-States-1024x576.png|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now you should be bale to boot from an NVMe Drive natively using a PCIe adapter!&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Windows_11_Network_Bypass&amp;diff=111</id>
		<title>Windows 11 Network Bypass</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Windows_11_Network_Bypass&amp;diff=111"/>
		<updated>2025-02-02T03:43:43Z</updated>

		<summary type="html">&lt;p&gt;T20A02: Created page with &amp;quot;=== Windows 11 network Bypass ===  As of windows 11 build 25120.1010 Microsoft removed the ability to bypass the need for a Microsoft account using the &amp;quot;OOBE/BYPASSNRO&amp;quot; Command which would present the user with the &amp;quot;I Don&amp;#039;t have Internet&amp;quot; Option at the network screen. Now when running that command the machine will restart, but the option will not appear.  Now that method is obsolete, the following new method allows the same outcome, though with more work.  Press Shift +...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Windows 11 network Bypass ===&lt;br /&gt;
&lt;br /&gt;
As of windows 11 build 25120.1010 Microsoft removed the ability to bypass the need for a Microsoft account using the &amp;quot;OOBE/BYPASSNRO&amp;quot; Command which would present the user with the &amp;quot;I Don&#039;t have Internet&amp;quot; Option at the network screen. Now when running that command the machine will restart, but the option will not appear.&lt;br /&gt;
&lt;br /&gt;
Now that method is obsolete, the following new method allows the same outcome, though with more work.&lt;br /&gt;
&lt;br /&gt;
Press Shift + F10. The command prompt opens&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
net.exe user &amp;quot;User Name&amp;quot; /add &lt;br /&gt;
&lt;br /&gt;
net.exe localgroup &amp;quot;Administrators&amp;quot; &amp;quot;User Name&amp;quot; /add &lt;br /&gt;
&lt;br /&gt;
cd OOBE &lt;br /&gt;
&lt;br /&gt;
msoobe.exe &amp;amp;&amp;amp; shutdown.exe -r &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The Machine will now reboot, and present a &amp;quot;Password incorrect&amp;quot; error, and by pressing OK, you will be brought to the login screen, where you can switch to the new user we created in the bottom right, and continue as normal.&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=110</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=110"/>
		<updated>2025-02-02T03:39:20Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Network Bypass]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Configuring Headscale]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
[[Windows AD with linux Clients]]&lt;br /&gt;
&lt;br /&gt;
[[Apt Repository Cache]]&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;br /&gt;
&lt;br /&gt;
[[ESXI Settup]]&lt;br /&gt;
&lt;br /&gt;
[[Hyper‐V Creating New, and Linked VM&#039;s]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=109</id>
		<title>Configuring Headscale</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=109"/>
		<updated>2025-01-24T03:03:09Z</updated>

		<summary type="html">&lt;p&gt;T20A02: /* Client Connection */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Headscale Setup and Usage ==&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
Tailscale is a free to use VPN service which is build upon Wireguard, is a fast HTTPS based VPN service which removes the server role in a traditional Wireguard setup, and replaces it with a Peer 2 Peer protocol, and a Authentication server. This allows you to connect multiple devices directly, providing device to device connection, via IP and dynamic/magic DNS. Headscale is a open source port of the service, which allows you to host your own authentication server removing limits on speeds, and improving reliability. &lt;br /&gt;
&lt;br /&gt;
In this setup I will be outlining the configuration of the Client and server for Headscale, as well as configuring a client as a &amp;quot;Exit Node&amp;quot; allowing it to forward traffic to local Subnets to other nodes connected to it, for remote network access without the need of a static public address, allowing the traversal of Carrier grade NAT, and port forwarding. &lt;br /&gt;
&lt;br /&gt;
=== Headscale server Installation ===&lt;br /&gt;
&lt;br /&gt;
First we are going to set up our server and install Headscale. The server is recommend by Headscale to be a Apt based Distro, in this example I used Debian 12 Latest. After initial setup I installed firewalld as a firewall appliance which I recommend especially if you are using a VPS that has a public address assigned. Once that is done make sure the following ports are open on the server:&lt;br /&gt;
&lt;br /&gt;
80/tcp required for initial request&lt;br /&gt;
443/tcp used for traffic&lt;br /&gt;
8080/tcp used by the authentication server&lt;br /&gt;
&lt;br /&gt;
41641/udp used for the relay functionality&lt;br /&gt;
3478/udp used for the relay functionality&lt;br /&gt;
&lt;br /&gt;
If using Firewalld like i was these can be opened with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=80/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=443/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=8080/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=41641/udp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=3478/udp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once those ports are open the following link to get the latest release of headscale&#039;s .deb file for amd64.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/juanfont/headscale/releases/latest Latest Headscale Release]&lt;br /&gt;
&lt;br /&gt;
Copy the URL of the .deb file and use wget to download it to the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/juanfont/headscale/releases/download/v0.24.1/headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is downloaded install it with dpkg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to update the IP address of the server in the config before we start it.&lt;br /&gt;
&lt;br /&gt;
Edit the config with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/headscale/config.yaml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the section Highlighted change the blacked out part to the your public address, also change the &amp;quot;Listen Addr&amp;quot; Section to be 0.0.0.0:8080 to allow authentication requests from any IP.&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Server Config.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
After this save and close the config file, and then enable and start the headscale service. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable headscale.service&lt;br /&gt;
sudo systemctl start headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then check that is is running with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl status headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a active and started service, without errors or warnings in the dmesg output:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Running.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Finally we need to create a user to tie out devices together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
headscale users create &amp;lt;USER&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have configured and started our Headscale server, which is ready for authentication requests. Keep a session open with the server, as we will need access to accept and import the keys for out clients, and have created a use for our devices.&lt;br /&gt;
&lt;br /&gt;
=== Client Configuration ===&lt;br /&gt;
&lt;br /&gt;
Now we will outline the configuration of the clients, as they are going to be using the standard Railscale client to access our own server, giving us the advantaged of cross compatibility. &lt;br /&gt;
&lt;br /&gt;
In my example i will be connecting two Linux devices one as the client and one as the &amp;quot;Exit Node&amp;quot;. Additonal documentation for other platforms and OS&#039;s can be found here:&lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Tailscale Documentation Page ]&lt;br /&gt;
&lt;br /&gt;
First we are going to download and run the installser script on our two clients&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -fsSL https://tailscale.com/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will prompt for sudo password, and then install. Once installed enable and start the service like we did with Headscale:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable tailscaled.service&lt;br /&gt;
sudo systemctl start tailscaled.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to connect our new Client device to the Headscale server, so it can authenticate the device, and direct it to the other nodes on the Headscale network:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale ip --login-server=http://xxx.xxx.xxx.xxx:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you do this you will be prompted with a URL. We arent going click the URL but we need the key generated, this is the section at the end starting with &amp;quot;mkey:&amp;quot; Including all of the numbers and letters which is the key for authentication. Copy this key and then on the headscale server run the following command to register and accept the client:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale nodes register --user &amp;lt;USER&amp;gt; --key &amp;lt;KEY&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Screenshot:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Client Key.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Once this is run the device will be accepted and connected. Confirm this my running &amp;lt;pre&amp;gt; sudo tailscale status &amp;lt;/pre&amp;gt; on the client. This should return the new node, and its status in the TTY:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
On the server we can confirm the connected device with &amp;lt;pre&amp;gt; sudo headscale nodes list&amp;lt;/pre&amp;gt; Which gives good status info of all nodes:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Node Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
We can see the nodes on my server are &amp;quot;Online&amp;quot; and no expired.&lt;br /&gt;
&lt;br /&gt;
==== Exit Node ====&lt;br /&gt;
&lt;br /&gt;
Up until this point the setup for a exit node, or regular client is the same, but we need to do a few more things to setup a node as a exit node to allow other clients to access the node and its local subnets.&lt;br /&gt;
&lt;br /&gt;
Now that we have the node authenticated we are going to reconnect it to the headscale server, with a few flags to advertise as an exit node, and to advertise the subnets that are allowed locally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale set --advertise-exit-node --advertise- routes=10.0.1.0/24&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;Advertise Routes&amp;quot; Flag make sure to update to the Subnet you want to share. &lt;br /&gt;
&lt;br /&gt;
Now we need to run the following to allow routing to work correctly on the exit node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the node is advertising this subnet. Now we need to go &amp;quot;Approve&amp;quot; the advertisement on the headscale server. From the server run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list all the routes available on the server, in my case the 10.0.1.0/24 route got the &amp;quot;ID&amp;quot; of 3. Now we run the Following to accept the route &amp;quot;3&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes enable -r 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now if we run the list command from above we should see that the &amp;quot;Enabled&amp;quot; and &amp;quot;Primary&amp;quot; field should be &amp;quot;true&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Route Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==== Client Connection ====&lt;br /&gt;
&lt;br /&gt;
Finally we just have to go to our mobile client, and configure it to connect to the exit node. To do this simply reconnect to the headscale server with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale up --login-server=http://xxx.xxx.xxx.xxx:8080 --accept-routes --exit-node=&amp;lt;EXIT NODE NAME&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be connected, and able to ping devices and access services on that subnet.&lt;br /&gt;
&lt;br /&gt;
==== Conclusion ====&lt;br /&gt;
&lt;br /&gt;
Headscale takes a powerful free to use tool and drops control into you own hands, allowing the creation and use of a powerful networking system. All of the client configuration for this setup uses the same syntax and commands as tail-scale clients, and can be changed, tweaked, and modified using the information found in tail-scales official documentation. &lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Offical Tailscale Documents]&lt;br /&gt;
&lt;br /&gt;
Also thanks to &amp;quot;europecafe&amp;quot; on Reddit for their post providing some clarification of the process, and Lemmy Bean&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=108</id>
		<title>Configuring Headscale</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=108"/>
		<updated>2025-01-24T03:00:38Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Headscale Setup and Usage ==&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
Tailscale is a free to use VPN service which is build upon Wireguard, is a fast HTTPS based VPN service which removes the server role in a traditional Wireguard setup, and replaces it with a Peer 2 Peer protocol, and a Authentication server. This allows you to connect multiple devices directly, providing device to device connection, via IP and dynamic/magic DNS. Headscale is a open source port of the service, which allows you to host your own authentication server removing limits on speeds, and improving reliability. &lt;br /&gt;
&lt;br /&gt;
In this setup I will be outlining the configuration of the Client and server for Headscale, as well as configuring a client as a &amp;quot;Exit Node&amp;quot; allowing it to forward traffic to local Subnets to other nodes connected to it, for remote network access without the need of a static public address, allowing the traversal of Carrier grade NAT, and port forwarding. &lt;br /&gt;
&lt;br /&gt;
=== Headscale server Installation ===&lt;br /&gt;
&lt;br /&gt;
First we are going to set up our server and install Headscale. The server is recommend by Headscale to be a Apt based Distro, in this example I used Debian 12 Latest. After initial setup I installed firewalld as a firewall appliance which I recommend especially if you are using a VPS that has a public address assigned. Once that is done make sure the following ports are open on the server:&lt;br /&gt;
&lt;br /&gt;
80/tcp required for initial request&lt;br /&gt;
443/tcp used for traffic&lt;br /&gt;
8080/tcp used by the authentication server&lt;br /&gt;
&lt;br /&gt;
41641/udp used for the relay functionality&lt;br /&gt;
3478/udp used for the relay functionality&lt;br /&gt;
&lt;br /&gt;
If using Firewalld like i was these can be opened with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=80/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=443/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=8080/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=41641/udp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=3478/udp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once those ports are open the following link to get the latest release of headscale&#039;s .deb file for amd64.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/juanfont/headscale/releases/latest Latest Headscale Release]&lt;br /&gt;
&lt;br /&gt;
Copy the URL of the .deb file and use wget to download it to the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/juanfont/headscale/releases/download/v0.24.1/headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is downloaded install it with dpkg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to update the IP address of the server in the config before we start it.&lt;br /&gt;
&lt;br /&gt;
Edit the config with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/headscale/config.yaml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the section Highlighted change the blacked out part to the your public address, also change the &amp;quot;Listen Addr&amp;quot; Section to be 0.0.0.0:8080 to allow authentication requests from any IP.&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Server Config.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
After this save and close the config file, and then enable and start the headscale service. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable headscale.service&lt;br /&gt;
sudo systemctl start headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then check that is is running with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl status headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a active and started service, without errors or warnings in the dmesg output:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Running.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Finally we need to create a user to tie out devices together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
headscale users create &amp;lt;USER&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have configured and started our Headscale server, which is ready for authentication requests. Keep a session open with the server, as we will need access to accept and import the keys for out clients, and have created a use for our devices.&lt;br /&gt;
&lt;br /&gt;
=== Client Configuration ===&lt;br /&gt;
&lt;br /&gt;
Now we will outline the configuration of the clients, as they are going to be using the standard Railscale client to access our own server, giving us the advantaged of cross compatibility. &lt;br /&gt;
&lt;br /&gt;
In my example i will be connecting two Linux devices one as the client and one as the &amp;quot;Exit Node&amp;quot;. Additonal documentation for other platforms and OS&#039;s can be found here:&lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Tailscale Documentation Page ]&lt;br /&gt;
&lt;br /&gt;
First we are going to download and run the installser script on our two clients&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -fsSL https://tailscale.com/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will prompt for sudo password, and then install. Once installed enable and start the service like we did with Headscale:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable tailscaled.service&lt;br /&gt;
sudo systemctl start tailscaled.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to connect our new Client device to the Headscale server, so it can authenticate the device, and direct it to the other nodes on the Headscale network:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale ip --login-server=http://xxx.xxx.xxx.xxx:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you do this you will be prompted with a URL. We arent going click the URL but we need the key generated, this is the section at the end starting with &amp;quot;mkey:&amp;quot; Including all of the numbers and letters which is the key for authentication. Copy this key and then on the headscale server run the following command to register and accept the client:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale nodes register --user &amp;lt;USER&amp;gt; --key &amp;lt;KEY&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Screenshot:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Client Key.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Once this is run the device will be accepted and connected. Confirm this my running &amp;lt;pre&amp;gt; sudo tailscale status &amp;lt;/pre&amp;gt; on the client. This should return the new node, and its status in the TTY:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
On the server we can confirm the connected device with &amp;lt;pre&amp;gt; sudo headscale nodes list&amp;lt;/pre&amp;gt; Which gives good status info of all nodes:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Node Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
We can see the nodes on my server are &amp;quot;Online&amp;quot; and no expired.&lt;br /&gt;
&lt;br /&gt;
==== Exit Node ====&lt;br /&gt;
&lt;br /&gt;
Up until this point the setup for a exit node, or regular client is the same, but we need to do a few more things to setup a node as a exit node to allow other clients to access the node and its local subnets.&lt;br /&gt;
&lt;br /&gt;
Now that we have the node authenticated we are going to reconnect it to the headscale server, with a few flags to advertise as an exit node, and to advertise the subnets that are allowed locally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale set --advertise-exit-node --advertise- routes=10.0.1.0/24&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;Advertise Routes&amp;quot; Flag make sure to update to the Subnet you want to share. &lt;br /&gt;
&lt;br /&gt;
Now we need to run the following to allow routing to work correctly on the exit node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the node is advertising this subnet. Now we need to go &amp;quot;Approve&amp;quot; the advertisement on the headscale server. From the server run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list all the routes available on the server, in my case the 10.0.1.0/24 route got the &amp;quot;ID&amp;quot; of 3. Now we run the Following to accept the route &amp;quot;3&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes enable -r 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now if we run the list command from above we should see that the &amp;quot;Enabled&amp;quot; and &amp;quot;Primary&amp;quot; field should be &amp;quot;true&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Route Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==== Client Connection ====&lt;br /&gt;
&lt;br /&gt;
Finally we just have to go to our mobile client, and configure it to connect to the exit node. To do this simply reconnect to the headscale server with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tasilscale up --login-server=http://xxx.xxx.xxx.xxx:8080 --accept-routes --exit-node=&amp;lt;EXIT NODE NAME&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be connected, and able to ping devices and access services on that subnet.&lt;br /&gt;
&lt;br /&gt;
==== Conclusion ====&lt;br /&gt;
&lt;br /&gt;
Headscale takes a powerful free to use tool and drops control into you own hands, allowing the creation and use of a powerful networking system. All of the client configuration for this setup uses the same syntax and commands as tail-scale clients, and can be changed, tweaked, and modified using the information found in tail-scales official documentation. &lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Offical Tailscale Documents]&lt;br /&gt;
&lt;br /&gt;
Also thanks to &amp;quot;europecafe&amp;quot; on Reddit for their post providing some clarification of the process, and Lemmy Bean&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=107</id>
		<title>Configuring Headscale</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=107"/>
		<updated>2025-01-24T02:59:17Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Headscale Settup and Usage ==&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
Tailscale is a free to use VPN service which is build upon Wireguard, is a fast HTTPS based VPN service which removes the server role in a traditional Wireguard setup, and replaces it with a Peer 2 Peer protocol, and a Authentication server. This allows you to connect multiple devices directly, providing device to device connection, via IP and dynamic/magic DNS. Headscale is a open source port of the service, which allows you to host your own authentication server removing limits on speeds, and improving reliability. &lt;br /&gt;
&lt;br /&gt;
In this setup I will be outlining the configuration of the Client and server for Headscale, as well as configuring a client as a &amp;quot;Exit Node&amp;quot; allowing it to forward traffic to local Subnets to other nodes connected to it, for remote network access without the need of a static public address, allowing the traversal of Carrier grade NAT, and port forwarding. &lt;br /&gt;
&lt;br /&gt;
=== Headscale server Installation ===&lt;br /&gt;
&lt;br /&gt;
First we are going to set up our server and install Headscale. The server is recommend by Headscale to be a Apt based Distro, in this example I used Debian 12 Latest. After initial setup I installed firewalld as a firewall appliance which I recommend especially if you are using a VPS that has a public address assigned. Once that is done make sure the following ports are open on the server:&lt;br /&gt;
&lt;br /&gt;
80/tcp required for initial request&lt;br /&gt;
443/tcp used for traffic&lt;br /&gt;
8080/tcp used by the authentication server&lt;br /&gt;
&lt;br /&gt;
41641/udp used for the relay functionality&lt;br /&gt;
3478/udp used for the relay functionality&lt;br /&gt;
&lt;br /&gt;
If using Firewalld like i was these can be opened with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=80/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=443/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=8080/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=41641/udp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=3478/udp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once those ports are open the following link to get the latest release of headscale&#039;s .deb file for amd64.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/juanfont/headscale/releases/latest Latest Headscale Release]&lt;br /&gt;
&lt;br /&gt;
Copy the URL of the .deb file and use wget to download it to the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/juanfont/headscale/releases/download/v0.24.1/headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is downloaded install it with dpkg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to update the IP address of the server in the config before we start it.&lt;br /&gt;
&lt;br /&gt;
Edit the config with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/headscale/config.yaml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the section Highlighted change the blacked out part to the your public address, also change the &amp;quot;Listen Addr&amp;quot; Section to be 0.0.0.0:8080 to allow authentication requests from any IP.&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Server Config.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
After this save and close the config file, and then enable and start the headscale service. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable headscale.service&lt;br /&gt;
sudo systemctl start headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then check that is is running with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl status headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a active and started service, without errors or warnings in the dmesg output:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Running.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Finally we need to create a user to tie out devices together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
headscale users create &amp;lt;USER&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have configured and started our Headscale server, which is ready for authentication requests. Keep a session open with the server, as we will need access to accept and import the keys for out clients, and have created a use for our devices.&lt;br /&gt;
&lt;br /&gt;
=== Client Configuration ===&lt;br /&gt;
&lt;br /&gt;
Now we will outline the configuration of the clients, as they are going to be using the standard Railscale client to access our own server, giving us the advantaged of cross compatibility. &lt;br /&gt;
&lt;br /&gt;
In my example i will be connecting two Linux devices one as the client and one as the &amp;quot;Exit Node&amp;quot;. Additonal documentation for other platforms and OS&#039;s can be found here:&lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Tailscale Documentation Page ]&lt;br /&gt;
&lt;br /&gt;
First we are going to download and run the installser script on our two clients&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -fsSL https://tailscale.com/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will prompt for sudo password, and then install. Once installed enable and start the service like we did with Headscale:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable tailscaled.service&lt;br /&gt;
sudo systemctl start tailscaled.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to connect our new Client device to the Headscale server, so it can authenticate the device, and direct it to the other nodes on the Headscale network:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale ip --login-server=http://xxx.xxx.xxx.xxx:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you do this you will be prompted with a URL. We arent going click the URL but we need the key generated, this is the section at the end starting with &amp;quot;mkey:&amp;quot; Including all of the numbers and letters which is the key for authentication. Copy this key and then on the headscale server run the following command to register and accept the client:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale nodes register --user &amp;lt;USER&amp;gt; --key &amp;lt;KEY&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Screenshot:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Client Key.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Once this is run the device will be accepted and connected. Confirm this my running &amp;lt;pre&amp;gt; sudo tailscale status &amp;lt;/pre&amp;gt; on the client. This should return the new node, and its status in the TTY:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
On the server we can confirm the connected device with &amp;lt;pre&amp;gt; sudo headscale nodes list&amp;lt;/pre&amp;gt; Which gives good status info of all nodes:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Node Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
We can see the nodes on my server are &amp;quot;Online&amp;quot; and no expired.&lt;br /&gt;
&lt;br /&gt;
==== Exit Node ====&lt;br /&gt;
&lt;br /&gt;
Up until this point the setup for a exit node, or regular client is the same, but we need to do a few more things to setup a node as a exit node to allow other clients to access the node and its local subnets.&lt;br /&gt;
&lt;br /&gt;
Now that we have the node authenticated we are going to reconnect it to the headscale server, with a few flags to advertise as an exit node, and to advertise the subnets that are allowed locally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale set --advertise-exit-node --advertise- routes=10.0.1.0/24&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;Advertise Routes&amp;quot; Flag make sure to update to the Subnet you want to share. &lt;br /&gt;
&lt;br /&gt;
Now we need to run the following to allow routing to work correctly on the exit node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the node is advertising this subnet. Now we need to go &amp;quot;Approve&amp;quot; the advertisement on the headscale server. From the server run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list all the routes available on the server, in my case the 10.0.1.0/24 route got the &amp;quot;ID&amp;quot; of 3. Now we run the Following to accept the route &amp;quot;3&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes enable -r 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now if we run the list command from above we should see that the &amp;quot;Enabled&amp;quot; and &amp;quot;Primary&amp;quot; field should be &amp;quot;true&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Route Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==== Client Connection ====&lt;br /&gt;
&lt;br /&gt;
Finally we just have to go to our mobile client, and configure it to connect to the exit node. To do this simply reconnect to the headscale server with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tasilscale up --login-server=http://xxx.xxx.xxx.xxx:8080 --accept-routes --exit-node=&amp;lt;EXIT NODE NAME&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be connected, and able to ping devices and access services on that subnet.&lt;br /&gt;
&lt;br /&gt;
==== Conclusion ====&lt;br /&gt;
&lt;br /&gt;
Headscale takes a powerful free to use tool and drops control into you own hands, allowing the creation and use of a powerful networking system. All of the client configuration for this setup uses the same syntax and commands as tail-scale clients, and can be changed, tweaked, and modified using the information found in tail-scales official documentation. &lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Offical Tailscale Documents]&lt;br /&gt;
&lt;br /&gt;
Also thanks to &amp;quot;europecafe&amp;quot; on Reddit for their post providing some clarification of the process, and Lemmy Bean&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=106</id>
		<title>Configuring Headscale</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=106"/>
		<updated>2025-01-24T02:56:00Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Headscale Settup and Usage ==&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
Tailscale is a free to use VPN service which is build upon Wireguard, is a fast HTTPS based VPN service which removes the server role in a traditional Wireguard setup, and replaces it with a Peer 2 Peer protocol, and a Authentication server. This allows you to connect multiple devices directly, providing device to device connection, via IP and dynamic/magic DNS. Headscale is a open source port of the service, which allows you to host your own authentication server removing limits on speeds, and improving reliability. &lt;br /&gt;
&lt;br /&gt;
In this setup I will be outlining the configuration of the Client and server for Headscale, as well as configuring a client as a &amp;quot;Exit Node&amp;quot; allowing it to forward traffic to local Subnets to other nodes connected to it, for remote network access without the need of a static public address, allowing the traversal of Carrier grade NAT, and port forwarding. &lt;br /&gt;
&lt;br /&gt;
=== Headscale server Installation ===&lt;br /&gt;
&lt;br /&gt;
First we are going to set up our server and install Headscale. The server is recommend by Headscale to be a Apt based Distro, in this example I used Debian 12 Latest. After initial setup I installed firewalld as a firewall appliance which I recommend especially if you are using a VPS that has a public address assigned. Once that is done make sure the following ports are open on the server:&lt;br /&gt;
&lt;br /&gt;
80/tcp required for initial request&lt;br /&gt;
443/tcp used for traffic&lt;br /&gt;
8080/tcp used by the authentication server&lt;br /&gt;
&lt;br /&gt;
41641/udp used for the relay functionality&lt;br /&gt;
3478/udp used for the relay functionality&lt;br /&gt;
&lt;br /&gt;
If using Firewalld like i was these can be opened with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=80/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=443/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=8080/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=41641/udp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=3478/udp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once those ports are open the following link to get the latest release of headscale&#039;s .deb file for amd64.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/juanfont/headscale/releases/latest Latest Headscale Release]&lt;br /&gt;
&lt;br /&gt;
Copy the URL of the .deb file and use wget to download it to the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/juanfont/headscale/releases/download/v0.24.1/headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is downloaded install it with dpkg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to update the IP address of the server in the config before we start it.&lt;br /&gt;
&lt;br /&gt;
Edit the config with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/headscale/config.yaml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the section Highlighted change the blacked out part to the your public address, also change the &amp;quot;Listen Addr&amp;quot; Section to be 0.0.0.0:8080 to allow authentication requests from any IP.&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Server Config.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
After this save and close the config file, and then enable and start the headscale service. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable headscale.service&lt;br /&gt;
sudo systemctl start headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then check that is is running with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl status headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a active and started service, without errors or warnings in the dmesg output:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Running.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Finally we need to create a user to tie out devices together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
headscale users create &amp;lt;USER&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have configured and started our Headscale server, which is ready for authentication requests. Keep a session open with the server, as we will need access to accept and import the keys for out clients, and have created a use for our devices.&lt;br /&gt;
&lt;br /&gt;
=== Client Configuration ===&lt;br /&gt;
&lt;br /&gt;
Now we will outline the configuration of the clients, as they are going to be using the standard Railscale client to access our own server, giving us the advantaged of cross compatibility. &lt;br /&gt;
&lt;br /&gt;
In my example i will be connecting two Linux devices one as the client and one as the &amp;quot;Exit Node&amp;quot;. Additonal documentation for other platforms and OS&#039;s can be found here:&lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Tailscale Documentation Page ]&lt;br /&gt;
&lt;br /&gt;
First we are going to download and run the installser script on our two clients&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -fsSL https://tailscale.com/install.sh | sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It will prompt for sudo password, and then install. Once installed enable and start the service like we did with Headscale:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable tailscaled.service&lt;br /&gt;
sudo systemctl start tailscaled.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to connect our new Client device to the Headscale server, so it can authenticate the device, and direct it to the other nodes on the Headscale network:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale ip --login-server=http://xxx.xxx.xxx.xxx:8080&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When you do this you will be prompted with a URL. We arent going click the URL but we need the key generated, this is the section at the end starting with &amp;quot;mkey:&amp;quot; Including all of the numbers and letters which is the key for authentication. Copy this key and then on the headscale server run the following command to register and accept the client:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale nodes register --user &amp;lt;USER&amp;gt; --key &amp;lt;KEY&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Example Screenshot:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Client Key.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Once this is run the device will be accepted and connected. Confirm this my running &amp;lt;pre&amp;gt; sudo tailscale status &amp;lt;/pre&amp;gt; on the client. This should return the new node, and its status in the TTY:&lt;br /&gt;
&lt;br /&gt;
[[File:Tailscale Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
On the server we can confirm the connected device with &amp;lt;pre&amp;gt; sudo headscale nodes list&amp;lt;/pre&amp;gt; Which gives good status info of all nodes:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Node Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
We can see the nodes on my server are &amp;quot;Online&amp;quot; and no expired.&lt;br /&gt;
&lt;br /&gt;
==== Exit Node ====&lt;br /&gt;
&lt;br /&gt;
Up until this point the setup for a exit node, or regular client is the same, but we need to do a few more things to setup a node as a exit node to allow other clients to access the node and its local subnets.&lt;br /&gt;
&lt;br /&gt;
Now that we have the node authenticated we are going to reconnect it to the headscale server, with a few flags to advertise as an exit node, and to advertise the subnets that are allowed locally:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tailscale set --advertise-exit-node --advertise- routes=10.0.1.0/24&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
&lt;br /&gt;
In the &amp;quot;Advertise Routes&amp;quot; Flag make sure to update to the Subnet you want to share. &lt;br /&gt;
&lt;br /&gt;
Now we need to run the following to allow routing to work correctly on the exit node. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;net.ipv4.ip_forward = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
echo &#039;net.ipv6.conf.all.forwarding = 1&#039; | sudo tee -a /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
sudo sysctl -p /etc/sysctl.d/99-tailscale.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the node is advertising this subnet. Now we need to go &amp;quot;Approve&amp;quot; the advertisement on the headscale server. From the server run the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will list all the routes available on the server, in my case the 10.0.1.0/24 route got the &amp;quot;ID&amp;quot; of 3. Now we run the Following to accept the route &amp;quot;3&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo headscale routes enable -r 3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now if we run the list command from above we should see that the &amp;quot;Enabled&amp;quot; and &amp;quot;Primary&amp;quot; field should be &amp;quot;true&amp;quot;:&lt;br /&gt;
&lt;br /&gt;
[[File:Route Status.png|800px]]&lt;br /&gt;
&lt;br /&gt;
==== Client Connection ====&lt;br /&gt;
&lt;br /&gt;
Finally we just have to go to our mobile client, and configure it to connect to the exit node. To do this simply reconnect to the headscale server with the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tasilscale up --login-server=http://xxx.xxx.xxx.xxx:8080 --accept-routes --exit-node=&amp;lt;EXIT NODE NAME&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be connected, and able to ping devices and access services on that subnet.&lt;br /&gt;
&lt;br /&gt;
==== Conclusion ====&lt;br /&gt;
&lt;br /&gt;
Headscale takes a powerful free to use tool and drops control into you own hands, allowing the creation and use of a powerful networking system. All of the client configuration for this setup uses the same syntax and commands as tail-scale clients, and can be changed, tweaked, and modified using the information found in tail-scales official documentation. &lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Offical Tailscale Documents]&lt;br /&gt;
&lt;br /&gt;
Also thanks to &amp;quot;europecafe&amp;quot; on Reddit for their post providing some clarification of the process, and of Liam DiFalco&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:Route_Status.png&amp;diff=105</id>
		<title>File:Route Status.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:Route_Status.png&amp;diff=105"/>
		<updated>2025-01-24T02:49:22Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:Headscale_Node_Status.png&amp;diff=104</id>
		<title>File:Headscale Node Status.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:Headscale_Node_Status.png&amp;diff=104"/>
		<updated>2025-01-24T02:37:00Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:Tailscale_Status.png&amp;diff=103</id>
		<title>File:Tailscale Status.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:Tailscale_Status.png&amp;diff=103"/>
		<updated>2025-01-24T02:35:21Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:Tailscale_Client_Key.png&amp;diff=102</id>
		<title>File:Tailscale Client Key.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:Tailscale_Client_Key.png&amp;diff=102"/>
		<updated>2025-01-24T02:33:30Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=101</id>
		<title>Configuring Headscale</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Configuring_Headscale&amp;diff=101"/>
		<updated>2025-01-24T02:26:13Z</updated>

		<summary type="html">&lt;p&gt;T20A02: Created page with &amp;quot;== Headscale Settup and Usage ==  ==== Summary ====  Tailscale is a free to use VPN service which is build upon Wireguard, is a fast HTTPS based VPN service which removes the server role in a traditional Wireguard setup, and replaces it with a Peer 2 Peer protocol, and a Authentication server. This allows you to connect multiple devices directly, providing device to device connection, via IP and dynamic/magic DNS. Headscale is a open source port of the service, which all...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Headscale Settup and Usage ==&lt;br /&gt;
&lt;br /&gt;
==== Summary ====&lt;br /&gt;
&lt;br /&gt;
Tailscale is a free to use VPN service which is build upon Wireguard, is a fast HTTPS based VPN service which removes the server role in a traditional Wireguard setup, and replaces it with a Peer 2 Peer protocol, and a Authentication server. This allows you to connect multiple devices directly, providing device to device connection, via IP and dynamic/magic DNS. Headscale is a open source port of the service, which allows you to host your own authentication server removing limits on speeds, and improving reliability. &lt;br /&gt;
&lt;br /&gt;
In this setup I will be outlining the configuration of the Client and server for Headscale, as well as configuring a client as a &amp;quot;Exit Node&amp;quot; allowing it to forward traffic to local Subnets to other nodes connected to it, for remote network access without the need of a static public address, allowing the traversal of Carrier grade NAT, and port forwarding. &lt;br /&gt;
&lt;br /&gt;
=== Headscale server Installation ===&lt;br /&gt;
&lt;br /&gt;
First we are going to set up our server and install Headscale. The server is recommend by Headscale to be a Apt based Distro, in this example I used Debian 12 Latest. After initial setup I installed firewalld as a firewall appliance which I recommend especially if you are using a VPS that has a public address assigned. Once that is done make sure the following ports are open on the server:&lt;br /&gt;
&lt;br /&gt;
80/tcp required for initial request&lt;br /&gt;
443/tcp used for traffic&lt;br /&gt;
8080/tcp used by the authentication server&lt;br /&gt;
&lt;br /&gt;
41641/udp used for the relay functionality&lt;br /&gt;
3478/udp used for the relay functionality&lt;br /&gt;
&lt;br /&gt;
If using Firewalld like i was these can be opened with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=80/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=443/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=8080/tcp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=41641/udp \&lt;br /&gt;
sudo firewall-cmd --permanent --allow-port=3478/udp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once those ports are open the following link to get the latest release of headscale&#039;s .deb file for amd64.&lt;br /&gt;
&lt;br /&gt;
[https://github.com/juanfont/headscale/releases/latest Latest Headscale Release]&lt;br /&gt;
&lt;br /&gt;
Copy the URL of the .deb file and use wget to download it to the server:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://github.com/juanfont/headscale/releases/download/v0.24.1/headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once this is downloaded install it with dpkg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo dpkg -i headscale_0.24.1_linux_amd64.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we need to update the IP address of the server in the config before we start it.&lt;br /&gt;
&lt;br /&gt;
Edit the config with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo nano /etc/headscale/config.yaml&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the section Highlighted change the blacked out part to the your public address, also change the &amp;quot;Listen Addr&amp;quot; Section to be 0.0.0.0:8080 to allow authentication requests from any IP.&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Server Config.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
After this save and close the config file, and then enable and start the headscale service. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl enable headscale.service&lt;br /&gt;
sudo systemctl start headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then check that is is running with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo systemctl status headscale.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see a active and started service, without errors or warnings in the dmesg output:&lt;br /&gt;
&lt;br /&gt;
[[File:Headscale Running.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Finally we need to create a user to tie out devices together:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
headscale users create &amp;lt;USER&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now we have configured and started our Headscale server, which is ready for authentication requests. Keep a session open with the server, as we will need access to accept and import the keys for out clients, and have created a use for our devices.&lt;br /&gt;
&lt;br /&gt;
=== Client Configuration ===&lt;br /&gt;
&lt;br /&gt;
Now we will outline the configuration of the clients, as they are going to be using the standard Railscale client to access our own server, giving us the advantaged of cross compatibility. &lt;br /&gt;
&lt;br /&gt;
In my example i will be connecting two Linux devices one as the client and one as the &amp;quot;Exit Node&amp;quot;. Additonal documentation for other platforms and OS&#039;s can be found here:&lt;br /&gt;
&lt;br /&gt;
[https://tailscale.com/kb/1017/install Tailscale Documentation Page ]&lt;br /&gt;
&lt;br /&gt;
First we are going to download and run the installser script on our two clients&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:Headscale_Running.png&amp;diff=100</id>
		<title>File:Headscale Running.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:Headscale_Running.png&amp;diff=100"/>
		<updated>2025-01-24T02:23:33Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:Headscale_Server_Config.png&amp;diff=99</id>
		<title>File:Headscale Server Config.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:Headscale_Server_Config.png&amp;diff=99"/>
		<updated>2025-01-24T02:19:19Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=98</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=98"/>
		<updated>2025-01-24T01:57:36Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Configuring Headscale]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
[[Windows AD with linux Clients]]&lt;br /&gt;
&lt;br /&gt;
[[Apt Repository Cache]]&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;br /&gt;
&lt;br /&gt;
[[ESXI Settup]]&lt;br /&gt;
&lt;br /&gt;
[[Hyper‐V Creating New, and Linked VM&#039;s]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Apt_Repository_Cache&amp;diff=97</id>
		<title>Apt Repository Cache</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Apt_Repository_Cache&amp;diff=97"/>
		<updated>2024-11-27T16:17:04Z</updated>

		<summary type="html">&lt;p&gt;T20A02: Created page with &amp;quot;==Apt Repository Cache==  &amp;quot;apt-cache-ng&amp;quot; is a apt repository package which allows the configuration of a apt repository cache server, acting much like a windows update cache server but for Linux distributions such as Debian or Ubuntu. This service will log and cache package files as well as provide a web interface for monitoring usage and other statistics.   ===Setup===  First start with a fresh installation for your server, and a static IP address. In my case I used Deb...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Apt Repository Cache==&lt;br /&gt;
&lt;br /&gt;
&amp;quot;apt-cache-ng&amp;quot; is a apt repository package which allows the configuration of a apt repository cache server, acting much like a windows update cache server but for Linux distributions such as Debian or Ubuntu. This service will log and cache package files as well as provide a web interface for monitoring usage and other statistics. &lt;br /&gt;
&lt;br /&gt;
===Setup===&lt;br /&gt;
&lt;br /&gt;
First start with a fresh installation for your server, and a static IP address. In my case I used Debian 12.&lt;br /&gt;
&lt;br /&gt;
1. Start with a fresh update&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; apt install upgrade&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Next install the package&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt install apt-cacher-ng&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Now alow the required ports through your machine firewall. The service runs on port 3142. &lt;br /&gt;
&lt;br /&gt;
Example for ufw:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo ufw allow 3142/tcp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Now you have a basic installation. You should be able to navigate to the servers IP, using port 3142, and see the web interface including usage.&lt;br /&gt;
&lt;br /&gt;
[[File:Apt-Cacher-NG-WEB.png|400px]]&lt;br /&gt;
&lt;br /&gt;
===Client Configuration===&lt;br /&gt;
&lt;br /&gt;
Now that we have the server configured and running, and we verified it with the presence of the web UI, we can configure the Client side. This is done simply by adding one like to a file, in your Clients apt DConf folder. &lt;br /&gt;
&lt;br /&gt;
1. Run the following command, to generate a file called &amp;quot;00cacher&amp;quot; and populate it with the config line. make sure to update the IP address to match that of your caching server&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &#039;Acquire::http::Proxy &amp;quot;http://cacheserver:3142&amp;quot;;&#039; \&lt;br /&gt;
  &amp;gt; /etc/apt/apt.conf.d/00cacher&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you are done! Running an apt update, make sure you do not see any errors, if you do there is likely a misconfiguration in the client config file.&lt;br /&gt;
&lt;br /&gt;
Going back over to the server you should find activity in the cacher log located at&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/var/log/apt-cacher-ng/apt-cacher.log&lt;br /&gt;
&amp;lt;/pre&amp;gt; &lt;br /&gt;
and you should also now see content stored in &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/var/cache/apt-cacher-ng/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:Apt-Cacher-NG-WEB.png&amp;diff=96</id>
		<title>File:Apt-Cacher-NG-WEB.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:Apt-Cacher-NG-WEB.png&amp;diff=96"/>
		<updated>2024-11-27T16:09:16Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=95</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=95"/>
		<updated>2024-11-27T16:00:47Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
[[Windows AD with linux Clients]]&lt;br /&gt;
&lt;br /&gt;
[[Apt Repository Cache]]&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;br /&gt;
&lt;br /&gt;
[[ESXI Settup]]&lt;br /&gt;
&lt;br /&gt;
[[Hyper‐V Creating New, and Linked VM&#039;s]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=94</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=94"/>
		<updated>2024-11-14T06:28:37Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
[[Windows AD with linux Clients]]&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;br /&gt;
&lt;br /&gt;
[[ESXI Settup]]&lt;br /&gt;
&lt;br /&gt;
[[Hyper‐V Creating New, and Linked VM&#039;s]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Hyper%E2%80%90V_Creating_New,_and_Linked_VM%27s&amp;diff=93</id>
		<title>Hyper‐V Creating New, and Linked VM&#039;s</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Hyper%E2%80%90V_Creating_New,_and_Linked_VM%27s&amp;diff=93"/>
		<updated>2024-11-02T02:22:15Z</updated>

		<summary type="html">&lt;p&gt;T20A02: Created page with &amp;quot;== Creating a Base VM in Hyper-V with Windows Server 2019 ==  === Creating the Base VM ===  ==== PowerShell Commands: ====  These are the commands used in order top create a new base VM via powershell  &amp;lt;pre&amp;gt; $VMName = &amp;quot;BaseVM&amp;quot; $VMPath = &amp;quot;C:\Hyper-V\VMs&amp;quot; $ISOPath = &amp;quot;C:\Path\to\WindowsServer2019.iso&amp;quot;  New-VM -Name $VMName -Path $VMPath -MemoryStartupBytes 4GB -NewVHDPath &amp;quot;$VMPath\$VMName.vhdx&amp;quot; -NewVHDSizeBytes 60GB Set-VMBios -VMName $VMName -BootOrder &amp;quot;CD&amp;quot; Add-VMDvdDrive...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Creating a Base VM in Hyper-V with Windows Server 2019 ==&lt;br /&gt;
&lt;br /&gt;
=== Creating the Base VM ===&lt;br /&gt;
&lt;br /&gt;
==== PowerShell Commands: ====&lt;br /&gt;
&lt;br /&gt;
These are the commands used in order top create a new base VM via powershell&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$VMName = &amp;quot;BaseVM&amp;quot;&lt;br /&gt;
$VMPath = &amp;quot;C:\Hyper-V\VMs&amp;quot;&lt;br /&gt;
$ISOPath = &amp;quot;C:\Path\to\WindowsServer2019.iso&amp;quot;&lt;br /&gt;
&lt;br /&gt;
New-VM -Name $VMName -Path $VMPath -MemoryStartupBytes 4GB -NewVHDPath &amp;quot;$VMPath\$VMName.vhdx&amp;quot; -NewVHDSizeBytes 60GB&lt;br /&gt;
Set-VMBios -VMName $VMName -BootOrder &amp;quot;CD&amp;quot;&lt;br /&gt;
Add-VMDvdDrive -VMName $VMName -Path $ISOPath&lt;br /&gt;
Start-VM -Name $VMName&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are the commands used in order, to make a linked clone of a VM&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$LinkedVMName = &amp;quot;LinkedCloneVM&amp;quot;&lt;br /&gt;
&lt;br /&gt;
New-VHD -Path &amp;quot;C:\Hyper-V\VMs\$LinkedVMName.vhdx&amp;quot; -ParentPath &amp;quot;C:\Hyper-V\VMs\BaseVM.vhdx&amp;quot; -Differencing&lt;br /&gt;
New-VM -Name $LinkedVMName -Path &amp;quot;C:\Hyper-V\VMs&amp;quot; -MemoryStartupBytes 4GB -VHDPath &amp;quot;C:\Hyper-V\VMs\$LinkedVMName.vhdx&amp;quot;&lt;br /&gt;
Start-VM -Name $LinkedVMName&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Other General Commands: ====&lt;br /&gt;
&lt;br /&gt;
# Interacting with PowerShell Commands&lt;br /&gt;
&lt;br /&gt;
To stop a virtual machine using PowerShell, you can execute the following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Stop-Service -Name YourVMName&lt;br /&gt;
# OR&lt;br /&gt;
Stop-Process -Name YourVMName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Checkpoint-VM -Name YourVMName -SnapshotName snapshot1&lt;br /&gt;
# OR&lt;br /&gt;
Checkpoint-Computer -Name YourVMName -SnapshotName snapshot1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Start-Service -Name YourVMName&lt;br /&gt;
# OR&lt;br /&gt;
Start-Process -Name YourVMName&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
# Change the network profile for &#039;YourVMName&#039; to another network by name&lt;br /&gt;
Set-NetConnectionProfile -InterfaceAlias YourVMName -NetworkCategory &amp;quot;Private&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# OR&lt;br /&gt;
&lt;br /&gt;
# Change the IP address of &#039;YourVMName&#039; to another network&lt;br /&gt;
Set-NetIPAddress -InterfaceAlias YourVMName -IPAddress NewIPAddress -PrefixLength SubnetMask -DefaultGateway NewGateway&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Written in part with ChatGPT&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=92</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=92"/>
		<updated>2024-11-02T02:17:53Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;br /&gt;
&lt;br /&gt;
[[ESXI Settup]]&lt;br /&gt;
&lt;br /&gt;
[[Hyper‐V Creating New, and Linked VM&#039;s]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=ESXI_Settup&amp;diff=91</id>
		<title>ESXI Settup</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=ESXI_Settup&amp;diff=91"/>
		<updated>2024-11-02T02:12:12Z</updated>

		<summary type="html">&lt;p&gt;T20A02: Created page with &amp;quot;=== ESXI Configuration ===  This is a quick install guide written for ESXI 8.0.   1) First install ESXI using a bootable media, following the standard install prompts, and configure a custom password, which will be used for web access.  2) Install ESXI on the smaller of the two drives, as we are going to be using the larger as the datastore for VM Disk&amp;#039;s, and the smaller for ESXI itself and ISO files.  3) After ESXI is installed, and started up to the main screen, Press...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== ESXI Configuration ===&lt;br /&gt;
&lt;br /&gt;
This is a quick install guide written for ESXI 8.0. &lt;br /&gt;
&lt;br /&gt;
1) First install ESXI using a bootable media, following the standard install prompts, and configure a custom password, which will be used for web access.&lt;br /&gt;
&lt;br /&gt;
2) Install ESXI on the smaller of the two drives, as we are going to be using the larger as the datastore for VM Disk&#039;s, and the smaller for ESXI itself and ISO files.&lt;br /&gt;
&lt;br /&gt;
3) After ESXI is installed, and started up to the main screen, Press &amp;quot;F2&amp;quot; to access basic systems settings, this will require you to input your password, you set at install. Then select management network settings and configure them as following:&lt;br /&gt;
&lt;br /&gt;
Device IP: 192.168.7.14&lt;br /&gt;
Subnet Address: 255.255.255.0&lt;br /&gt;
Gateway: 192.168.7.250&lt;br /&gt;
DNS Servers: 192.168.4.4, 192.168.4.5&lt;br /&gt;
Hostname: System4.cyber.local&lt;br /&gt;
&lt;br /&gt;
4) After this you should be able to access the ESXI web interface, via the devices IP &amp;quot;192.168.7.14&amp;quot; or system4.cyber.local&lt;br /&gt;
&lt;br /&gt;
5) Next Select the &amp;quot;Storage&amp;quot; tab on on the dashboard. Now you can rename the first datastore, and also can mount and format other drives as datastores. We configured two datastores:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
datastore1-super4&lt;br /&gt;
&lt;br /&gt;
datastore2-super4&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Datastore 2 holds the ESXI install, and we have added a directory for holding out ISO files for VM&#039;s&lt;br /&gt;
&lt;br /&gt;
6) Now we are configuring out Internal virtual network switch &amp;quot;350-Internal&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
First enter the network tab, from the left side of the screen just below the datastore tab.&lt;br /&gt;
&lt;br /&gt;
Next click the &amp;quot;vswitch&amp;quot; section on the top of the menu&lt;br /&gt;
&lt;br /&gt;
Now create a new switch from the options right below, and create a new switch named 350-Internal&lt;br /&gt;
&lt;br /&gt;
Next go to the tool bar above, and select port-groups, select new port-group, and then associate it with the new internal network&lt;br /&gt;
&lt;br /&gt;
Now out ESXI environment is configured.&lt;br /&gt;
&lt;br /&gt;
=== PFSense Configuration ===&lt;br /&gt;
&lt;br /&gt;
First Create a new VM from the VM tab in ESXI with the following specs:&lt;br /&gt;
&lt;br /&gt;
2 network ports, one on &amp;lt;code&amp;gt;VM-Network&amp;lt;/code&amp;gt;, on on &amp;lt;code&amp;gt;350-Internal&amp;lt;/code&amp;gt; network&lt;br /&gt;
&lt;br /&gt;
1 CPU&lt;br /&gt;
&lt;br /&gt;
2 GB of RAM&lt;br /&gt;
&lt;br /&gt;
8GB Thin Provision Disk&lt;br /&gt;
&lt;br /&gt;
Mounted PFSense .iso file from datastore. (Don&#039;t forget this as I could not get the VM to boot, when mounting this later) &lt;br /&gt;
&lt;br /&gt;
2) Install PFSense and use the default settings for the install&lt;br /&gt;
&lt;br /&gt;
3) Once rebooted, access the CLI from the VM Console window and select 2 to configure IP&#039;s on the Interface&lt;br /&gt;
&lt;br /&gt;
4) wxc0 is out WAN network Interface, and should be configured with the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
No DHCP&lt;br /&gt;
&lt;br /&gt;
IP: 192.168.7.75/24&lt;br /&gt;
&lt;br /&gt;
Upstream Gateway: 192.168.7.250&lt;br /&gt;
&lt;br /&gt;
No IPV6 Address&lt;br /&gt;
&lt;br /&gt;
Do Not revert web interface&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5) For the LAN network select wxc1&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
IP: 10.0.7.2/24&lt;br /&gt;
&lt;br /&gt;
No Upstream gateway&lt;br /&gt;
&lt;br /&gt;
No IPV6&lt;br /&gt;
&lt;br /&gt;
No DHCP&lt;br /&gt;
&lt;br /&gt;
Do Not Revert Web Interface&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== MGMT1 Install ===&lt;br /&gt;
&lt;br /&gt;
In this section we are installing our MGMT box, I used the default xubuntu for the task, as it is reliable, and easy to work with.&lt;br /&gt;
&lt;br /&gt;
1) Create a second VM with the following specs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
2 CPU Cores&lt;br /&gt;
&lt;br /&gt;
5GB of RAM&lt;br /&gt;
&lt;br /&gt;
30GB Thin provisioned Drive&lt;br /&gt;
&lt;br /&gt;
Network adapter on the 350-Internal network&lt;br /&gt;
&lt;br /&gt;
Xubuntu ISO, mounted in the CD ROM (again don&#039;t forget)&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Boot up the machine, set username to &amp;quot;Super&amp;quot; hostname to &amp;quot;mgmt1&amp;quot;, and Password to whatever you would like.&lt;br /&gt;
&lt;br /&gt;
3) After install, reboot the machine and right click on the network status icon in the top right, and select &amp;quot;network settings&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Configure the settings as follows:&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
STATIC:&lt;br /&gt;
&lt;br /&gt;
IP: 10.0.17.100&lt;br /&gt;
&lt;br /&gt;
Subnet: 255.255.255.0&lt;br /&gt;
&lt;br /&gt;
Gateway: 10.0.17.2&lt;br /&gt;
&lt;br /&gt;
DNS Server: 1.1.1.1&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally Install Chrome remote desktop for easy access, by downloading the Google Chrome .deb file, and installing with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;sudo dpkg -i &amp;quot;File Name&amp;quot;&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=90</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=90"/>
		<updated>2024-11-02T01:54:58Z</updated>

		<summary type="html">&lt;p&gt;T20A02: /* Virtualization */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;br /&gt;
&lt;br /&gt;
[[ESXI Settup]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=89</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=Main_Page&amp;diff=89"/>
		<updated>2024-11-02T01:53:50Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;strong&amp;gt;Welcome to the Goomba Cloud Wiki!.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This guide includes a culmination of projects written by yours truly, the site administrator! You will find anything from Proxmox stack configuration, all the way to software manual install guides (Including a guide to setting up this wiki) and much more!&lt;br /&gt;
&lt;br /&gt;
== Pages ==&lt;br /&gt;
&lt;br /&gt;
=== Reference ===&lt;br /&gt;
&lt;br /&gt;
[[Key Based SSH from Windows to Linux]]&lt;br /&gt;
&lt;br /&gt;
[[Windows 11 Enterprise .iso creation]]&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&lt;br /&gt;
[[Forgejo Install from Binary]]&lt;br /&gt;
&lt;br /&gt;
[[Vaultwarden Docker Container Setup]]&lt;br /&gt;
&lt;br /&gt;
[[Wireguard VPN Setup (Regular and Site to Site)]]&lt;br /&gt;
&lt;br /&gt;
[[Project Send Setup and Configuration]]&lt;br /&gt;
&lt;br /&gt;
=== Projects ===&lt;br /&gt;
&lt;br /&gt;
[[RPI CUPS server for mini print server]]&lt;br /&gt;
&lt;br /&gt;
[[Dell Optiplex NVME BIOS mod]]&lt;br /&gt;
&lt;br /&gt;
=== Virtualization ===&lt;br /&gt;
&lt;br /&gt;
[[Ceph &amp;amp; Proxmox installation]]&lt;br /&gt;
&lt;br /&gt;
[[vCenter Installation and SSO]]&lt;br /&gt;
&lt;br /&gt;
[[Adding Networks in PFSense]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox High Avilability (HA)]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox NFS Configuration]]&lt;br /&gt;
&lt;br /&gt;
[[Proxmox VM Passthrough]]&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=VCenter_Installation_and_SSO&amp;diff=88</id>
		<title>VCenter Installation and SSO</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=VCenter_Installation_and_SSO&amp;diff=88"/>
		<updated>2024-11-02T01:50:11Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== vCenter Installation ===&lt;br /&gt;
&lt;br /&gt;
==== vCenter Stage 1 ====&lt;br /&gt;
&lt;br /&gt;
vCenter is a powerfull tool, and is critical in its role of clustering ESXi hosts, from VMware into one group allowing central management, SSO, permissions control, backups, and migrations along with much more functionality from a single web portal.&lt;br /&gt;
&lt;br /&gt;
Before installing vCenter you will need to have your vCenter .iso file, or disk mounted to the system you use for management, on the same network as the device. Additionally you will want to make any DNS records you plan on using.&lt;br /&gt;
&lt;br /&gt;
1) First Verify connection, and resolution to your AD controller, by pining it by name, and IP to verify it is working properly.&lt;br /&gt;
&lt;br /&gt;
2) Now open the VSCA .iso directory, via cli, from your management device, and enter the /media/vsca-ui-installer/ directory, then move to the folder based on your guest OS. &lt;br /&gt;
&lt;br /&gt;
[[File:1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3) Now run the &amp;quot;Installer&amp;quot; file in that directory, to launch the Ui vCenter installer, where you will be greeted with this window.&lt;br /&gt;
&lt;br /&gt;
[[File:2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4) Click Install, Then next, Then accept the the EULA&lt;br /&gt;
&lt;br /&gt;
[[File:3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5) Once you reach the following page, enter the FQDN or IP of the ESXI server, then the login credentials for it, and click &amp;quot;Next&amp;quot;, and Accept the Certificate warning. This is warning the user that the ESXI host selected is using a self signed cert. This is not an issue in most environments, but should be addressed for large production environments. &lt;br /&gt;
&lt;br /&gt;
[[File:4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5) Once those settings are validated, and the ESXI system has been connected to the installer, then you must configure a VM name, and root password for the vCenter &amp;quot;Vm&amp;quot;, as it will act on the ESXI host. &lt;br /&gt;
&lt;br /&gt;
[[File:6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6) Next Pick the size of the deployment, this is entirely up to the size of the environment, and the resources available. Here I picked &amp;quot;Small&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:7.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7) Then you must pick the datastore, on the host esxi server, that will hold the vCenter VM&lt;br /&gt;
&lt;br /&gt;
[[File:8.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8) Finally configure the network settings to be used by the vCenter instance. Here I used a reserved address for the server, the gateway was my PFSense router IP, and the DNS server was my Domain Controller.&lt;br /&gt;
&lt;br /&gt;
[[File:9.png|600px]]&lt;br /&gt;
&lt;br /&gt;
9) Click next, to review your settings, and then finish to install vCenter, and complete Stage 1. This will take some time&lt;br /&gt;
&lt;br /&gt;
==== Stage 2, ESXI Configuration ====&lt;br /&gt;
&lt;br /&gt;
Now that the server has been provisioned we must complete setup.&lt;br /&gt;
&lt;br /&gt;
1) First we will be greeted by that original start page for the UI. Stage 2 will no longer be greyed out, and Stage one should have a green check indicating completion. Click Next&lt;br /&gt;
&lt;br /&gt;
[[File:10.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2) Configure the NTP server settings to be used for the vCenter server. I recommend configuring a server, and not using system time, to prevent desync issues between ESXI Host&#039;s, vCenter, and the AD Controller once SSO is enabled. I used pool.ntp.org&lt;br /&gt;
&lt;br /&gt;
3) Next use &amp;quot;Create a new SSO domain&amp;quot; for now to create a local domain, so that we can have multiple accounts, even if SSO stops working.&lt;br /&gt;
&lt;br /&gt;
[[File:11.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4) Finally decline the CEIP setup, and make sure to uncheck the CEIP box;&lt;br /&gt;
&lt;br /&gt;
[[File:12.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5) Finally Verify your settings, and hit finish, again this will take some time.&lt;br /&gt;
&lt;br /&gt;
==== Stage 3, Adding Licensing, and Hosts ====&lt;br /&gt;
&lt;br /&gt;
Here we now have a completed vCenter install, and we are going to add our ESXI host, and add our licensing information&lt;br /&gt;
&lt;br /&gt;
1) Connect the the vcenter server using the IP set in Stage 1, or a FQDN set on the AD server, and click Launch Vsphere Client.&lt;br /&gt;
&lt;br /&gt;
[[File:13.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2) Sign in with the &amp;quot;administrator@vsphere.local&amp;quot; account created in stage 2 of the vCenter installation. After that you will be greeted with the dashboard.&lt;br /&gt;
&lt;br /&gt;
[[File:14.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3) Now add your license by going to the 3 bars at the top left, Then click &amp;quot;administration&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:15.png|600px]]&lt;br /&gt;
&lt;br /&gt;
4) Now on the left, click &amp;quot;Licenses&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[[File:16.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5) Now click add, and enter each license key, one per line, then click next, set names, and then apply them.&lt;br /&gt;
&lt;br /&gt;
[[File:17.png|600px]]&lt;br /&gt;
&lt;br /&gt;
6) Finally go to the assets tab, and apply the vCenter license.&lt;br /&gt;
&lt;br /&gt;
7) Now we are going to add out host. To do this first we must go to our menu in the top left, then right click the vCenter domain, the New data center, and name it. Here i used SYS350&lt;br /&gt;
&lt;br /&gt;
[[File:18.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8) Once the data-center is created, now we will right click it and select &amp;quot;add Host&amp;quot;&lt;br /&gt;
&lt;br /&gt;
[[File:19.png|600px]]&lt;br /&gt;
&lt;br /&gt;
9) Now enter the IP or FQDN of the device. *Note: This IP/Name will dictate the name of the host in the inventory tab, and cannot be changed without orphaning and rejoining the host*&lt;br /&gt;
&lt;br /&gt;
[[File:20.png|600px]]&lt;br /&gt;
&lt;br /&gt;
10) Click next, and enter the login information for the host, and click next&lt;br /&gt;
&lt;br /&gt;
[[File:21.png|600px]]&lt;br /&gt;
&lt;br /&gt;
11) Now accept the Security alert, and click next, then next again for host settings.&lt;br /&gt;
&lt;br /&gt;
12) Then assign a ESXI License, and click Next&lt;br /&gt;
&lt;br /&gt;
13) Leave lock down disabled, then select your new cluster for the location, and then click Complete.\&lt;br /&gt;
&lt;br /&gt;
[[File:22.png|600px]]&lt;br /&gt;
&lt;br /&gt;
14) Now your host is joined to vCenter, and you should see it, and any VM&#039;s it was hosting on the left panel, under the data center. &lt;br /&gt;
&lt;br /&gt;
=== SSO Configuration ===&lt;br /&gt;
&lt;br /&gt;
Here we will connect our domain, to the vCenter server, to allow Domain admins to access the vCenter environment accordingly. &lt;br /&gt;
&lt;br /&gt;
1) First go to the menu at the top left again, and then click administration, then under &amp;quot;Single Sign On&amp;quot; select configuration&lt;br /&gt;
&lt;br /&gt;
[[File:23.png|600px]]&lt;br /&gt;
&lt;br /&gt;
2) Then select &amp;quot;Active Directory Domain&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[[File:24.png|600px]]&lt;br /&gt;
&lt;br /&gt;
3) Then click &amp;quot;join AD&amp;quot; and enter your domains information, including the credentials of a domain admin. once this in completed you must reboot vCenter&lt;br /&gt;
&lt;br /&gt;
4) To reboot vCenter, login to the vCenter management page via &amp;quot;https://domainname.local:5480&amp;quot; Then enter your administrator@vsphere.local credentials. After login you will be greeted with the vCenter dash panel&lt;br /&gt;
&lt;br /&gt;
[[File:25.png|600px]]&lt;br /&gt;
&lt;br /&gt;
5) Next at the top right, click &amp;quot;Actions&amp;quot; and then reboot. This will take some time, and this dash will recover before the main login will.&lt;br /&gt;
&lt;br /&gt;
6) After the reboot, login to the VSphere client page, not the dashboard, and go to the SSO Users and Groups page&lt;br /&gt;
&lt;br /&gt;
[[File:26.png|600px]]&lt;br /&gt;
&lt;br /&gt;
7) Now navigate to &amp;quot;Groups&amp;quot;, then click &amp;quot;Administrators&amp;quot; &lt;br /&gt;
&lt;br /&gt;
[[File:27.png|600px]]&lt;br /&gt;
&lt;br /&gt;
8) Now click &amp;quot;Add Members&amp;quot;, switch the domain to your newly joined domain, and search &amp;quot;Domain Admins&amp;quot; adding it to the box below. Then click Save.&lt;br /&gt;
&lt;br /&gt;
[[File:28.png|600px]]&lt;br /&gt;
&lt;br /&gt;
9) Finally to make the domain you selected the default choice, click on &amp;quot;Identity Sources&amp;quot; then your domain entry, and click &amp;quot;Set as Default&amp;quot;. This will make you only have to use the domain user&#039;s logon name, not the full domain string.&lt;br /&gt;
&lt;br /&gt;
[[File:29.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Now we are complete, you can logout of your administrator@vsphere.local user and log in using your domain admin account.&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=VCenter_Installation_and_SSO&amp;diff=87</id>
		<title>VCenter Installation and SSO</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=VCenter_Installation_and_SSO&amp;diff=87"/>
		<updated>2024-11-02T01:42:30Z</updated>

		<summary type="html">&lt;p&gt;T20A02: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== vCenter Installation ===&lt;br /&gt;
&lt;br /&gt;
==== vCenter Stage 1 ====&lt;br /&gt;
&lt;br /&gt;
vCenter is a powerfull tool, and is critical in its role of clustering ESXi hosts, from VMware into one group allowing central management, SSO, permissions control, backups, and migrations along with much more functionality from a single web portal.&lt;br /&gt;
&lt;br /&gt;
Before installing vCenter you will need to have your vCenter .iso file, or disk mounted to the system you use for management, on the same network as the device. Additionally you will want to make any DNS records you plan on using.&lt;br /&gt;
&lt;br /&gt;
1) First Verify connection, and resolution to your AD controller, by pining it by name, and IP to verify it is working properly.&lt;br /&gt;
&lt;br /&gt;
2) Now open the VSCA .iso directory, via cli, from your management device, and enter the /media/vsca-ui-installer/ directory, then move to the folder based on your guest OS. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
3) Now run the &amp;quot;Installer&amp;quot; file in that directory, to launch the Ui vCenter installer, where you will be greeted with this window.&lt;br /&gt;
&lt;br /&gt;
[[:File:1.png]]&lt;br /&gt;
&lt;br /&gt;
4) Click Install, Then next, Then accept the the EULA&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/2884ebbb-899a-404e-95f0-0cc0afecfd82)&lt;br /&gt;
&lt;br /&gt;
5) Once you reach the following page, enter the FQDN or IP of the ESXI server, then the login credentials for it, and click &amp;quot;Next&amp;quot;, and Accept the Certificate warning. This is warning the user that the ESXI host selected is using a self signed cert. This is not an issue in most environments, but should be addressed for large production environments. &lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/03431db8-39f0-4406-aa8f-295d688a2f38)&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/b33629a6-42fd-451c-9ca3-251ae30d42fe)&lt;br /&gt;
&lt;br /&gt;
5) Once those settings are validated, and the ESXI system has been connected to the installer, then you must configure a VM name, and root password for the vCenter &amp;quot;Vm&amp;quot;, as it will act on the ESXI host. &lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/7d3e661e-d189-4052-8923-962ed08802f8)&lt;br /&gt;
&lt;br /&gt;
6) Next Pick the size of the deployment, this is entirely up to the size of the environment, and the resources available. Here I picked &amp;quot;Small&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/608d7500-501c-4ac7-9079-0de924e01888)&lt;br /&gt;
&lt;br /&gt;
7) Then you must pick the datastore, on the host esxi server, that will hold the vCenter VM&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/0f91bc22-1f33-40ff-a226-16a1976628fc)&lt;br /&gt;
&lt;br /&gt;
8) Finally configure the network settings to be used by the vCenter instance. Here I used a reserved address for the server, the gateway was my PFSense router IP, and the DNS server was my Domain Controller.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/85dbb624-1449-4244-ab62-d7f5288ba7f2)&lt;br /&gt;
&lt;br /&gt;
9) Click next, to review your settings, and then finish to install vCenter, and complete Stage 1. This will take some time&lt;br /&gt;
&lt;br /&gt;
==== Stage 2, ESXI Configuration ====&lt;br /&gt;
&lt;br /&gt;
Now that the server has been provisioned we must complete setup.&lt;br /&gt;
&lt;br /&gt;
1) First we will be greeted by that original start page for the UI. Stage 2 will no longer be greyed out, and Stage one should have a green check indicating completion. Click Next&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/b70056e1-c2bb-4168-aab6-f1c5b0355adf)&lt;br /&gt;
&lt;br /&gt;
2) Configure the NTP server settings to be used for the vCenter server. I recommend configuring a server, and not using system time, to prevent desync issues between ESXI Host&#039;s, vCenter, and the AD Controller once SSO is enabled. I used pool.ntp.org&lt;br /&gt;
&lt;br /&gt;
3) Next use &amp;quot;Create a new SSO domain&amp;quot; for now to create a local domain, so that we can have multiple accounts, even if SSO stops working.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/c80d9d99-a89a-4381-9d50-5651e0914934)&lt;br /&gt;
&lt;br /&gt;
4) Finally decline the CEIP setup, and make sure to uncheck the CEIP box;&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/630ae572-da5a-4552-aaca-f23d32c50e79)&lt;br /&gt;
&lt;br /&gt;
5) Finally Verify your settings, and hit finish, again this will take some time.&lt;br /&gt;
&lt;br /&gt;
==== Stage 3, Adding Licensing, and Hosts ====&lt;br /&gt;
&lt;br /&gt;
Here we now have a completed vCenter install, and we are going to add our ESXI host, and add our licensing information&lt;br /&gt;
&lt;br /&gt;
1) Connect the the vcenter server using the IP set in Stage 1, or a FQDN set on the AD server, and click Launch Vsphere Client.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/1e765081-030d-4d26-a7bb-34d56c0b20d8)&lt;br /&gt;
&lt;br /&gt;
2) Sign in with the &amp;quot;administrator@vsphere.local&amp;quot; account created in stage 2 of the vCenter installation. After that you will be greeted with the dashboard.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/3291bc04-fd1c-4c29-ba5d-3540e7de12c1)&lt;br /&gt;
&lt;br /&gt;
3) Now add your license by going to the 3 bars at the top left, Then click &amp;quot;administration&amp;quot;&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/4f664eb0-8fae-4f01-b6d7-b331301acd33)&lt;br /&gt;
&lt;br /&gt;
4) Now on the left, click &amp;quot;Licenses&amp;quot; &lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/c48cd0a8-9921-46a5-8ef9-3d5138e8e9fa)&lt;br /&gt;
&lt;br /&gt;
5) Now click add, and enter each license key, one per line, then click next, set names, and then apply them.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/8aef5039-25ac-4b08-81b7-711f69187638)&lt;br /&gt;
&lt;br /&gt;
6) Finally go to the assets tab, and apply the vCenter license.&lt;br /&gt;
&lt;br /&gt;
7) Now we are going to add out host. To do this first we must go to our menu in the top left, then right click the vCenter domain, the New data center, and name it. Here i used SYS350&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/5d1823d8-3185-4f80-a351-0224b2cfc463)&lt;br /&gt;
&lt;br /&gt;
8) Once the data-center is created, now we will right click it and select &amp;quot;add Host&amp;quot;&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/4224fef8-744d-4937-b057-ae8730bccc98)&lt;br /&gt;
&lt;br /&gt;
9) Now enter the IP or FQDN of the device. *Note: This IP/Name will dictate the name of the host in the inventory tab, and cannot be changed without orphaning and rejoining the host*&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/fe5f3021-45b4-4897-9d94-790fa72bab9e)&lt;br /&gt;
&lt;br /&gt;
10) Click next, and enter the login information for the host, and click next&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/415050eb-5882-462f-8709-9c6294a65d72)&lt;br /&gt;
&lt;br /&gt;
11) Now accept the Security alert, and click next, then next again for host settings.&lt;br /&gt;
&lt;br /&gt;
12) Then assign a ESXI License, and click Next&lt;br /&gt;
&lt;br /&gt;
13) Leave lock down disabled, then select your new cluster for the location, and then click Complete.\&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/4208cec0-2c75-430e-8991-71ef11bfd940)&lt;br /&gt;
&lt;br /&gt;
14) Now your host is joined to vCenter, and you should see it, and any VM&#039;s it was hosting on the left panel, under the data center. &lt;br /&gt;
&lt;br /&gt;
=== SSO Configuration ===&lt;br /&gt;
&lt;br /&gt;
Here we will connect our domain, to the vCenter server, to allow Domain admins to access the vCenter environment accordingly. &lt;br /&gt;
&lt;br /&gt;
1) First go to the menu at the top left again, and then click administration, then under &amp;quot;Single Sign On&amp;quot; select configuration&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/91c6c59c-f4f7-490a-9d14-5959ef7a59d2)&lt;br /&gt;
&lt;br /&gt;
2) Then select &amp;quot;Active Directory Domain&amp;quot; &lt;br /&gt;
&lt;br /&gt;
![ima![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/65ba7513-99a9-43c9-9382-7d997a49eaba)&lt;br /&gt;
&lt;br /&gt;
3) Then click &amp;quot;join AD&amp;quot; and enter your domains information, including the credentials of a domain admin. once this in completed you must reboot vCenter&lt;br /&gt;
&lt;br /&gt;
4) To reboot vCenter, login to the vCenter management page via &amp;quot;https://domainname.local:5480&amp;quot; Then enter your administrator@vsphere.local credentials. After login you will be greeted with the vCenter dash panel&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/3c5ef6b7-36f9-4ee7-9213-924d4a2ab914)&lt;br /&gt;
&lt;br /&gt;
5) Next at the top right, click &amp;quot;Actions&amp;quot; and then reboot. This will take some time, and this dash will recover before the main login will.&lt;br /&gt;
&lt;br /&gt;
6) After the reboot, login to the VSphere client page, not the dashboard, and go to the SSO Users and Groups page&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/ab7a5c70-c996-412d-94ce-73a745973257)&lt;br /&gt;
&lt;br /&gt;
7) Now navigate to &amp;quot;Groups&amp;quot;, then click &amp;quot;Administrators&amp;quot; &lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/be989d25-e5d7-41e0-bede-7f18326059fb)&lt;br /&gt;
&lt;br /&gt;
8) Now click &amp;quot;Add Members&amp;quot;, switch the domain to your newly joined domain, and search &amp;quot;Domain Admins&amp;quot; adding it to the box below. Then click Save.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/e66b53d2-cde2-45c6-bf47-110d459d1167)&lt;br /&gt;
&lt;br /&gt;
9) Finally to make the domain you selected the default choice, click on &amp;quot;Identity Sources&amp;quot; then your domain entry, and click &amp;quot;Set as Default&amp;quot;. This will make you only have to use the domain user&#039;s logon name, not the full domain string.&lt;br /&gt;
&lt;br /&gt;
![image](https://github.com/T20A026/SYS-350-Enterprise-Virtualization/assets/70958837/ffc208e2-dcab-4937-8878-bd0bc212df3f)&lt;br /&gt;
&lt;br /&gt;
Now we are complete, you can logout of your administrator@vsphere.local user and log in using your domain admin account.&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:29.png&amp;diff=86</id>
		<title>File:29.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:29.png&amp;diff=86"/>
		<updated>2024-11-02T01:41:18Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:28.png&amp;diff=85</id>
		<title>File:28.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:28.png&amp;diff=85"/>
		<updated>2024-11-02T01:41:17Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:27.png&amp;diff=84</id>
		<title>File:27.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:27.png&amp;diff=84"/>
		<updated>2024-11-02T01:41:17Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:26.png&amp;diff=83</id>
		<title>File:26.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:26.png&amp;diff=83"/>
		<updated>2024-11-02T01:41:17Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:25.png&amp;diff=82</id>
		<title>File:25.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:25.png&amp;diff=82"/>
		<updated>2024-11-02T01:41:17Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:24.png&amp;diff=81</id>
		<title>File:24.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:24.png&amp;diff=81"/>
		<updated>2024-11-02T01:41:16Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:23.png&amp;diff=80</id>
		<title>File:23.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:23.png&amp;diff=80"/>
		<updated>2024-11-02T01:41:16Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:22.png&amp;diff=79</id>
		<title>File:22.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:22.png&amp;diff=79"/>
		<updated>2024-11-02T01:41:16Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:21.png&amp;diff=78</id>
		<title>File:21.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:21.png&amp;diff=78"/>
		<updated>2024-11-02T01:41:15Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:20.png&amp;diff=77</id>
		<title>File:20.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:20.png&amp;diff=77"/>
		<updated>2024-11-02T01:41:15Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:19.png&amp;diff=76</id>
		<title>File:19.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:19.png&amp;diff=76"/>
		<updated>2024-11-02T01:41:15Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:18.png&amp;diff=75</id>
		<title>File:18.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:18.png&amp;diff=75"/>
		<updated>2024-11-02T01:41:15Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:17.png&amp;diff=74</id>
		<title>File:17.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:17.png&amp;diff=74"/>
		<updated>2024-11-02T01:41:14Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:16.png&amp;diff=73</id>
		<title>File:16.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:16.png&amp;diff=73"/>
		<updated>2024-11-02T01:41:14Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:15.png&amp;diff=72</id>
		<title>File:15.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:15.png&amp;diff=72"/>
		<updated>2024-11-02T01:41:14Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:14.png&amp;diff=71</id>
		<title>File:14.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:14.png&amp;diff=71"/>
		<updated>2024-11-02T01:41:14Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:13.png&amp;diff=70</id>
		<title>File:13.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:13.png&amp;diff=70"/>
		<updated>2024-11-02T01:41:13Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:12.png&amp;diff=69</id>
		<title>File:12.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:12.png&amp;diff=69"/>
		<updated>2024-11-02T01:41:13Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:11.png&amp;diff=68</id>
		<title>File:11.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:11.png&amp;diff=68"/>
		<updated>2024-11-02T01:41:13Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:10.png&amp;diff=67</id>
		<title>File:10.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:10.png&amp;diff=67"/>
		<updated>2024-11-02T01:41:12Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
	<entry>
		<id>https://wiki.thibble.org/goomba/index.php?title=File:9.png&amp;diff=66</id>
		<title>File:9.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.thibble.org/goomba/index.php?title=File:9.png&amp;diff=66"/>
		<updated>2024-11-02T01:41:12Z</updated>

		<summary type="html">&lt;p&gt;T20A02: File uploaded with MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;File uploaded with MsUpload&lt;/div&gt;</summary>
		<author><name>T20A02</name></author>
	</entry>
</feed>