Host These Things Please - a basic http server for hosting a folder fast and simply
Rust
494
602 commits
updated Aug 7, 2026
Host These Things Please - a basic HTTP server for hosting a folder fast and simply
See the manpage for full list.
-s option).) and port (first free one from range 8000-9999))-w switch)асдф fdsa)index.{html,htm,shtml} from directories (disableable via -i switch)-w specified)-e switch)davfs2 helper, Windows network filesystem support (out-of-box), and the Total Commander WebDAV pluginIf you have cargo installed (you're a Rust developer) all you need to do is:
# unix:
RUSTC_BOOTSTRAP=1 cargo install --git https://github.com/thecoshman/http
rem windows:
set RUSTC_BOOTSTRAP=1
cargo install --git https://github.com/thecoshman/http
(the https crates.io package was http, but is now unpublishable).
Similarly, cargo expressly ignores configuration that lets the crate be built when building through cargo install,
hence the need for manual RUSTC_BOOTSTRAP=1, you may also want to set
cargo install-update-config -e RUSTC_BOOTSTRAP=1 https
for use with cargo-update
This will install http and httplz (identical, disable one or another if they clash) in the folder where all other binaries go.
The brotli-simd feature will enable the SIMD implementation in brotli. Which is currently not compatible with all rustc versions. It may go away (be turned into a no-op) in future as the compatibility table changes.
The following line in /etc/apt/sources.list or equivalent:
deb [signed-by=/etc/apt/keyrings/nabijaczleweli.asc] https://debian.nabijaczleweli.xyz sid main
With my PGP key (the two URLs are interchangeable):
sudo wget -O/etc/apt/keyrings/nabijaczleweli.asc https://debian.nabijaczleweli.xyz/nabijaczleweli.gpg.key
sudo wget -O/etc/apt/keyrings/nabijaczleweli.asc https://nabijaczleweli.xyz/pgp.txt
(you may need to create /etc/apt/keyrings on apt <2.4.0 (<=bullseye) manually).
Then the usual
sudo apt update
sudo apt install http
will work on amd64, i386, and most likely arm64.
See the repository README for more information.
Available from the extra repository as httplz:
pacman -S httplz
If, however, you're not a Rust developer, but you have sh-like shell, you can use an installer (works on Windows and Linux):
curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
# or, if you like taking precautions
sh -c "$(curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh)"
You can change the installation directory by setting the PREFIX environment variable (default - /usr/bin):
PREFIX=$HOME/bin curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
# Windows:
set PREFIX=D:\Akces
curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
If you're on a Debian-based amd64 machine, you can also grab a .deb package from the latest release page.
If you're on Windows and prefer a more guided installation (or you don't have a shell), you can download the Windows installer from the latest release's page. (Note: you can add /D INSTALLDIR to installer command line to change the installation directory.)
The idea is to make a program that can compile down to a simple binary that can be used via Linux CLI to quickly take the current directory and serve it over HTTP. Everything should have sensible defaults such that you do not have to pass parameters like what port to use.
It's not going to be a 'production ready' tool, it's a quick and dirty way of hosting a folder, so whilst I'll try to make it secure, it is not going to be a serious goal.
Rust
91.6%
JavaScript
4.8%
HTML
2.4%
Host These Things Please - a basic http server for hosting a folder fast and simply
Rust
494
602 commits
updated Aug 7, 2026
Host These Things Please - a basic HTTP server for hosting a folder fast and simply
See the manpage for full list.
-s option).) and port (first free one from range 8000-9999))-w switch)асдф fdsa)index.{html,htm,shtml} from directories (disableable via -i switch)-w specified)-e switch)davfs2 helper, Windows network filesystem support (out-of-box), and the Total Commander WebDAV pluginIf you have cargo installed (you're a Rust developer) all you need to do is:
# unix:
RUSTC_BOOTSTRAP=1 cargo install --git https://github.com/thecoshman/http
rem windows:
set RUSTC_BOOTSTRAP=1
cargo install --git https://github.com/thecoshman/http
(the https crates.io package was http, but is now unpublishable).
Similarly, cargo expressly ignores configuration that lets the crate be built when building through cargo install,
hence the need for manual RUSTC_BOOTSTRAP=1, you may also want to set
cargo install-update-config -e RUSTC_BOOTSTRAP=1 https
for use with cargo-update
This will install http and httplz (identical, disable one or another if they clash) in the folder where all other binaries go.
The brotli-simd feature will enable the SIMD implementation in brotli. Which is currently not compatible with all rustc versions. It may go away (be turned into a no-op) in future as the compatibility table changes.
The following line in /etc/apt/sources.list or equivalent:
deb [signed-by=/etc/apt/keyrings/nabijaczleweli.asc] https://debian.nabijaczleweli.xyz sid main
With my PGP key (the two URLs are interchangeable):
sudo wget -O/etc/apt/keyrings/nabijaczleweli.asc https://debian.nabijaczleweli.xyz/nabijaczleweli.gpg.key
sudo wget -O/etc/apt/keyrings/nabijaczleweli.asc https://nabijaczleweli.xyz/pgp.txt
(you may need to create /etc/apt/keyrings on apt <2.4.0 (<=bullseye) manually).
Then the usual
sudo apt update
sudo apt install http
will work on amd64, i386, and most likely arm64.
See the repository README for more information.
Available from the extra repository as httplz:
pacman -S httplz
If, however, you're not a Rust developer, but you have sh-like shell, you can use an installer (works on Windows and Linux):
curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
# or, if you like taking precautions
sh -c "$(curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh)"
You can change the installation directory by setting the PREFIX environment variable (default - /usr/bin):
PREFIX=$HOME/bin curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
# Windows:
set PREFIX=D:\Akces
curl -SsL https://cdn.rawgit.com/thecoshman/http/master/install.sh | sh
If you're on a Debian-based amd64 machine, you can also grab a .deb package from the latest release page.
If you're on Windows and prefer a more guided installation (or you don't have a shell), you can download the Windows installer from the latest release's page. (Note: you can add /D INSTALLDIR to installer command line to change the installation directory.)
The idea is to make a program that can compile down to a simple binary that can be used via Linux CLI to quickly take the current directory and serve it over HTTP. Everything should have sensible defaults such that you do not have to pass parameters like what port to use.
It's not going to be a 'production ready' tool, it's a quick and dirty way of hosting a folder, so whilst I'll try to make it secure, it is not going to be a serious goal.
Rust
91.6%
JavaScript
4.8%
HTML
2.4%