Building from Source¶
Follow these instructions to either build SWS project from the source or the HTML documentation.
Building project from source¶
If you want to build SWS from the source, all you need is a Rust 2021 Edition installed.
So make sure to install Rust 1.85.0 or newer (or nightly) along with the toolchain(s) of your preference.
Then clone the repository and use Cargo to build the project from the source.
git clone https://github.com/static-web-server/static-web-server.git
+ Building from Source - Static Web Server
Static Web Server Building from Source
Building from Source¶
Follow these instructions to either build SWS project from the source or the HTML documentation.
Building project from source¶
If you want to build SWS from the source, all you need is a Rust 2021 Edition installed.
So make sure to install Rust 1.85.0 or newer (or nightly) along with the toolchain(s) of your preference.
Then clone the repository and use Cargo to build the project from the source.
git clone https://github.com/static-web-server/static-web-server.git
cd static-web-server
cargo build --release
Finally, the release binary should be available at target/release/static-web-server or under your toolchain directory chosen.
Don't use the project's Makefile
Please don't use the project's Makefile since it's only intended for development and some on-demand tasks.
Cargo features¶
When building from the source, all features are enabled by default. However, you can disable just the ones you don't need from the lists below.
Feature Description Default default Activates the default features by omission. all Activates all available features including the experimental feature. This is the default feature used when building SWS binaries. experimental Activates all SWS experimental features. Make sure to also provide the required RUSTFLAGS if the feature requires so. HTTP2/TLS http2 Activates the HTTP2 and TLS feature. Compression compression Activates auto-compression and compression static with all supported algorithms. compression-brotli Activates auto-compression/compression static with only the brotli algorithm. compression-deflate Activates auto-compression/compression static with only the deflate algorithm. compression-gzip Activates auto-compression/compression static with only the gzip algorithm. compression-zstd Activates auto-compression/compression static with only the zstd algorithm. Directory Listing directory-listing Activates the directory listing feature. Basic Authorization basic-auth Activates the Basic HTTP Authorization Schema feature. Fallback Page fallback-page Activates the Fallback Page feature.
Disable all default features¶
For example, if you want to run or build SWS without the default features like compression, http2, etc then just try:
# run
@@ -34,4 +34,5 @@
Output the docs in a different directory
If you want to output the docs in a different directory then append the --site-dir=/new/dir/path/ argument to the "squidfunk/mkdocs-material" build command and make sure to provide the new directory path.
Development server¶
If you want to improve the documentation then run the built-in development server via docs/docker-compose.yml.
git clone https://github.com/static-web-server/static-web-server.git
cd static-web-server
docker-compose -f docs/docker-compose.yml up
-
Now the server will be available at localhost:8000
\ No newline at end of file
+Now the server will be available at localhost:8000
Formatting Markdown files¶
This project makes use of mdformat to format Markdown files. The CI job devel-project-docs checks that all Markdown files are formatted correctly.
To format documentation changes, you can run mdformat manually using uv:
uvx --python ">=3.13" --with mdformat-mkdocs mdformat ./*.md docs/
+