VOOZH about

URL: https://www.nuget.org/packages/dotnet-serve

⇱ NuGet Gallery | dotnet-serve 1.10.194




dotnet-serve 1.10.194

dotnet tool install --global dotnet-serve --version 1.10.194
 
 
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
 
if you are setting up this repo
dotnet tool install --local dotnet-serve --version 1.10.194
 
 
This package contains a .NET tool you can call from the shell/command line.
#tool dotnet:?package=dotnet-serve&version=1.10.194
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
nuke :add-package dotnet-serve --version 1.10.194
 
 
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

dotnet-serve

👁 Build Status
👁 Code Coverage
👁 NuGet
👁 NuGet Downloads

A simple command-line HTTP server.

It launches a server in the current working directory and serves all files from that directory.

Get started

Install .NET and run this command:

dotnet tool install --global dotnet-serve

Start a simple server and open the browser by running:

dotnet serve -o

And with HTTPS:

dotnet serve -o -S

With a specific port (otherwise, it defaults to a random unused port):

dotnet serve --port 8080

Allow access from remote machines (defaults to loopback only). Use this if running inside Docker:

dotnet serve --address any

Usage

Usage: dotnet serve [options]

Options:
 --version Show version information.
 -d|--directory <DIR> The root directory to serve. [Current directory]
 -o|--open-browser[:<PATH>] Open a web browser when the server starts. [Default false]
 You can also provide the subpath to launch by using -o:<PATH>.
 Example: -o:/path/index.html
 -p|--port <PORT> Port to use [8080]. Use 0 for a dynamic port.
 -a|--address <ADDRESS> Address to use. [Default = localhost].
 Accepts IP addresses,
 'localhost' to accept only loopback requests, or
 'any' to accept requests from any IP address.
 --path-base <PATH> The base URL path appended to the site URL.
 --reverse-proxy <MAPPING> Map a path pattern to another url.
 Expected format is <SOURCE_PATH_PATTERN>=<DESTINATION_URL_PREFIX>.
 SOURCE_PATH_PATTERN uses ASP.NET routing syntax. Use {**all} to match anything.
 --default-extensions[:<EXTENSIONS>] A comma-delimited list of extensions to use when no extension is provided in the URL. [.html,.htm]
 -q|--quiet Show less console output.
 -v|--verbose Show more console output.
 -h|--headers <HEADER_AND_VALUE> A header to return with all file/directory responses. e.g. -h "X-XSS-Protection: 1; mode=block"
 -S|--tls Enable TLS (HTTPS)
 --cert A PEM encoded certificate file to use for HTTPS connections.
 Defaults to file in current directory named 'cert.pem'
 --key A PEM encoded private key to use for HTTPS connections.
 Defaults to file in current directory named 'private.key'
 --pfx A PKCS#12 certificate file to use for HTTPS connections.
 Defaults to file in current directory named 'cert.pfx'
 --pfx-pwd The password to open the certificate file. (Optional)
 -m|--mime <MAPPING> Add a mapping from file extension to MIME type. Empty MIME removes a mapping.
 Expected format is <EXT>=<MIME>.
 -z|--gzip Enable gzip compression
 -b|--brotli Enable brotli compression
 -c|--cors Enable CORS (it will enable CORS for all origins and all methods)
 --save-options Save specified options to .netconfig for subsequent runs.
 --config-file Use the given .netconfig file.
 --fallback-file The path to a file which is served for requests that do not match known file names.
 This is commonly used for single-page applications.
 -?|--help Show help information.

Tip: single letters for options can be combined. Example: dotnet serve -Sozq

Configuring HTTPS

dotnet serve -S will serve requests over HTTPS. By default, it will attempt to find an appropriate certificate on the machine.

By default, dotnet serve will look for, in order:

  • A pair of files named cert.pem and private.key in the current directory
  • A file named cert.pfx in the current directory
  • The ASP.NET Core Developer Certificate (localhost only)

You can also manually specify certificates as command line options (see below):

See also for how to create a self-signed HTTPS certificate.

.pem files

Use this when you have your certificate and private key stored in separate files (PEM encoded):

dotnet serve --cert ./cert.pem --key ./private.pem

Note: currently only RSA private keys are supported.

.pfx file

Use this when you have your certificate as a .pfx/.p12 file (PKCS#12 format):

dotnet serve --pfx myCert.pfx --pfx-pwd certPass123

Using the ASP.NET Core Developer Certificate

The developer certificate is automatically created the first time you use dotnet. When serving on 'localhost', dotnet-serve will discover and use it when you run:

dotnet serve -S

Reverse Proxy

dotnet-serve --reverse-proxy /api/{**all}=http://localhost:5000 will proxy all requests matching /api/* to http://localhost:5000/api/*.

The source path pattern uses ASP.NET routing syntax. See the ASP.NET docs for more info.

Multiple --reverse-proxy <MAPPING> directives can be defined.

Reusing options with .netconfig

dotnet-serve supports reading and saving options using dotnet-config, which provides hierarchical inherited configuration for any .NET tool. This means you can save your frequently used options to .netconfig so you don't need to specify them every time and for every folder you serve across your machine.

To save the options used in a particular run to the current directory's .netconfig, just append --save-options:

dotnet serve -p 8080 --gzip --cors --quiet --save-options

After running that command, a new .netconfig will be created (if there isn't one already there) with the following section for dotnet-serve:

[serve]
	port = 8000
	quiet
	gzip
	cors
	header = X-My-Option: foo
	header = X-Another: bar

Note: multiple header, mime type mappings, and exclude-file entries can be provided as individual variables.

You can place those settings in any parent folder, and they will be reused across all descendant folders. Alternatively, they can be saved to global (user profile) or system locations. To easily configure these options at those levels, use the dotnet-config tool itself:

dotnet config --global --set serve.port 8000

This will default the port to 8000 whenever a port is not specified in the command line. You can open the saved .netconfig at %USERPROFILE%\.netconfig or ~/.netconfig.

The cert, key and pfx values, in particular, can be relative paths that are resolved relative to the location of the declaring .netconfig file, which can be very convenient.

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

This package has no dependencies.

Version Downloads Last Updated
1.10.194 6,802,047 12/28/2025
1.10.193 2,731,635 9/13/2025
1.10.190 3,157,662 6/8/2025
1.10.188 931 6/8/2025
1.10.175 13,946,675 3/30/2024
1.10.172 6,938,890 6/28/2023
1.10.168 77,403 6/25/2023
1.10.162 5,991 6/25/2023
1.10.158 3,829 6/25/2023
1.10.155 2,565,347 2/4/2023
1.10.149 1,717,039 10/8/2022
1.10.140 647,054 9/15/2022
1.10.128 1,521,477 6/28/2022
1.10.112 831,756 4/24/2022
1.10.93 7,605 2/1/2022
1.10.82 6,692 11/28/2021
1.9.71 5,437 9/25/2021
1.8.34 9,075 3/4/2021
1.8.31 3,958 3/4/2021
1.8.26 4,233 3/4/2021
Loading failed