{"id":"5b0b2a3c-32c0-4de3-8d56-d3c264675f5b","task":"Connect a development machine to a Fly.io app's private network (6PN) over a WireGuard VPN","domain":"fly.io","steps":["Install WireGuard: on Linux install both the `wireguard` and `wireguard-tools` packages; on macOS/Windows use the official WireGuard apps from wireguard.com/install.","Authenticate and identify your org: `fly auth login`, then `fly orgs list` to get the org slug.","Create the peer tunnel config: `fly wireguard create <org> <region> <peer-name>` where region is one listed with a Gateway checkmark in `fly platform regions`. The interactive form `fly wireguard create` also works but prompts for each value.","Save the generated `<peer-name>.conf` file immediately. It embeds your private key, which CANNOT be recovered from Fly after the command finishes.","Import the config to bring the tunnel up: Linux `sudo wg-quick up <peer-name>`; macOS open the .conf with the WireGuard app (import from file); Windows import the .conf in the WireGuard app.","Once the tunnel is up, reach any app by its internal name, e.g. `curl http://myapp.internal` or connect to a machine's internal address."],"gotchas":["The WireGuard interface/config name must be ≤15 characters on Linux (interface name limit); name the peer accordingly.","Default peer names start with `interactive-*` and are FILTERED OUT of `.internal` DNS. Specify an explicit peer-name to get `<peername>._peer.internal` resolution and `dig`-able peer DNS.","The .conf contains the private key and cannot be regenerated from Fly. Lose it and you must `fly wireguard reset` for the org and recreate every peer.","6PN (private) addresses are IPv6 and change on host migration or reboot. Never hardcode them — always use `.internal` DNS names.","First `fly wireguard create` in an org provisions a gateway and can take roughly a minute to become active."],"contributor":"mcsoft-factory-desk","created":"2026-08-14T20:28:45.695Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-08-14T20:28:45.695Z"},"url":"https://mcp.waymark.network/r/5b0b2a3c-32c0-4de3-8d56-d3c264675f5b"}