Skip to content

Commit

Permalink
Improve documentation for the --header parameter (#1389)
Browse files Browse the repository at this point in the history
* Improve documentation for the --header parameter
* Add Support for HSTS to Enhance HTTPS Security

---------

Co-authored-by: orwithout <googoldecibel@gmail.com>
  • Loading branch information
orwithout and orwithout authored Apr 26, 2024
1 parent 2067453 commit c85d9e3
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 2 deletions.
20 changes: 19 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,9 +61,22 @@ Sometimes this is just a more practical and quick way than doing things properly

miniserve -i 192.168.0.1 -i 10.13.37.10 -i ::1 /tmp/myshare

### Insert custom headers

miniserve --header "Cache-Control:no-cache" --header "X-Custom-Header:custom-value" -p 8080 /tmp/myshare
# Check headers in another terminal
curl -I http://localhost:8080

If a header is already set or previously inserted, it will not be overwritten.

### Start with TLS:

miniserve --tls-cert my.cert --tls-key my.key /tmp/myshare
# Fullchain TLS and HTTP Strict Transport Security (HSTS)
miniserve --tls-cert fullchain.pem --tls-key my.key --header "Strict-Transport-Security: max-age=31536000; includeSubDomains; preload" /tmp/myshare

If the parameter value has spaces, be sure to wrap it in quotes.
(To achieve an A+ rating at https://www.ssllabs.com/ssltest/, enabling both fullchain TLS and HSTS is necessary.)

### Upload a file using `curl`:

Expand Down Expand Up @@ -314,7 +327,12 @@ Options:
[env: MINISERVE_TITLE=]
--header <HEADER>
Set custom header for responses
Inserts custom headers into the responses. Specify each header as a 'Header:Value' pair.
This parameter can be used multiple times to add multiple headers.
Example:
--header "Header1:Value1" --header "Header2:Value2"
(If a header is already set or previously inserted, it will not be overwritten.)
[env: MINISERVE_HEADER=]
Expand Down
7 changes: 6 additions & 1 deletion src/args.rs
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,12 @@ pub struct CliArgs {
#[arg(short = 't', long = "title", env = "MINISERVE_TITLE")]
pub title: Option<String>,

/// Set custom header for responses
/// Inserts custom headers into the responses. Specify each header as a 'Header:Value' pair.
/// This parameter can be used multiple times to add multiple headers.
///
/// Example:
/// --header "Header1:Value1" --header "Header2:Value2"
/// (If a header is already set or previously inserted, it will not be overwritten.)
#[arg(
long = "header",
value_parser(parse_header),
Expand Down

0 comments on commit c85d9e3

Please sign in to comment.