patrickhener / Goshs
Programming Languages
Projects that are alternatives of or similar to Goshs
goshs is a replacement for Python's SimpleHTTPServer
. It allows uploading and downloading via HTTP/S with either self-signed certificate or user provided certificate and you can use HTTP basic auth.
Features
- Download or view files
- Bulk download as .zip file
- Upload files
- Basic Authentication
- Transport Layer Security (HTTPS)
- self-signed
- provide own certificate
- Non persistent clipboard
- Download clipboard entries as .json file
Installation
Release
You can download the executable from the release section
Go
go get -u github.com/patrickhener/goshs
go install github.com/patrickhener/goshs
Build yourself
git clone https://github.com/patrickhener/goshs.git
cd goshs
make build
Usage
Usage: goshs [options]
Web server options:
-i The ip to listen on (default: 0.0.0.0)
-p The port to listen on (default: 8000)
-d The web root directory (default: current working path)
TLS options:
-s Use TLS
-ss Use a self-signed certificate
-sk Path to server key
-sc Path to server certificate
Authentication options:
-P Use basic authentication password (user: gopher)
Misc options:
-v Print the current goshs version
Usage examples:
Start with default values: ./goshs
Start with different port: ./goshs -p 8080
Start with self-signed cert: ./goshs -s -ss
Start with custom cert: ./goshs -s -sk <path to key> -sc <path to cert>
Start with basic auth: ./goshs -P $up3r$3cur3
Examples
Serve from your current directory
goshs
Serve from another directory
goshs -d /path/to/directory
Serve from port 1337
goshs -p 1337
Password protect the service
goshs -P VeryS3cureP4$$w0rd
Please note: goshs uses HTTP basic authentication. It is recommended to use SSL option with basic authentication to prevent from credentials beeing transfered in cleartext over the line. User is gopher
.
Use TLS connection
Self-Signed
goshs -s -ss
Provide own certificate
goshs -s -sk server.key -sc server.crt
Credits
A special thank you goes to sc0tfree for inspiring this project with his project updog written in Python.
Tutorial Series
I wrote several blog posts how and why I implemented all of this. You can find it here if you are interested about the technical background.