1075 Commits

Author SHA1 Message Date
Jose Quintana
bc7b7cdde2 chore: update Alpine (3.22.2) & Debian (13.3) Docker images (#619) 2026-01-22 22:00:01 +01:00
Jose Quintana
d76106fc10 refactor: replace unmaintained rustls-pemfile dependency in tls module (#616) 2026-01-13 17:55:36 +01:00
Jose Quintana
df5fb001e8 fix: custom header is not applied when redirect-trailing-slash is disabled (#613)
It fixes an issue where custom headers were not applied for directory requests when the `redirect-trailing-slash` was disabled.
2026-01-11 22:38:37 +01:00
Jose Quintana
865e8e4e89 refactor: improve SWS installer script functionality for Linux/BSDs (#611)
* refactor: improve installer script functionality
* refactor: simplify installer script and installation docs
* fix: typos
2026-01-08 19:21:02 +01:00
Jose Quintana
9fbafcf3f5 fix: installer script failure when used in alpine linux (#610) 2026-01-05 03:53:40 +01:00
Shahar "Dawn" Or
1a31f005bc fix: hidden root path ignored by --ignore-hidden-files feature (#606)
* test: hidden base path not ignored
* fix: hidden base path not ignored
* feat: trace when ignoring a hidden file
2025-12-27 10:31:00 +01:00
Jose Quintana
be04262464 refactor: prefer 'gnueabihf' binary for Debian linux/arm/v7 Docker image (#609) 2025-12-26 16:07:00 +01:00
Jose Quintana
c298a6d0ab chore: remove pull_request trigger from release-docker-devel workflow (#608) 2025-12-26 15:41:12 +01:00
Jose Quintana
beacdbc023 docs: initial showcases page (#605)
https://static-web-server.net/showcases/
2025-12-20 12:47:28 +01:00
github-actions[bot]
520af20a03 docs: v2.40.1 [skip ci] (#601)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-08 04:03:19 +01:00
Jose Quintana
8a930ca88e v2.40.1 v2.40.1 2025-12-08 03:46:49 +01:00
Jose Quintana
9b7297cc49 chore: update dependencies 08-12-2025 (#599) 2025-12-08 03:19:15 +01:00
Jose Quintana
308f0d26ce Merge commit from fork
* refactor: re-organize directory listing module

* chore: skip broken symlinks in directory listing
2025-12-08 02:58:12 +01:00
Matthias Schoettle
dd43d06551 refactor: format check support Markdown files via mdformat (#597)
* chore: format Markdown files with mdformat
* chore: switch to mdformat config file
* chore: add missing trailing slash
* docs: add section about formatting Markdown files
2025-12-07 10:40:21 +01:00
Jose Quintana
ce3a51c6ac refactor: dedicated CI workflow for project documentation checks (#596)
* refactor: dedicated CI workflow for project documentation checks
* chore: remove deprecated v1 references in README.md
2025-12-05 02:05:32 +01:00
github-actions[bot]
f58d6355c1 docs: v2.40.0 [skip ci] (#591)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-11-30 23:36:09 +01:00
Jose Quintana
068d1ea7c4 v2.40.0 v2.40.0 2025-11-30 23:05:23 +01:00
Jose Quintana
5fae6f7eb6 chore: update dependencies 30.11.2025 (#589) 2025-11-30 22:06:54 +01:00
Jose Quintana
c66c791ca9 refactor: prefer dynamically-linked binaries for Debian Docker images (#588)
* refactor: prefer dynamically-linked binaries for debian docker images
* fix: disable dynamically-linked binary execution tests
   As dynamically-linked binaries can not be executed for obvious reasons
* docs: improve os/arch section
2025-11-29 03:04:56 +01:00
Jose Quintana
afddfd6e58 refactor: drop jemalloc in favor of mimalloc for musl targets (#587) 2025-11-28 01:38:35 +01:00
Jose Quintana
ee4b049d3b feat: armv7-unknown-linux-gnueabihf target (#586) 2025-11-27 23:03:54 +01:00
Jose Quintana
ea9f43f404 refactor: move perfcheck workflow behind a PR comment trigger (#584) 2025-11-26 04:47:08 +01:00
Jose Quintana
0fedeb36b4 fix: crate documentation issues (#583)
* chore: improve crate doc checks on ci
* fix: doc_auto_cfg feature has been removed (error)
* fix: bare URLs are not automatically turned into clickable links (warning)
2025-11-26 04:12:17 +01:00
Jose Quintana
55562a1c35 chore: update dependencies 26.11.2025 (#582) 2025-11-26 03:17:33 +01:00
Jose Quintana
557363e128 refactor: replace regex crate with regex-lite to reduce binary size (#581)
It optimizes for binary size by replacing the `regex` crate with its lightweight equivalent (`regex-lite`).
The change reports a binary size reduction of approximately `~500KB`.

x86_64-unknown-linux-musl example:

before (v2.39.0):
8,9M	static-web-server

after:
8,4M    static-web-server
2025-11-20 01:19:38 +01:00
Jose Quintana
ce5b4fab30 refactor: drop lazy_static for fixed text mime types in compression (#580)
It removes the `lazy_static` dependency in favor of a fixed text-mime type list in the `compression` module.
2025-11-20 00:53:08 +01:00
Jose Quintana
b23498458f refactor: Rootless Debian and Alpine Docker images by default (#567)
* chore: setup user public directory, permissions and symlink
* chore: alpine and debian rootless
* docs: rootless information
2025-11-17 23:22:20 +01:00
Jose Quintana
d48da4ca06 refactor: simplify public dir for docker image & default error pages (#579) 2025-11-15 21:48:54 +01:00
Francis Tseng
326abbe7d5 feat: add exit_on_error option to Server::run_server_on_rt function (#578)
* feat: add `exit_on_error` option when starting server to choose if the
entire process exits if the server fails to start
* Update src/server.rs
* style: formatting fix

---------

Co-authored-by: Francis Tseng <accounts@frnsys.com>
Co-authored-by: Jose Quintana <1700322+joseluisq@users.noreply.github.com>
2025-11-15 10:58:18 +01:00
David Legrand
2c25d823f2 feat: content negotiation for markdown files via Accept header (#577)
* feat: add accept markdown

* docs: add accept markdown feature

* fix: cors error detected by clippy in CI

* fix: simplify markdown handling

* chore: add accept markdown integration tests

* chore: move accept markdown test files

* fix: after review
2025-11-06 15:44:20 +01:00
Jose Quintana
db22a69a7b docs: v2.39.0 [skip ci] (#575)
Add missing freebsd x86_64 artifact

- static-web-server-v2.39.0-x86_64-unknown-freebsd.tar.gz
- SHA256SUM: 8ed7e75844f952ad9f20f303187084af4c433ecac4558b2c3268af7f36d0983c
2025-10-26 02:21:44 +01:00
github-actions[bot]
c21d896f5f docs: v2.39.0 [skip ci] (#575)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-10-26 02:02:46 +01:00
Jose Quintana
a6b181e347 v2.39.0 v2.39.0 2025-10-26 02:47:35 +02:00
Jose Quintana
57025e3321 chore: update dependencies 23-10-2025 & MSRV to Rust 1.85.0 (2024 Edition) (#572)
* fix: update dependencies 23-10-2025
* chore: update dependencies 26-10-2025
* chore: update dependencies 26.10.2025 & bump up MSRV to 1.85.0
* fix: lint errors
* fix: style edition 2024

SWS now requires Rust 1.85.0 (Rust 2024 Edition) or later
https://blog.rust-lang.org/2025/02/20/Rust-1.85.0/
2025-10-26 02:04:21 +02:00
Jose Quintana
a7e8fa3272 chore: update Alpine (3.21.5) & Debian (12.12) Docker images (#573) 2025-10-23 22:35:51 +02:00
Jose Quintana
2549119abd fix: virtual hosts don't work with HTTP/2 (#571)
* virtual hosts: support HTTP/2 using :authority

So far, the HTTP host header has been used to determine the hostname
that is being accessed. In HTTP/2, this header is not guaranteed to be
sent. Instead, the ":authority" pseudo-header field is used. This commit
adds a check for that header to make virtual hosts also work with
HTTP/2.

Additionally, this commit adds code to check and remove the port number,
which may or may not be sent as part of the HTTP host header.

* chore: add test cases

---------

Co-authored-by: CrazyCraftix <>
Co-authored-by: joseluisq <1700322+joseluisq@users.noreply.github.com>
2025-10-18 06:35:38 +02:00
github-actions[bot]
648170dc2b docs: v2.38.1 [skip ci] (#565)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-09-09 00:22:54 +02:00
Jose Quintana
71c54dd1f2 v2.38.1 v2.38.1 2025-09-09 00:05:06 +02:00
Jose Quintana
2a0923866f chore: update docker alpine images to 3.21.4 (#563) 2025-09-08 11:05:26 +02:00
Jose Quintana
0b5577085d chore: remove public from Cache-Control header value (#562)
It removes `public` from `Cache-Control` value, leaving max-age=<VALUE>, which can prevent CDN and Basic Authentication issues. See details on #560.

This applies to the "Cache-Control Headers" feature, with no user-breaking changes expected.
2025-09-06 09:20:09 +02:00
Jose Quintana
a522274430 chore: update dependencies 05-09-2025 (#561) 2025-09-05 21:48:50 +02:00
Jose Quintana
c5477fe785 chore: update dependencies 2025-08-23 (#556) 2025-08-23 14:22:41 +02:00
github-actions[bot]
840522c4b2 docs: v2.38.0 [skip ci] (#555)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-07-21 23:02:33 +02:00
Jose Quintana
e15d42fb4c v2.38.0 v2.38.0 2025-07-21 22:37:26 +02:00
Jose Quintana
47ce050388 chore: update Alpine (3.20.7) & Debian (12.11) Docker images (#553) 2025-07-21 22:00:43 +02:00
Jose Quintana
8c435ad010 chore: update dependencies 21.07.2025 & fix clippy lint warnings (#552)
* fix: clippy lint warnings
* chore: update dependencies 21.07.2025
* core: rust version on FreeBSD CI has been bumped up to 1.88.0.
2025-07-21 21:43:51 +02:00
David Legrand
acd838877b feat: prefer a less-generic config file sws.toml as default (#551)
- `sws.toml` used if present
- But `config.toml` has priority if it exists
- A warning message is printed if `config.toml` is used, as it will be removed in a future release previous advice.
2025-07-02 11:09:04 +02:00
Jose Quintana
ac72d4e6be docs: v2.37.0 [skip ci] 2025-06-03 23:28:19 +02:00
Jose Quintana
b67202baea v2.37.0 v2.37.0 2025-06-03 22:31:24 +02:00
Jose Quintana
b56e3c4a96 chore: update dependencies 30.05.2025 and MSRV to 1.82.0 (#546)
* chore: update dependencies 30.05.2025
* chore: format and lint checks for test files on CI
* fix: clippy lint warnings in test files
2025-05-31 23:31:50 +02:00