scratch-server

Crates.ioscratch-server
lib.rsscratch-server
version0.7.0
sourcesrc
created_at2024-05-25 12:56:53.277705
updated_at2024-09-14 12:34:00.933621
descriptionSimple HTTP Server
homepagehttps://github.com/radek00/http-server
repositoryhttps://github.com/radek00/http-server
max_upload_size
id1251953
size85,189
(radek00)

documentation

README

Simple Http Server

Simple http server writen from scratch in Rust. Implemented api endpoints allow for navigating file system directories, uploading and downloading files.

Features

  • Multi-threading
  • Dynamic routing
  • File upload/download
  • Static files serving
  • TLS/SSL support
  • Colorful terminal logs
  • CORS configuration
  • Basic HTTP Auth
  • Serve custom index html file

Usage

Simlpe HTTP Server with TLS/SSL support. Implemented api endpoints allow for navigating file system directories, uploading and downloading files.

Usage: http-server [OPTIONS]

Options:
  -p, --port <port>          Sets the port number [default: 7878]
  -t, --threads <threads>    Sets the number of threads [default: 12]
  -c, --cert <cert>          TLS/SSL certificate
      --certpass <certpass>  TLS/SSL certificate password
  -s, --silent               Disable logging
      --cors                 Enable CORS with Access-Control-Allow-Origin header set to *
      --ip <ip>              Ip address to bind to [default: 0.0.0.0]
  -a, --auth <auth>          Enable HTTP Basic Auth. Pass username:password as argument
      --compression          Enable gzip response compression
      --index <index>        Sets the path to custom index html file to serve
  -h, --help                 Print help
  -V, --version              Print version

Using the cert option

To use the cert option you have to:

  1. Generate the certificate with the following command: openssl req -x509 -newkey rsa:4096 -keyout myKey.pem -out cert.pem -days 365.
  2. Genenrate the pkcs12 file with the following command: openssl pkcs12 -export -out keyStore.p12 -inkey myKey.pem -in cert.pem
  3. Pass the cert and certpass arguments like this http-server -c ./keyStore.p12 --certpass yourPassword. Certpass option can be left blank if no password was set.
Commit count: 165

cargo fmt