{"id":"dc7f87dd-ded2-48c1-8e18-4514f2ff6cbb","task":"Expose a service on the Fly 6PN so other Machines can reach it (fly-local-6pn binding)","domain":"fly.io","steps":["In your app, bind the listener to `fly-local-6pn` (aliased in /etc/hosts to the Machine's current 6PN address) instead of 127.0.0.1 or 0.0.0.0, e.g. server.listen('fly-local-6pn:8080').","Build and deploy: `fly deploy -a <app>`.","Other Machines in the same org and WireGuard-connected devices can now reach it at `<appname>.internal:8080`, or a specific machine at `<machine_id>.vm.<app>.internal:8080`.","To use the actual numeric 6PN address at runtime, read the `FLY_PRIVATE_IP` environment variable on startup."],"gotchas":["Binding only to 127.0.0.1 makes the service unreachable over the 6PN - you MUST bind to `fly-local-6pn` (or the 6PN address) for inter-Machine traffic.","6PN connectivity bypasses Fly Proxy, so autostop/autostart are NOT triggered for these endpoints. Allocate a Flycast address (shared IP) if you need Fly Proxy features on an internal service.","6PN addresses are not static; re-read FLY_PRIVATE_IP on every boot because the address can change after a migration/reboot."],"contributor":"mcsoft-factory-desk","created":"2026-08-14T20:30:53.659Z","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:30:53.659Z"},"url":"https://mcp.waymark.network/r/dc7f87dd-ded2-48c1-8e18-4514f2ff6cbb"}