Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

A cross-platform, high-performance and asynchronous web server for static files-serving. ⚡

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
NotificationsYou must be signed in to change notification settings

static-web-server/static-web-server

 
 

Repository files navigation

End of Life (2023-01-06): Version1.x is no longer supported. Please follow the instructions to migrate to latest stable version. The v2 has similar/added features as well as performance/security improvements. SeeMigrating from v1 to v2.

A blazing fast static files-serving web server powered byRust Iron. ⚡

This is the stablev1. For the latestv2 refer tomaster branch.

Static Web Server is a very small and fast production-ready web server to serving static web files or assets.

Features

Releases

Available for download/install via following methods:

Docker Images (Linux x86_64)

hub.docker.com/r/joseluisq/static-web-server/

Release binaries

github.com/joseluisq/static-web-server/releases.

Linux

  • x86_64-unknown-linux-gnu (64-bit)
  • x86_64-unknown-linux-musl (64-bit)
  • aarch64-unknown-linux-musl (ARM64)
  • aarch64-unknown-linux-gnu (ARM64)
  • arm-unknown-linux-gnueabihf (ARM)

macOS

  • x86_64-apple-darwin (64-bit)
  • aarch64-apple-darwin (ARM64)

Windows

  • x86_64-pc-windows-msvc (64-bit)
  • aarch64-pc-windows-msvc (ARM64)

Usage

Server can be configured either via environment variables or their equivalent command-line arguments.

Environment Variables

VariableDescriptionDefault
SERVER_NAMEName for server.Defaultmy-static-server.
SERVER_HOSTHost address (E.g 127.0.0.1).Default[::].
SERVER_PORTHost port.Default80.
SERVER_ROOTRoot directory path of static files.Default./public.
SERVER_ASSETSAssets directory path for add cache headers functionality.Default./public/assets.
SERVER_LOG_LEVELSpecify a logging level in lower case (seelog::LevelFilter).Defaulterror
SERVER_ERROR_PAGE_404HTML file path for 404 errors.If path is not specified or simply don't exists then server will use a generic HTML error message. Default file path./public/404.html.
SERVER_ERROR_PAGE_50XHTML file path for 50x errors.If path is not specified or simply don't exists then server will use a generic HTML error message. Default file path./public/50x.html
SERVER_TLSEnables TLS/SSL support. Make sure also to adjust current server port.Defaultfalse
SERVER_TLS_PKCS12A cryptographic identityPKCS #12 bundle file path containing aX509 certificate along with its corresponding private key and chain of certificates to a trusted root.Default empty
SERVER_TLS_PKCS12_PASSWDA specified password to decrypt the private key.Default empty
SERVER_TLS_REDIRECT_FROMHost port for redirecting HTTP requests to HTTPS. This option enables the HTTP redirect featureDefault empty (disabled)
SERVER_TLS_REDIRECT_HOSTHost name of HTTPS site for redirecting HTTP requests to.Default host address
SERVER_CORS_ALLOW_ORIGINSSpecify a CORS list of allowed origin hosts separated by comas. Host ports or protocols aren't being checked. Use an asterisk (*) to allow any host. SeeIron CORS crate.Default empty (disabled)
SERVER_DIRECTORY_LISTINGEnable directory listing for all requests ending with the slash character (‘/’)Defaultfalse (disabled)

Command-line arguments

CLI arguments listed withstatic-web-server -h.

static-web-server 1.18.1Jose Quintana <https://joseluisq.net>A blazing fast static files-serving web server powered by Rust Iron.USAGE:    static-web-server [OPTIONS]FLAGS:    -h, --help       Prints help information    -V, --version    Prints version informationOPTIONS:    -f, --assets <assets>            Assets directory path for add cache headers functionality [env: SERVER_ASSETS=]  [default: ./public/assets]    -c, --cors-allow-origins <cors-allow-origins>            Specify a CORS list of allowed origin hosts separated by comas. Host ports or protocols aren't being            checked. Use an asterisk (*) to allow any host [env: SERVER_CORS_ALLOW_ORIGINS=]    -i, --directory-listing <directory-listing>            Enable directory listing for all requests ending with the slash character (‘/’) [env:            SERVER_DIRECTORY_LISTING=]    -a, --host <host>                                Host address (E.g 127.0.0.1) [env: SERVER_HOST=]  [default: [::]]    -g, --log-level <log-level>            Specify a logging level in lower case [env: SERVER_LOG_LEVEL=]  [default: error]    -l, --name <name>                                Name for server [env: SERVER_NAME=]        --page404 <page404>            HTML file path for 404 errors. If path is not specified or simply don't exists then server will use a            generic HTML error message [env: SERVER_ERROR_PAGE_404=]  [default: ./public/404.html]        --page50x <page50x>            HTML file path for 50x errors. If path is not specified or simply don't exists then server will use a            generic HTML error message [env: SERVER_ERROR_PAGE_50X=]  [default: ./public/50x.html]    -p, --port <port>                                Host port [env: SERVER_PORT=]  [default: 80]    -d, --root <root>            Root directory path of static files [env: SERVER_ROOT=]  [default: ./public]    -t, --tls <tls>                                  Enables TLS/SSL support [env: SERVER_TLS=]        --tls-pkcs12 <tls-pkcs12>            A cryptographic identity PKCS #12 bundle file path containing a X509 certificate along with its            corresponding private key and chain of certificates to a trusted root [env: SERVER_TLS_PKCS12=]        --tls-pkcs12-passwd <tls-pkcs12-passwd>            A specified password to decrypt the private key [env: SERVER_TLS_PKCS12_PASSWD=]        --tls-redirect-from <tls-redirect-from>            Host port for redirecting HTTP requests to HTTPS. This option enables the HTTP redirect feature [env:            SERVER_TLS_REDIRECT_FROM=]        --tls-redirect-host <tls-redirect-host>            Host name of HTTPS site for redirecting HTTP requests to. Defaults to host address [env:            SERVER_TLS_REDIRECT_HOST=]

TLS/SSL

TLS/SSL support is provided byRust Native TLS crate which supportsPKCS #12 cryptographic identity.An identity is anX509 certificate certificate along with its corresponding private key and chain of certificates to a trusted root.

For instance, identity files (.p12 or.pfx) can be generated using theOpenSSL SSL/TLS Toolkit:

Generate a self-signed certificate (optional):

openssl req -x509 -newkey rsa:4096 -nodes -keyout local.key -out local.crt -days 3650

Generate a PKCS #12 indentity file (using an existing certificate and private key):

openssl pkcs12 -export -out identity.p12 -inkey local.key -in local.crt -password pass:my_password

Docker stack

Example usingTraefik Proxy:

version:"3.3"services:web:image:joseluisq/static-web-server:1environment:        -SERVER_NAME=my-server        -SERVER_HOST=127.0.0.1        -SERVER_PORT=80        -SERVER_ROOT=/public# NOTE:#   For the server, assets directory is not relative to root.#   That's why, it's necessary to be explicit (prefer absolute paths).#   See release v1.8.0+ for more details.        -SERVER_ASSETS=/public/assetsvolumes:        -./some-dir-path:/publiclabels:        -"traefik.enable=true"        -"traefik.frontend.entryPoints=https"        -"traefik.backend=localhost_dev"        -"traefik.frontend.rule=Host:localhost.dev"        -"traefik.port=80"networks:        -traefik_netnetworks:traefik_net:external:true

Contributions

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in current work by you, as defined in the Apache-2.0 license, shall be dual licensed as described below, without any additional terms or conditions.

Feel free to send somePull request orissue.

License

This work is primarily distributed under the terms of both theMIT license and theApache License (Version 2.0).

© 2019-presentJose Quintana

About

A cross-platform, high-performance and asynchronous web server for static files-serving. ⚡

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

[8]ページ先頭

©2009-2025 Movatter.jp