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 -ySkapa 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.shHä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>/docker19. 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.
Diskussion