An open API service indexing awesome lists of open source software.

https://github.com/patrickhener/goshs

A SimpleHTTPServer written in Go, enhanced with features and with a nice design
https://github.com/patrickhener/goshs

go golang http http-server javascript server webserver

Last synced: 17 days ago
JSON representation

A SimpleHTTPServer written in Go, enhanced with features and with a nice design

Awesome Lists containing this project

README

          

![Version](https://img.shields.io/badge/Version-v1.1.4-green)
[![GitHub](https://img.shields.io/github/license/patrickhener/goshs)](https://github.com/patrickhener/goshs/blob/master/LICENSE)
![GitHub go.mod Go version](https://img.shields.io/github/go-mod/go-version/patrickhener/goshs)
[![GitHub issues](https://img.shields.io/github/issues-raw/patrickhener/goshs)](https://github.com/patrickhener/goshs/issues)
![goreleaser](https://github.com/patrickhener/goshs/workflows/goreleaser/badge.svg)
[![Go Report Card](https://goreportcard.com/badge/github.com/patrickhener/goshs)](https://goreportcard.com/report/github.com/patrickhener/goshs)

goshs-logo

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.

![intro](https://github.com/patrickhener/image-cdn/blob/main/goshs.gif)

goshs-screenshot-light
goshs-screenshot-dark

# Documentation

For a detailed documentation go to [goshs.de](https://goshs.de)

# Features
* Download or view files
* Bulk download as .zip file
* QRCode
* Upload files
* POST request
* PUT request
* Drag & Drop in web interface
* Delete files
* Individually
* Bulk delete
* Authentication
* Basic Authentication
* Certificate Based Authentication via Client Certificate
* Transport Layer Security (HTTPS)
* self-signed
* let's encrypt
* provide own certificate
* Non persistent clipboard
* Download clipboard entries as .json file
* WebDAV support
* Read-Only and Upload-Only mode
* SFTP support
* Read-Only
* Upload-Only
* Key Auth
* Password Auth
* Silent mode (no webserver output)
* Invisible mode (no output whatsoever)
* Retrieve json on cli
* Drop user privileges before execution (Unix only)
* Example: Run on port 80, but process is "www-data"
* Themes
* Dark Mode
* Light Mode
* Command Line
* Run Commands on the system hosting `goshs`
* File Based ACLs
* You can place a `.goshs` in any folder to apply custom ACLs
* You can apply custom basic auth per folder
* You can restrict access to specific files completely
* Embed files on compile time
* Self updating binary
* Write output to a log file
* Control via config file
* Send notifications via webhook
* HTTP Server
* Webdav
* SFTP
* Access control via IP Whitelist
* Proxy Aware
* Share Links
* Share files without authentication
* Use Download Limit
* Use Time Limit
* Tunnel connection via localhost.run
* Expose your local goshs to the internet via localhost.run

# Installation

## Release
You can download the executable from the [release section](https://github.com/patrickhener/goshs/releases)

## Go

```bash
go get -u github.com/patrickhener/goshs
go install github.com/patrickhener/goshs@latest
```

## Build yourself

Building requirements are [ugilfy-js](https://www.npmjs.com/package/uglify-js) and [sass](https://sass-lang.com/install). After installing this packages you can easily just:

```bash
git clone https://github.com/patrickhener/goshs.git
cd goshs
make build-all
```

## Kali repositories

When using kali you can easily just install it via cli, if it is not already installed:

```
sudo apt install goshs
```

## Windows scoop package

If you are using the [scoop package manager](https://scoop.sh/) under Windows, you can install goshs this way:

```
scoop bucket add extras
scoop install extras/goshs
```

## macOS homebrew

```
brew install goshs
```

## Run with docker

```
docker run --rm -it -p 8000:8000 -v "$PWD:/pwd" patrickhener/goshs:latest -d /pwd
```

# Code Contributors

These are the awesome code contributors of `goshs`:

[![](https://github.com/aWZHY0yQH81uOYvH.png?size=50)](https://github.com/aWZHY0yQH81uOYvH)
[![](https://github.com/Hazegard.png?size=50)](https://github.com/Hazegard)
[![](https://github.com/closehandle.png?size=50)](https://github.com/closehandle)
[![](https://github.com/abgordon.png?size=50)](https://github.com/abgordon)

- [parzel](https://github.com/parzel)
- [ty3gx](https://github.com/ty3gx)

# Security issues shout out

These are the awesome contributors that made `goshs` even more secure :heart:

- [Guilhem7](https://github.com/Guilhem7)

# Community

Join the Discord Community and start connecting.

[![Join Discord](https://invidget.switchblade.xyz/3ZnskY8HcJ)](https://discord.gg/3ZnskY8HcJ)

# Star History

[![Star History Chart](https://api.star-history.com/svg?repos=patrickhener/goshs&type=date&legend=top-left)](https://www.star-history.com/#patrickhener/goshs&type=date&legend=top-left)

# Credits

A special thank you goes to *sc0tfree* for inspiring this project with his project [updog](https://github.com/sc0tfree/updog) written in Python.