LLUSTR Proxy Operations
This skill is the project runbook for the llustr-proxy repository. Use it when a task involves running the stack, validating tunnels, debugging startup failures, or using the local API server.
When To Use
- Start one tunnel or a tunnel range with
just.
- Validate local prerequisites before running Docker containers.
- Inspect running passages, logs, ports, health, and exit IPs.
- Verify that the SOCKS5 proxy is actually routing traffic through the VPN.
- Operate the optional FastAPI dashboard and API under
server/.
- Troubleshoot common startup problems such as missing
.env, absent VPN configs, missing Docker network, port collisions, or broken VPN connectivity.
Core Workflow
Confirm prerequisites.
- Docker must be available and running.
just must be installed.
.env must define VPN_USERNAME and VPN_PASSWORD.
vpn-configs/ must contain .ovpn files, or the user must be willing to download them.
Validate the repo setup.
- Run
just check for an overall sanity check.
- If configs are missing or stale, run
just update-configs.
Start tunnels through the supported entrypoint.
- Start one tunnel with
just start 0.
- Start a range with
just start 0-4 or just range 0 4.
- Force a rebuild with
just rebuild 0.
- Refresh configs plus startup with
just fresh 0 or just fresh-rebuild 0.
- The startup script now creates the shared Docker network
nordhell-network automatically if it is missing.
Verify that startup produced a usable proxy.
- Inspect state with
just status.
- Test all active tunnels with
just test.
- Test a single published port with
just test-port 1080.
- Check a specific tunnel exit IP with
just exit-ip 0.
Inspect or troubleshoot failures.
- View logs with
just logs 0, just tail 0, or just follow 0.
- Inspect Docker state with
just info 0, just ps, or just inspect 0.
- Check health with
just health 0.
- Stop and retry with
just stop 0 then just start 0.
Use the optional server only after the Docker workflow works.
- Start it with
just server.
- The server wraps the shell scripts and exposes HTTP endpoints for start, stop, status, and replace operations.
Decision Points
- If the user is new to the repo or the environment looks uninitialized: start with
just check before attempting any build or run command.
- If
vpn-configs/ is empty: run just update-configs or just fresh 0.
- If
just start fails during Compose startup: inspect docker compose logs and confirm the container exists, has /dev/net/tun, and can establish tun0.
- If a tunnel starts but traffic does not route through the VPN: compare host IP vs proxy IP with
just test.
- If multiple tunnels are needed: prefer the range-aware
just commands instead of ad hoc docker commands so port assignment stays consistent.
- If the user only needs API access or the dashboard: get at least one tunnel working first, then run the server.
Quality Checks
A startup task is complete only when all of the following are true:
- The target container
passage-<id> is running.
- A SOCKS5 port is published.
just status shows the tunnel as up.
just test or an equivalent single-port test returns an exit IP different from the host IP.
A troubleshooting task is complete only when:
- The root cause is identified, not just the visible error.
- The fix uses the supported repo workflow in
justfile and scripts/ unless there is a documented reason not to.
- Any permanent workflow change is reflected in docs or automation.
Preferred Commands
Use the repo entrypoints before raw Docker commands:
just start <id-or-range>
just rebuild <id>
just fresh <id>
just stop <id|all>
just status
just test
just logs <id>
just info <id>
just exit-ip <id>
just server
Command details and troubleshooting cues are in references/commands.md.
Implementation Notes
- Tunnel images and containers are parameterized by
VPN_CONFIG_NUM and named like passage-0.
- Compose projects are named like
nordhell-0.
- SOCKS5 ports begin at
SOCKS_BASE_PORT and increment to avoid collisions.
- The container boot sequence is: choose
.ovpn file, start OpenVPN, wait for tun0, verify connectivity, then launch Dante.
Example Prompts
/llustr-proxy-operations start tunnel 0 and verify it works
/llustr-proxy-operations troubleshoot why just start 3 fails
/llustr-proxy-operations show me how to test all active proxies
/llustr-proxy-operations explain how to run the FastAPI dashboard safely
Source: nicolaiprodromov/nordhell — distributed by TomeVault.
1---2name: llustr-proxy-operations3description: Use when working in the llustr-proxy repository to start VPN tunnels, inspect Docker Compose state, verify SOCKS5 proxy connectivity, operate the optional FastAPI server, or troubleshoot setup issues such as missing .env values, VPN configs, ports, or the shared Docker network.4---56# LLUSTR Proxy Operations78This skill is the project runbook for the llustr-proxy repository. Use it when a task involves running the stack, validating tunnels, debugging startup failures, or using the local API server.910## When To Use1112- Start one tunnel or a tunnel range with `just`.13- Validate local prerequisites before running Docker containers.14- Inspect running passages, logs, ports, health, and exit IPs.15- Verify that the SOCKS5 proxy is actually routing traffic through the VPN.16- Operate the optional FastAPI dashboard and API under `server/`.17- Troubleshoot common startup problems such as missing `.env`, absent VPN configs, missing Docker network, port collisions, or broken VPN connectivity.1819## Core Workflow20211. Confirm prerequisites.22 - Docker must be available and running.23 - `just` must be installed.24 - `.env` must define `VPN_USERNAME` and `VPN_PASSWORD`.25 - `vpn-configs/` must contain `.ovpn` files, or the user must be willing to download them.26272. Validate the repo setup.28 - Run `just check` for an overall sanity check.29 - If configs are missing or stale, run `just update-configs`.30313. Start tunnels through the supported entrypoint.32 - Start one tunnel with `just start 0`.33 - Start a range with `just start 0-4` or `just range 0 4`.34 - Force a rebuild with `just rebuild 0`.35 - Refresh configs plus startup with `just fresh 0` or `just fresh-rebuild 0`.36 - The startup script now creates the shared Docker network `nordhell-network` automatically if it is missing.37384. Verify that startup produced a usable proxy.39 - Inspect state with `just status`.40 - Test all active tunnels with `just test`.41 - Test a single published port with `just test-port 1080`.42 - Check a specific tunnel exit IP with `just exit-ip 0`.43445. Inspect or troubleshoot failures.45 - View logs with `just logs 0`, `just tail 0`, or `just follow 0`.46 - Inspect Docker state with `just info 0`, `just ps`, or `just inspect 0`.47 - Check health with `just health 0`.48 - Stop and retry with `just stop 0` then `just start 0`.49506. Use the optional server only after the Docker workflow works.51 - Start it with `just server`.52 - The server wraps the shell scripts and exposes HTTP endpoints for start, stop, status, and replace operations.5354## Decision Points5556- If the user is new to the repo or the environment looks uninitialized: start with `just check` before attempting any build or run command.57- If `vpn-configs/` is empty: run `just update-configs` or `just fresh 0`.58- If `just start` fails during Compose startup: inspect `docker compose` logs and confirm the container exists, has `/dev/net/tun`, and can establish `tun0`.59- If a tunnel starts but traffic does not route through the VPN: compare host IP vs proxy IP with `just test`.60- If multiple tunnels are needed: prefer the range-aware `just` commands instead of ad hoc docker commands so port assignment stays consistent.61- If the user only needs API access or the dashboard: get at least one tunnel working first, then run the server.6263## Quality Checks6465A startup task is complete only when all of the following are true:6667- The target container `passage-<id>` is running.68- A SOCKS5 port is published.69- `just status` shows the tunnel as up.70- `just test` or an equivalent single-port test returns an exit IP different from the host IP.7172A troubleshooting task is complete only when:7374- The root cause is identified, not just the visible error.75- The fix uses the supported repo workflow in `justfile` and `scripts/` unless there is a documented reason not to.76- Any permanent workflow change is reflected in docs or automation.7778## Preferred Commands7980Use the repo entrypoints before raw Docker commands:8182- `just start <id-or-range>`83- `just rebuild <id>`84- `just fresh <id>`85- `just stop <id|all>`86- `just status`87- `just test`88- `just logs <id>`89- `just info <id>`90- `just exit-ip <id>`91- `just server`9293Command details and troubleshooting cues are in [references/commands.md](./references/commands.md).9495## Implementation Notes9697- Tunnel images and containers are parameterized by `VPN_CONFIG_NUM` and named like `passage-0`.98- Compose projects are named like `nordhell-0`.99- SOCKS5 ports begin at `SOCKS_BASE_PORT` and increment to avoid collisions.100- The container boot sequence is: choose `.ovpn` file, start OpenVPN, wait for `tun0`, verify connectivity, then launch Dante.101102## Example Prompts103104- `/llustr-proxy-operations start tunnel 0 and verify it works`105- `/llustr-proxy-operations troubleshoot why just start 3 fails`106- `/llustr-proxy-operations show me how to test all active proxies`107- `/llustr-proxy-operations explain how to run the FastAPI dashboard safely`108109---110> Source: [nicolaiprodromov/nordhell](https://github.com/nicolaiprodromov/nordhell) — distributed by [TomeVault](https://tomevault.io).111<!-- tomevault:4.0:skill_md:2026-05-22 -->