https://github.com/0xor0ne/ssfs
Simple Secure Static (HTTPS) File Server with embedded certificate
https://github.com/0xor0ne/ssfs
file-server https https-server rust rust-lang
Last synced: 3 months ago
JSON representation
Simple Secure Static (HTTPS) File Server with embedded certificate
- Host: GitHub
- URL: https://github.com/0xor0ne/ssfs
- Owner: 0xor0ne
- License: apache-2.0
- Created: 2023-04-07T10:55:15.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-04-09T16:14:12.000Z (over 2 years ago)
- Last Synced: 2025-07-05T07:03:40.341Z (3 months ago)
- Topics: file-server, https, https-server, rust, rust-lang
- Language: Rust
- Homepage:
- Size: 25.4 KB
- Stars: 46
- Watchers: 2
- Forks: 22
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Secure Static File Server
Static Files HTTPs server with self signed embedded certificate
## Installation
Install using cargo:
```bash
cargo install ssfs
```Or build from source:
```bash
git clone https://github.com/0xor0ne/ssfs
cd ssfs
cargo build --release
# executable in target/release/ssfs
```## Usage
General usage:
```bash
ssfs [--port ] [--ip ]
````--port` and `--ip` are optional and their default values are:
- `--port`: 8443
- `--ip`: `0.0.0.0``ssfs` will serve files present in its current working directory and
sub-directories.### Examples
The following examples assume `ssfs` is present in current $PATH. If this is not
the case, run `ssfs` by specifying the full path to the executable or copy
`ssfs` in the directory where the files to be served are located and run it with
`./ssfs`.Run `ssfs` on port 9000:
```bash
ssfs --port 9000
```You can use `curl` with the `--insecure` option to connect to the server:
```bash
curl --insecure https://:9000/
```you can download a specific file by using the path to the file (e.g.
`path/to/file.txt`):```bash
curl --insecure https://:9000/path/to/file.txt
```This is an example of log printed by the server:
```bash
Starting server at: https://0.0.0.0:9000
[2023-04-09T15:59:47Z INFO actix_server::builder] starting 10 workers
[2023-04-09T15:59:47Z INFO actix_server::server] Actix runtime found; starting in Actix runtime
[2023-04-09T15:59:54Z INFO ssfs] 127.0.0.1 curl/7.79.1 GET /path/to/file.txt HTTP/2.0 /path/to/file.txt
```You can also connect to the server using a standard web browser and set the
browser to trust the self signed certificate.## Certificate and Key
`ssfs` comes with pre-generate server certificate and key. They are located in:
- `assets/cert.pem`
- `assets/key.pem`These two files are embedded into the `ssfs` executable during build.
If you want to use different certificate and key the the ones provided, you can
use run the following scripts for generating a new pair of certificate and key:```bash
./scripts/generate_cert_and_key.sh
```## License
Licensed under either of
- Apache License, Version 2.0 ([LICENSE-APACHE](LICENSE-APACHE) or
http://www.apache.org/licenses/LICENSE-2.0)
- MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)at your option.
### Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.