--- name: nordvpn_container_start kind: function lang: go domain: infra version: "1.0.0" purity: impure signature: "func NordVPNContainerStart(opts NordVPNContainerOpts) (string, error)" description: "Levanta un container Docker con NordVPN como gateway de red. Otros containers pueden rutear su trafico a traves de este con --network=container:. Espera hasta 30s a que el tunel este activo." tags: [vpn, nordvpn, docker, container, gateway, infra, network] uses_functions: ["docker_run_container_go_infra", "docker_remove_container_go_infra", "docker_container_logs_go_infra"] uses_types: [] returns: [] returns_optional: false error_type: "error_go_core" imports: [fmt, strings, time] params: - name: opts desc: "estructura NordVPNContainerOpts con Token, Country, City, Protocol" output: "ID del contenedor gateway NordVPN" tested: false tests: [] test_file_path: "" file_path: "functions/infra/nordvpn_container_start.go" --- ## Ejemplo ```go id, err := NordVPNContainerStart(NordVPNContainerOpts{ Token: os.Getenv("NORDVPN_TOKEN"), Country: "Spain", City: "Madrid", }) if err != nil { log.Fatal(err) } fmt.Println("VPN gateway:", id) // Ahora otros containers pueden usar la VPN: // docker run --network=container:nordvpn curlimages/curl https://api.ipify.org ``` ## Notas Usa la imagen `ghcr.io/bubuntux/nordvpn`. Requiere un token de acceso NordVPN (obtener con `nordvpn token` desde CLI o desde la web de NordVPN). Limpia containers previos con el mismo nombre automaticamente. El protocolo por defecto es NordLynx (WireGuard).