Den här guiden visar hur du sätter upp en Proxmox LXC-container för Docker och homelab-tjänster.

Guiden innehåller:

  • grundläggande systeminstallation
  • användare och säkerhet
  • Docker installation
  • automatiska uppdateringar
  • GPU passthrough
  • backup med Proxmox Backup Server
  • time-based mover för lagring

Förutsättningar

  • Proxmox installerat
  • En Debian/Ubuntu LXC container
  • Root-access till containern
  • SSH tillgängligt

1. Logga in i din LXC

På din Proxmox-host:

pct enter <VMID>

2. Installera sudo

apt-get install sudo

3. Skapa en användare

Skapa en ny användare som ska hantera systemet istället för root.

adduser <user>

Ge användaren sudo-rättigheter:

usermod -aG sudo <user>

4. Testa SSH-inloggning

Verifiera att användaren fungerar via SSH:

ssh toastern@<LXC-IP>

5. Stäng av login-meddelanden

Detta döljer standardmeddelanden vid login.

touch $HOME/.hushlogin

6. Lägg till en login-banner

sudo nano /etc/banner

Lägg till följande text:

 __          __     _____  _   _ _____ _   _  _____ _
 \ \        / /\   |  __ \| \ | |_   _| \ | |/ ____| |
  \ \  /\  / /  \  | |__) |  \| | | | |  \| | |  __| |
   \ \/  \/ / /\ \ |  _  /| . ` | | | | . ` | | |_ | |
    \  /\  / ____ \| | \ \| |\  |_| |_| |\  | |__| |_|
     \/  \/_/    \_\_|  \_\_| \_|_____|_| \_|\_____(_)

Authorized access only!

If you are not authorized to access or use this system, disconnect now!

7. Uppdatera systemet

sudo apt-get update
sudo apt-get upgrade -y

8. Installera grundläggande verktyg

Installera wget:

sudo apt-get install wget -y

Installera rsync:

sudo apt-get install rsync -y

9. Installera ZSH och Oh-My-Zsh

Installera paket:

sudo apt-get install zsh git curl -y

Installera Oh-My-Zsh:

sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

10. Ställ in korrekt tidszon

sudo timedatectl set-timezone Europe/Stockholm

Verifiera:

date

11. Aktivera NTP-synkronisering

Installera:

sudo apt install systemd-timesyncd

Aktivera NTP:

sudo timedatectl set-ntp true

12. Installera Docker

Installera dependencies:

sudo apt install -y ca-certificates curl gnupg lsb-release

Lägg till Docker GPG-nyckel:

sudo mkdir -p /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/debian/gpg \
| sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

Lägg till Docker repository:

echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" \
| sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

Installera Docker:

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Starta Docker automatiskt:

sudo systemctl enable --now docker

13. Skapa Docker-nätverk

sudo docker network create \
  --driver=bridge \
  --subnet=172.28.0.0/24 \
  --gateway=172.28.0.1 \
  docker

14. Installera Pullio

sudo curl -fsSL https://raw.githubusercontent.com/hotio/pullio/master/pullio.sh \
-o /usr/local/bin/pullio
sudo chmod +x /usr/local/bin/pullio

15. Installera Sysinfo

sudo curl -fsSL https://raw.githubusercontent.com/hotio/sysinfo.sh/master/sysinfo.sh \
-o /usr/local/bin/sysinfo
sudo chmod +x /usr/local/bin/sysinfo

16. Automatiska uppdateringar via Cron

Skapa ett update script (update.sh):

#!/bin/bash
sudo apt update -y && sudo apt full-upgrade -y && sudo apt autoremove -y && sudo apt clean -y && sudo apt autoclean -y

Skapa ett Pullio script (pullio.sh):
- Se till att ha "pullio.log" skapad annars kommer scriptet inte att köras.

#!/bin/bash
sudo /usr/local/bin/pullio > /home/<user>/docker/pullio/pullio.log 2>&1

Öppna crontab:

sudo crontab -e

Lägg till:

# Uppdatera systemet
00 4 * * * /home/<user>/docker/env/update.sh

# Uppdatera containers
00 4 * * * /home/<user>/docker/env/pullio.sh

Här utgår vi med att vi placerat båda scripten i env foldern ovan.


17. Hardlinks (Media LXC)

Sätt rättigheter på mediafolder:

sudo chown -R 1000:1000 /mnt/media
sudo chmod -R u+rwX,g+rwX /mnt/media

18. Docker permissions

Stoppa containers först:

cd /home/<user>/docker
sudo docker compose down

Ändra rättigheter:

sudo chmod 775 -R /home/<user>/docker
sudo chown <user>:<user> -R /home/<user>/docker

19. GPU passthrough (Proxmox Host)

Redigera LXC config:

nano /etc/pve/lxc/<LXC-ID>.conf

Lägg till:

lxc.cgroup2.devices.allow: c 226:* rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir

20. Intel Quick Sync drivers (Media LXC)

sudo apt install i965-va-driver vainfo

21. Installera Glances (Proxmox Host)

Installera Python:

apt-get install python3 python3-venv -y

Skapa virtuell miljö:

mkdir -p /home/glances
cd /home/glances

python3 -m venv .
source bin/activate

Installera Glances:

pip install --upgrade pip
pip install "glances[all]"

Testa:

glances -w

22. Time-Based-Mover

Skapa script:

nano /home/time-based-mover.sh

Innehåll:

#!/usr/bin/env sh

if [ $# != 3 ]; then
  echo "usage: $0 <fastpool> <slowpool> <days-old>"
  exit 1
fi

FASTPOOL="${1}"
SLOWPOOL="${2}"
DAYS=${3}

find "${FASTPOOL}" -type f -atime +${DAYS} -printf '%P\n' | \
  rsync --files-from=- -axqHAXWES --preallocate --remove-source-files "${FASTPOOL}/" "${SLOWPOOL}/"

23. Backup med Proxmox Backup Server

Skapa konfigurationsfil:

nano /etc/proxmox-backup/client.conf
[repository]
repository = backup@pbs!<TOKEN-NAME>@10.X.X.X:<DATASTORE>
password = <TOKEN-SECRET>

⚠️ Använd inte mergerfs för PBS-backuper!


24. Ändra diskstorlek på LXC

pct resize <LXC-ID> rootfs <SIZE>G

Exempel:

pct resize 101 rootfs 100G

Klart

Nu har du en fullt konfigurerad Proxmox LXC för Docker och homelab-tjänster.

Den här setupen ger dig:

  • automatiska containeruppdateringar
  • korrekt permissions
  • GPU acceleration
  • backup via PBS
  • time-based storage mover

Perfekt för ett stabilt homelab.