by natemcmaster

natemcmaster /dotnet-serve

Simple command-line HTTPS server for the .NET Core CLI

437 Stars 42 Forks Last release: 3 months ago (v1.7.131) Apache License 2.0 132 Commits 19 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


Build Status


A simple command-line HTTP server.

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

Get started

Download .NET Core 2.1 or newer. Once installed, 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


Usage: dotnet serve [options]

Options: --version Show version information -d|--directory

The root directory to serve. [Current directory] -o|--open-browser Open a web browser when the server starts. [false] -p|--port Port to use [8080]. Use 0 for a dynamic port. -a|--address
Address to use [] --path-base The base URL path of postpended to the site url. --default-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 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 Add a mapping from file extension to MIME type. Empty MIME removes a mapping. Expected format is =. -z|--gzip Enable gzip compression -b|--brotli Enable brotli compression (requires .NET Core 3+) -c|--cors Enable CORS (It will enable CORS for all origin and all methods) -?|--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
in the current directory - A file named
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 this doc for how to create a self-signed HTTPS certificate.

.pem files

Use this when you have your certficate 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

You can generate a self-signed

Use this when you have your certficate 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

. When serving on 'localhost', dotnet-serve will discover and use when you run:
dotnet serve -S

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.