A simple HTTP server that can serve up any directory, built with Dart.
Inspired by python -m SimpleHTTPServer.
Install
Use the dart pub global command to install this into your system.
$ dart pub global activate dhttpd
Use
If you have modified your PATH, you can run this server from any local directory.
$ dhttpd
Otherwise you can use the dart pub global command.
$ dart pub global run dhttpd
Here's an example of creating a web app and then running it with this server:
$ dart create -t web web_app
$ cd web_app
$ dart pub get
$ dart run build_runner build -o build
$ dhttpd --path build/web/ # Serves app at http://localhost:8080
HTTPS
If you want to use HTTPS you will need to pass in the path of the SSL certificate and the SSL key file as well as the password string, if a password is set on the key, for example:
$ dart bin/dhttpd.dart --sslcert=example/server_chain.pem --sslkey=example/server_key.pem --sslkeypassword=dartdart
Server HTTPS started on port 8080
See the Dart documentation of SecurityContext.usePrivateKey for more details.
Configure
$ dhttpd --help
--headers=<headers> HTTP headers to apply to each response. Can be used multiple times. Format: header=value;header2=value
--host=<host> The hostname to listen on.
(defaults to "localhost")
-l, --list-files List the files in the directory if no index.html is present.
--path=<path> The path to serve. If not set, the current directory is used.
-p, --port=<port> The port to listen on. Provide `0` to use a random port.
(defaults to "8080")
--sslcert=<sslcert> The SSL certificate to use. Also requires sslkey
--sslkey=<sslkey> The key of the SSL certificate to use. Also requires sslcert
--sslkeypassword=<sslkeypassword> The password for the key of the SSL certificate to use.
-h, --help Displays the help.
--version Prints the version of dhttpd.