A simple command-line HTTP server.
It launches a server in the current working directory and serves all files in it.
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 <DIR> The root directory to serve. [Current directory] -o|--open-browser Open a web browser when the server starts. [false] -p|--port <PORT> Port to use . Use 0 for a dynamic port. -a|--address <ADDRESS> Address to use [127.0.0.1] --path-base <PATH> The base URL path of postpended to the site url. --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 (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
dotnet serve -S will serve requests over HTTPS. By default, it will attempt to find an appropriate certificate on the machine.
dotnet serve will look for, in order:
- A pair of files named
private.keyin the current directory
- A file named
cert.pfxin 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.
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.
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
dotnet. When serving on 'localhost', dotnet-serve will discover and use when you run:
dotnet serve -S