Proxmox Backup Server - Setup

Proxmox Backup Server (PBS)#


1 Installation & Post-Install#

1.1 Post-Install Optimization#

Run this script to configure repositories and optimize settings:

bash -c "$(wget -qLO - [https://github.com/community-scripts/ProxmoxVE/raw/main/misc/post-pbs-install.sh](https://github.com/community-scripts/ProxmoxVE/raw/main/misc/post-pbs-install.sh))"

1.2 Install File Browser#

bash -c "$(wget -qLO - [https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh](https://github.com/tteck/Proxmox/raw/main/misc/filebrowser.sh))"

2 Setup VM with SMB Datastore#

2.1 Create Mount Directory#

mkdir /mnt/HP1ProxmoxBackupServer

2.2 Configure Credentials#

nano /etc/samba/.smbcreds

File Content:

username=proxmox
password=private

2.3 Set Permissions#

Change permission to Read-Only by root:

chmod 400 /etc/samba/.smbcreds

2.4 Manual Mount Test#

mount -t cifs -o rw,vers=3.0,credentials=/etc/samba/.smbcreds,uid=34,gid=34 //10.1.1.225/HP1ProxmoxBackupServer /mnt/HP1ProxmoxBackupServer

2.5 Permanent Mount (fstab)#

nano /etc/fstab

Add line:

ser2net Zigbee USB Server

ser2net Zigbee USB Server Configuration#

This setup allows you to host a Zigbee USB dongle on one machine (e.g., MMDocker/Proxmox 230) and connect to it over the network from Home Assistant.


1. Installation#

Reference: Peter Kieser - ser2net and Zigbee Coordinator

# Install the software
apt-get update && apt-get install ser2net -y
# Verify version and status
ser2net -v
systemctl status ser2net

2. Identify USB Hardware#

# Locate the specific device ID (stable path)
ls -lah /dev/serial/by-id/
# Get detailed info for the specific port (if needed)
udevadm info -q all -a -n /dev/ttyUSB0
# SkyConnect
ls /dev/serial/by-id/usb-Nabu_Casa_SkyConnect_v1.0*

3. Configuration (Version 4.0+)#

Modern versions of ser2net use YAML configuration files.

Syncthing Installation & Configuration (TrueNAS & Synology)

Syncthing Installation & Configuration Guide#


1. #truenas TrueNAS Scale Installation#

Increase Inotify Limit#

For real-time file watching on large datasets, increase the inotify limit in the TrueNAS backend.

  1. Go to System Settings > Advanced > Sysctl.
  2. Add New Sysctl:
    • Variable: fs.inotify.max_user_watches
    • Value: 524288
    • Description: Increase inotify limit for Syncthing.
  3. Verify persistence via Shell:
cat /proc/sys/fs/inotify/max_user_watches

App Deployment#

  1. Apps > Settings > Advanced: Disable “Host Path Safety Check” (if using existing datasets).
  2. Catalog: Search for and install the Syncthing Enterprise version.
  3. Storage Configuration:
    • Type: Host Path
    • Host Path: /mnt/HP1-4TBSSD-Raid0/HP1Storage (or your specific data path).
    • Mount Path: HP1Storage
  4. Access: Open the Web UI at http://[IP]:31000. Set an Admin password immediately.

2. Synology DSM Installation (via Docker)#

Increase Inotify Limit#

  1. Connect via SSH and run:
echo "fs.inotify.max_user_watches=204800" | sudo tee -a /etc/sysctl.d/90-override.conf
echo 204800 | sudo tee /proc/sys/fs/inotify/max_user_watches

Identify User IDs (PUID/PGID)#

To avoid permission issues, run the container as your specific user.

Tailscale Installation & Subnet Routing

Tailscale Installation & Subnet Routing Guide#


1. Proxmox LXC Container Preparation#

If you are installing Tailscale inside an LXC container, you must allow TUN device access from the Proxmox host.

Modify Container Config#

On the Proxmox host, edit the configuration file for the specific container (e.g., ID 119):

nano /etc/pve/lxc/119.conf

Add these lines to the bottom:

lxc.cgroup2.devices.allow: c 10:200 rwm
lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file

Reboot the container:

pct reboot 119

2. Installation by OS#

Debian 12 (Bookworm)#

curl -fsSL [https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg](https://pkgs.tailscale.com/stable/debian/bookworm.noarmor.gpg) | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL [https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list](https://pkgs.tailscale.com/stable/debian/bookworm.tailscale-keyring.list) | sudo tee /etc/apt/sources.list.d/tailscale.list
apt update && apt install tailscale -y

Ubuntu 24.04 (Noble)#

curl -fsSL [https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg](https://pkgs.tailscale.com/stable/ubuntu/noble.noarmor.gpg) | sudo tee /usr/share/keyrings/tailscale-archive-keyring.gpg >/dev/null
curl -fsSL [https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list](https://pkgs.tailscale.com/stable/ubuntu/noble.tailscale-keyring.list) | sudo tee /etc/apt/sources.list.d/tailscale.list
apt update && apt install tailscale -y

Ubiquiti UDM-SE#

# Install the latest version of Tailscale UDM
curl -sSLq https://raw.github.com/SierraSoftworks/tailscale-udm/main/install.sh | sh

3. Subnet Router & Exit Node Setup#

Enable IP Forwarding#

This is required if you want this node to act as a bridge to your local network.

To do

To do list#


1. Updates#

  • Kuma 2
  • Update Pangolin et Immich
  • Seer vs Overseer

2. Audi#

  • door bug
  • Pneus hivers Nadine

3. AI#

  • Proxmox MCP server

4. Obsidian#

  • Hugo website
    • Cronjobs
    • Misplaced new note alphabetically
    • iPhone offline test
  • Paperless - change gmail password in .env and add 1Password

5. Lab#

  • Fresh rss Lawrence system
  • Netbird
  • Joplin rmarkdown notes
  • Rustdesk
  • Seerr

TrueNAS Administration Guide

TrueNAS Administration Guide#

The complete UNAS-Pro backup architecture, schedules, TrueNAS node configuration, and recovery procedures are documented in Unifi UNAS-Pro Backup Strategy.


1. TrueNAS Scale: Initial Setup & Security#

Virtual Machine Configuration (Proxmox)#

  • Initial Setup: Create the VM. Add a second virtual disk (10GB) for apps and home directories.
  • Post-Login: Verify the Time Zone is accurate.
  • Duplicate Serial Error: If Proxmox reports Disks have duplicate serial numbers, add serials manually in the PVE host:
    nano /etc/pve/qemu-server/212.conf
    # Add serial strings:
    scsi0: Storage:vm-212-disk-0,discard=on,size=32G,ssd=1,serial=PROX-001
    scsi1: Storage:vm-212-disk-1,discard=on,size=1G,ssd=1,serial=PROX-002

Datasets & Users#

  1. Datasets: Create HP3-10Gb-Apps-HomeDirs. Add sub-datasets Apps (Type: Apps) and HomeDirs (Type: Generic).
  2. Standard User: Create user marc for SMB shares.
  3. Sync User: Create backupuser. Set a home directory, uncheck Samba authentication, and do not set a password.
  4. Admin Hardening: - Create user marcoue with full admin rights.
    • Upload SSH keys and enable 2FA for marcoue.
    • Disable the default truenas_admin account once verified.

SSH Hardening#

sudo nano /etc/ssh/sshd_config
# Modify/Add:
PermitRootLogin prohibit-password
PubkeyAuthentication yes

sudo systemctl restart sshd
  • Services: Go to System > Services > SSH and disable “Allow Password Authentication.”

2. System & Networking Optimization#

Startup Scripts & Cron#

  • Cron Shutdown: (System Settings > Advanced)
    • Command: /sbin/shutdown -h now
  • Init Scripts: (Post Init)
    • Command: iperf3 -s -d
  • Session Timeout: (Access > Configure) Set to 2147482.

Host Identification & Email#

  • Hostname/NetBIOS: Set to HP2TrueNAS.
  • Gmail OAuth/SMTP: - Use OAuth login if available.
    • SMTP: smtp.gmail.com | Port: 25 or 587.
    • Use an App Password from 1Password.

3. Data Protection & Replication#

Periodic Snapshots (Source)#

  • Path: Data Protection > Periodic Snapshot Tasks.
  • Settings: Uncheck “Recursive” (unless needed). Uncheck “Taking Empty Snapshot.”
  • Schedule: Daily at 08:30, retention 7 days.

Replication Task (Remote Server Pull)#

  1. Source: Different System.
  2. Connection: New SSH (Semi-Auto).
  3. Settings: Admin: marcoue, User: backupuser. Enable passwordless sudo.
  4. ZFS Commands: Check “Use Sudo for ZFS Commands.”
  5. Schedule: Every hour at 08:45.

4. Syncthing Deployment#

TrueNAS Scale Implementation#

  1. System Settings > Advanced > Sysctl:
    • Var: fs.inotify.max_user_watches | Value: 524288.
  2. Apps > Advanced: Disable “Host Path Safety Check.”
  3. App Setup: Install Enterprise Version. Use Host Path for storage (e.g., /mnt/HP1-4TBSSD-Raid0/HP1Storage).

5. Hardware-Specific Configurations#

Mac Pro Auto-Restart (After Power Outage)#

cd /sys/bus/pci/devices/0000:00:1f.0
sudo chmod -R 777 config
setpci -s 0:1f.0 0xa4.b=0

Wake-on-LAN (WOL) Persistence#

Create a systemd service to ensure WOL stays active:

UniFi UDM Device SSH Configuration

UniFi Device SSH Configuration#

This guide covers hardening and configuring SSH access for UniFi consoles (UDM-SE, UNVR, UNAS-Pro) and management of secondary devices like Switches and Access Points.


1. Console Configuration (UDM-SE, UNVR, UNAS-Pro)#

SSH Key Setup#

  1. Edit the authorized keys file to add your public keys:
nano .ssh/authorized_keys
# Restart the service
systemctl restart sshd

Install Tailscale#

For complete subnet advertising (10.1.0.0/16), exit node setup, and route approval guidelines, see the Tailscale Guide.

UPS Tools (NUT Server & Client)

UPS Tools (Network UPS Tools) Setup Guide#

This guide covers the installation of a NUT Server on a central VM (230) and the configuration of NUT Clients (Proxmox nodes) to ensure graceful shutdowns across your infrastructure.


1. NUT Server Installation (VM 230)#

1.1. Prerequisites & Software#

# Verify USB visibility (Ensure USB passthrough is configured in Proxmox)
lsusb

# Install NUT suite
apt update && apt install nut nut-client nut-server -y

1.2. Ubuntu 24.04 (NUT 2.8.1) Library Fix#

If USB scanning fails on Ubuntu 24.04, create the following symlinks:

Wake-on-LAN (WOL) Configuration & Inventory

Wake-on-LAN (WOL) Configuration & Inventory#

This guide covers how to enable, persist, and verify Wake-on-LAN (WOL) across Linux nodes and Proxmox hosts, followed by a comprehensive MAC address inventory for the local and remote clusters.


1. Verification & Manual Activation#

Check WOL Support#

Use ethtool to check if your network interface supports the “Magic Packet” (designated by the letter g).

# Replace eno5 with your actual interface name
ethtool eno5 | grep Wake-on

Output Interpretation: