Post

Proxmox

Proxmox

This is an opinionated proxmox guide with how I personally setup Proxmox.

Requirements

What you will need.

  • 2 computers, one for Proxmox and anohter to ssh into Proxmox and setup the website GUI.

  • USB stick or external drive to install and boot the Proxmox installation from.

  • Hardware that meets the System Requirements for running Promxox

 

Promxox Installation

Download the latest Proxmox ISO which when this guide was made was V.9.0-1.

Then download Rufus which we will use to install Proxmox to an external USB or drive.


 

Install Proxmox ISO to an USB

Open Rufus

Click on “SELECT” and open the downloaded Proxmox ISO file

alt text

 

Rufus should automatically detect DD (byte-for-byte) mode as it’s a requirement for the Proxmox ISO file to work and foce select it.

alt text

 

If you don’t see this pop-up don’t worry. You should be asked instead when clicking on “START” and then select DD mode in that case.

alt text

 

Detach the USB and boot the computer from the USB drive.

Follow below image or go to https://pve.proxmox.com/wiki/Installation for a more thorogh walkthough of the setup options.

alt text

alt text

 

Select the drive where Proxmox should be installed on. We’ll leave the rest as default.

alt text

 

Proxmox network setup

If the computer is connected to a network with DHCP if will give itself an IP.

Note that this will be set statically so if the IP get’s reserverd by anohter computer in the future, proxmox will fail to get an IP address. So reserve the IP assiged to proxmox on your router so you won’t get any conflicts in the future.

[Optional] Using Tailcale in FQDN

If you will be using Tailscale you can use your Tailnet DNS name. What is Tailscale?

For example, mine is spotted-universe.ts.net and I want this proxmox machine to be named Proxmox-guide.

alt text

 

So I’ll use proxmox-guide.spotted-universe.ts.net

If you also want to use Tailscale, sign up for tailscale and once in, go to the DNS section.

https://login.tailscale.com/admin/dns

We will install Tailscale inside of Proxmox later on in this guide.

 

Use an invalid FQDN if not using Tailscale

You can use any of the below options.

1
2
3
.invalid
.test
.example

 

.localhost has also been reserved but should be avoided. .local has not been reserved but is widely used for such scenarios,

I personally would prefer [replace-with-proxmox-name].invalid if I didn’t use tailscale.

alt text

alt text

 

Once it has rebooted you should see this screen.

Now go to the URL displayed in a web browser.

alt text

 

Sign in with the username root and the password set during the setup.

Set the Realm to Linux PAM standard authentication.

alt text

 

 

Modify repositories

By default Proxmox is set to use enterprise repositories to retrive updates.

We’ll change this to use the No-Subscription Repository instead as we won’t be paying for Proxmox.

First navigate to the repositories section in Proxmox

alt text

 

Disable the Repositories with enterprise in the Components field. Proxmox will warn that there isn’t any Proxmox Repository available for it to update from.

alt text

 

SSH

SSH into the proxmox machine (I personally use Termius)

The username will be the same root and the password used on the website.

 

Proxmox Repositories

Once inside, copy the No-Subscription Repository text into /etc/apt/sources.list.d/proxmox.sources

The latest Proxmox Repositories can be found here https://pve.proxmox.com/wiki/Package_Repositories.

alt text

 

1
nano /etc/apt/sources.list.d/proxmox.sources

All all below to the file

1
2
3
4
5
Types: deb
URIs: http://download.proxmox.com/debian/pve
Suites: trixie
Components: pve-no-subscription
Signed-By: /usr/share/keyrings/proxmox-archive-keyring.gpg

The proxmox.sources file should look like this.

alt text

Save with Ctrl + o, Enter and then close it with Ctrl x

 

Debian Repositories

Now go to /etc/apt/sources.list

1
nano /etc/apt/sources.list

Paste in below

1
2
3
4
5
6
7
8
9
10
deb http://ftp.se.debian.org/debian trixie main contrib

deb http://ftp.se.debian.org/debian trixie-updates main contrib

# security updates
deb http://security.debian.org trixie-security main contrib

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve trixie pve-no-subscription

It should look like this.

alt text

Save with Ctrl + o, Enter and then close it with Ctrl x

 

Update Proxmox

Now go back to the web GUI and refresh the website.

The red error should now change to a yellow warning.

alt text

 

Go to Updates and click Refresh

alt text

 

Click OK on the No Valid subscription

alt text

 

Once you see TASK OK close the window.

alt text

 

Type in Y and press Enter to start the updates

alt text

 

[Optional] Remove the “No vaild subscription pop-up

SSH into the Proxmox machine again.

[Option 1] use an script to remove the pop-up

Use eihter wget or Git to download the script to Proxmox

Download the script with wget

1
2
3
4
5
6
wget https://raw.githubusercontent.com/foundObjects/pve-nag-buster/master/install.sh

# Always read scripts downloaded from the internet before running them with sudo
bash install.sh

# or ..

Download the script with Git

1
2
3
4
git clone https://github.com/foundObjects/pve-nag-buster.git

# Always read scripts downloaded from the internet before running them with sudo
cd pve-nag-buster && sudo ./install.sh

Uninstall

Here’s how to uninstall the scrip and re-add the subscription pop-up.

1
2
sudo ./install.sh --uninstall
# remove /etc/apt/sources.list.d/pve-no-subscription.list if desired

 

[Option 2] Manually remove the pop-up

1
cd /usr/share/javascript/proxmox-widget-toolkit/
1
cp proxmoxlib.js proxmoxlib.js.bak
1
nano proxmoxlib.js

 

Use Ctrl + w then search for = ‘active’

We just need to change !== to ==

from res.data.status.toLowerCase() !== ‘active’

to -> res.data.status.toLowerCase() == ‘active’

 

To save, use Ctrl + o then Enter and finally Ctrl + x

Now we need to restart the Proxmox service.

1
systemctl restart pveproxy.service

 

Refresh browser with Shift + F5 and the prompts should be gone.

If you want to revert our change you can use below command.

1
mv /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js.bak /usr/share/javascript/proxmox-widget-toolkit/proxmoxlib.js

 

[Optional] Install Tailscale

1
2
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/lunar.noarmor.gpg | tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/lunar.tailscale-keyring.list | tee /etc/apt/sources.list.d/tailscale.list

We’ll setup a systemd service to point the port 8006 so we won’t need to add the port to the proxmox DNS name in the browser.

1
2
apt-get update
apt-get install tailscale -y

Create Auth Key - https://login.tailscale.com/admin/settings/keys

Select Generate auth key…

Enable Pre-approved and click Generate key Copy the key and replace TSKEYHERE in the command below.

1
tailscale up --authkey=TSKEYHERE --advertise-exit-node

Example of how the command should look like but use your generated tailscale key

1
tailscale up --authkey=tskey-auth-kV6T4GOx7BK1CNTRL-fpMLSnx3wm845uQEszvxm8FJmT3dJokQ --advertise-exit-node

Now we access proxmox from any device that has Tailscale with the ip or dns name and port.

However we can do it better.

We’ll add tailscale own certificate and auto serve the website from the port. runt bordUtdragbart bord Create tailscale.service file as below

1
nano /etc/systemd/system/tailscale.service

Add below in the file

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Tailscale Service
After=network.target

[Service]
ExecStart=/usr/bin/tailscale serve https+insecure://localhost:8006
Restart=always
RestartSec=3

[Install]
WantedBy=multi-user.target
1
systemctl daemon-reload
1
systemctl enable tailscale.service
1
systemctl start tailscale.service

Now you can access Proxmox with valid certificate without having to add the port at the end with the tailscale DNS name.

So for me I can access Proxmox from https://proxmox-guide.spotted-universe.ts.net

More information here: https://tailscale.com/kb/1017/install


alt text

This post is licensed under CC BY 4.0 by the author.