CommunityToolkit.Aspire.Hosting.Ngrok 9.5.0

Prefix Reserved
There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package CommunityToolkit.Aspire.Hosting.Ngrok --version 9.5.0
                    
NuGet\Install-Package CommunityToolkit.Aspire.Hosting.Ngrok -Version 9.5.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="CommunityToolkit.Aspire.Hosting.Ngrok" Version="9.5.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="CommunityToolkit.Aspire.Hosting.Ngrok" Version="9.5.0" />
                    
Directory.Packages.props
<PackageReference Include="CommunityToolkit.Aspire.Hosting.Ngrok" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add CommunityToolkit.Aspire.Hosting.Ngrok --version 9.5.0
                    
#r "nuget: CommunityToolkit.Aspire.Hosting.Ngrok, 9.5.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#addin nuget:?package=CommunityToolkit.Aspire.Hosting.Ngrok&version=9.5.0
                    
Install as a Cake Addin
#tool nuget:?package=CommunityToolkit.Aspire.Hosting.Ngrok&version=9.5.0
                    
Install as a Cake Tool

CommunityToolkit.Aspire.Hosting.Ngrok library

Provides extension methods and resource definitions for a .NET Aspire AppHost to configure a ngrok container.

Getting Started

Install the package

In your AppHost project, install the package using the following command:

dotnet add package CommunityToolkit.Aspire.Hosting.Ngrok

Example usage

Then, in the Program.cs file of app host, add a ngrok resource and add endpoints to be tunneled following methods:

var myService = builder.AddProject<Projects.MyService>();
var otherSevice = builder.AddProject<Projects.OtherService>();

var authToken = builder
    .AddParameter("ngrok-auth-token", "your-ngrok-auth-token", secret: true);

builder.AddNgrok("ngrok", endpointPort: 59600) // omit endpointPort to use random port
    .WithAuthToken(authToken)
    .WithTunnelEndpoint(myService, "http", "<your-ngrok-domain>")
    .WithTunnelEndpoint(otherSevice, "http"); // ngrok will generate a random domain for this service

Querying the ngrok tunneled endpoints

After the ngrok container has started, you can query the ngrok tunneled endpoints using api exposed by the ngrok container:

curl -H "Accept: application/json" -s http://localhost:59600/api/tunnels

This will return a JSON response with the ngrok tunneled endpoints.

{
  "tunnels": [
    {
      "name": "my-http",
      "ID": "5baa78f84cffb31a96cccf5bbe992451",
      "uri": "/api/tunnels/my-http",
      "public_url": "https://<your-ngrok-domain>",
      "proto": "https",
      "config": {
        "addr": "http://host.docker.internal:5165",
        "inspect": true
      },
      // ...
    }, {
      "name": "other-http",
      "ID": "f7f1351d1307e3615ca7de310bf6bb61",
      "uri": "/api/tunnels/other-http",
      "public_url": "https://0849-94-134-176-242.ngrok-free.app",
      "proto": "https",
      "config": {
          "addr": "http://host.docker.internal:3657",
          "inspect": true
      },
      // ...
    }
  ],
  "uri": "/api/tunnels"
}

Additional Information

Feedback & contributing

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 is compatible.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
9.5.1-beta.318 105 7/2/2025
9.5.1-beta.317 102 6/30/2025
9.5.1-beta.315 109 6/26/2025
9.5.1-beta.314 106 6/23/2025
9.5.1-beta.313 96 6/20/2025
9.5.1-beta.312 100 6/20/2025
9.5.1-beta.311 111 6/18/2025
9.5.1-beta.310 109 6/17/2025
9.5.1-beta.309 109 6/17/2025
9.5.1-beta.308 109 6/17/2025
9.5.1-beta.307 111 6/16/2025
9.5.1-beta.306 263 6/11/2025
9.5.1-beta.305 84 6/7/2025
9.5.1-beta.304 94 6/6/2025
9.5.1-beta.303 108 6/4/2025
9.5.1-beta.302 111 6/4/2025
9.5.1-beta.301 114 6/2/2025
9.5.1-beta.300 116 5/28/2025
9.5.0 1,186 5/27/2025
9.5.0-beta.299 116 5/27/2025
9.5.0-beta.298 122 5/26/2025
9.5.0-beta.297 68 5/24/2025
9.5.0-beta.296 71 5/24/2025
9.5.0-beta.295 36 5/24/2025
9.4.1-beta.291 115 5/19/2025
9.4.1-beta.289 129 5/16/2025
9.4.1-beta.288 177 5/16/2025
9.4.1-beta.287 172 5/16/2025
9.4.1-beta.286 175 5/16/2025
9.4.1-beta.285 190 5/14/2025
9.4.1-beta.284 196 5/13/2025
9.4.1-beta.283 198 5/12/2025
9.4.1-beta.282 120 5/7/2025
9.4.1-beta.280 117 5/2/2025
9.4.1-beta.279 109 5/2/2025
9.4.1-beta.277 125 4/23/2025
9.4.1-beta.276 128 4/23/2025
9.4.1-beta.275 123 4/23/2025
9.4.1-beta.274 127 4/23/2025
9.4.1-beta.273 123 4/23/2025
9.4.1-beta.272 122 4/23/2025
9.4.1-beta.271 128 4/23/2025
9.4.1-beta.270 149 4/20/2025
9.4.0 882 4/20/2025
9.4.0-beta.269 127 4/20/2025
9.4.0-beta.268 122 4/20/2025
9.3.1-beta.267 126 4/20/2025
9.3.1-beta.266 59 4/19/2025
9.3.1-beta.265 154 4/15/2025
9.3.1-beta.264 157 4/15/2025
9.3.1-beta.263 155 4/15/2025
9.3.1-beta.262 157 4/15/2025
9.3.1-beta.260 125 4/10/2025
9.3.1-beta.259 124 4/8/2025
9.3.1-beta.258 128 4/8/2025
9.3.1-beta.257 129 4/8/2025
9.3.1-beta.256 124 4/8/2025
9.3.1-beta.255 127 4/8/2025
9.3.1-beta.254 123 4/8/2025
9.3.1-beta.253 125 4/1/2025
9.3.1-beta.252 103 3/27/2025
9.3.1-beta.250 108 3/27/2025
9.3.1-beta.249 100 3/27/2025
9.3.1-beta.248 107 3/27/2025
9.3.1-beta.247 104 3/27/2025
9.3.1-beta.244 451 3/25/2025
9.3.1-beta.242 456 3/24/2025
9.3.1-beta.241 122 3/19/2025
9.3.0 477 3/19/2025
9.3.0-beta.239 116 3/19/2025
9.2.2-beta.237 127 3/19/2025
9.2.2-beta.236 86 3/14/2025
9.2.2-beta.230 119 3/13/2025
9.2.2-beta.229 118 3/13/2025
9.2.2-beta.228 133 3/11/2025
9.2.2-beta.227 128 3/11/2025
9.2.2-beta.226 134 3/11/2025
9.2.2-beta.225 121 3/11/2025
9.2.2-beta.224 129 3/11/2025
9.2.2-beta.223 133 3/10/2025
9.2.2-beta.222 138 3/10/2025
9.2.2-beta.220 127 3/9/2025
9.2.2-beta.218 130 3/9/2025
9.2.2-beta.217 170 3/7/2025
9.2.2-beta.216 175 3/7/2025
9.2.2-beta.215 168 3/7/2025
9.2.2-beta.214 174 3/5/2025
9.2.2-beta.213 161 3/5/2025
9.2.2-beta.212 164 3/5/2025
9.2.2-beta.211 166 3/4/2025
9.2.2-beta.210 169 3/4/2025
9.2.2-beta.208 72 3/3/2025
9.2.1 127 3/3/2025
9.2.1-beta.207 88 3/2/2025
9.2.1-beta.206 64 3/1/2025
9.2.1-beta.205 65 2/27/2025
9.2.1-beta.204 63 2/26/2025
9.2.1-beta.203 58 2/26/2025
9.2.0 122 2/26/2025
9.2.0-beta.202 57 2/26/2025
9.2.0-beta.201 67 2/26/2025
9.2.0-beta.199 62 2/26/2025
9.2.0-beta.198 56 2/26/2025
9.1.1-beta.197 67 2/25/2025
9.1.1-beta.196 70 2/25/2025
9.1.1-beta.195 62 2/25/2025
9.1.1-beta.194 68 2/25/2025
9.1.1-beta.193 68 2/25/2025
9.1.1-beta.192 75 2/24/2025
9.1.1-beta.191 114 2/24/2025
9.1.1-beta.190 76 2/19/2025
9.1.1-beta.189 65 2/19/2025
9.1.1-beta.188 70 2/19/2025
9.1.1-beta.187 78 2/19/2025
9.1.1-beta.183 75 2/18/2025
9.1.1-beta.182 73 2/18/2025
9.1.1-beta.181 89 2/18/2025
9.1.1-beta.180 71 2/17/2025
9.1.1-beta.178 74 2/17/2025
9.1.1-beta.177 86 2/12/2025
9.1.1-beta.176 77 2/11/2025
9.1.1-beta.175 73 2/11/2025
9.1.1-beta.173 70 2/10/2025
9.1.1-beta.169 116 2/6/2025
9.1.1-beta.168 60 2/5/2025
9.1.1-beta.166 64 2/5/2025
9.1.1-beta.165 56 2/5/2025
9.1.1-beta.164 72 2/3/2025
9.1.1-beta.162 65 2/3/2025
9.1.1-beta.155 66 1/30/2025
9.1.1-beta.154 61 1/30/2025
9.1.1-beta.153 59 1/30/2025
9.1.1-beta.152 52 1/29/2025
9.1.1-beta.150 69 1/29/2025
9.1.1-beta.148 66 1/26/2025
9.1.1-beta.147 58 1/26/2025
9.1.1-beta.146 63 1/23/2025
9.1.1-beta.145 59 1/22/2025
9.1.1-beta.144 59 1/22/2025
9.1.1-beta.142 60 1/22/2025
9.1.1-beta.140 64 1/22/2025
9.1.1-beta.139 60 1/21/2025
9.1.1-beta.138 61 1/20/2025
9.1.1-beta.137 53 1/17/2025
9.1.1-beta.136 55 1/15/2025
9.1.1-beta.135 33 1/15/2025
9.1.1-beta.134 32 1/15/2025