Files
Asger Weirsøe 8652fcfbba
release / release (push) Successful in 1m15s
Initial commit
2026-05-27 15:02:44 +02:00

89 lines
2.7 KiB
Markdown

# 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).