# Proxmox host setup (one-time) Alt herfra køres på Proxmox-hosten som root. Når LXC'en er oppe, skip videre til `setup-container.sh`. ## 1. Opret unprivileged container Brug Debian 12 (eller nyere). Tilpas `200` (CTID), storage og bridge til din opsætning. ```sh pveam download local debian-12-standard_12.7-1_amd64.tar.zst # hvis ikke allerede til stede pct create 200 local:vztmpl/debian-12-standard_12.7-1_amd64.tar.zst \ --hostname weircon-random-proxy \ --unprivileged 1 \ --features nesting=1,keyctl=1 \ --memory 1024 \ --swap 512 \ --cores 2 \ --rootfs local-lvm:8 \ --net0 name=eth0,bridge=vmbr0,ip=dhcp \ --onboot 1 ``` > **Hvorfor `nesting=1`**: WireGuard inde i en netns inde i en unprivileged LXC kræver at flere user-/mount-namespaces kan stables. > **Hvorfor ikke `nesting=0`**: så afviser kernen `ip netns add` i containeren. ## 2. TUN passthrough Tilføj til `/etc/pve/lxc/200.conf`: ``` lxc.cgroup2.devices.allow: c 10:200 rwm lxc.mount.entry: /dev/net/tun dev/net/tun none bind,create=file ``` Kernel-WireGuard bruger som regel en wireguard-netdev og kræver strengt taget ikke `/dev/net/tun` — men `wg-quick` og enkelte VPN-værktøjer rører ved den, og det skader ikke at have den tilgængelig. Tjek at WireGuard-modulet er loaded på *hosten*: ```sh modprobe wireguard lsmod | grep wireguard echo wireguard >> /etc/modules-load.d/wireguard.conf ``` ## 3. Start container + indlæs filer ```sh pct start 200 # Byg fetch-service binæren på din dev-maskine (Arch eller hvor): # cd random_proxy/service && make build # Push den + setup-scriptet ind: pct push 200 ./service/weircon-random-proxy /usr/local/bin/weircon-random-proxy --perms 0755 pct push 200 ./lxc/setup-container.sh /root/setup-container.sh --perms 0755 pct push 200 ./lxc/netns-up.sh /root/netns-up.sh --perms 0755 pct push 200 ./lxc/netns-down.sh /root/netns-down.sh --perms 0755 pct push 200 ./lxc/systemd/weircon-proxies.target /root/weircon-proxies.target pct push 200 ./lxc/systemd/weircon-proxy@.service /root/weircon-proxy@.service pct push 200 ./lxc/systemd/weircon-fetch.service /root/weircon-fetch.service pct push 200 ./lxc/fetch.env.example /root/fetch.env.example # WireGuard configs (én pr. tunnel) for i in 0 1 2 3 4 5 6 7 8 9; do pct push 200 ./wg-configs/proxy${i}.conf /etc/weircon-random-proxy/wg/proxy${i}.conf --perms 0600 done # Hop ind og kør resten pct enter 200 bash /root/setup-container.sh ``` ## 4. Health check fra hosten Hvis LXC'ens IP er fx 10.0.0.50: ```sh curl http://10.0.0.50:8080/health # {"ok":true,"proxies":10} ``` ## 5. Peg NPM på containeren I NginxProxyManager: - Forward Hostname / IP: `10.0.0.50` - Forward Port: `8080` - Tab "Advanced": indsæt indholdet af `npm/advanced.conf` (husk at udskifte placeholder API-key).