goshs

command module
v1.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 12, 2025 License: MIT Imports: 18 Imported by: 0

README

Version GitHub GitHub go.mod Go version GitHub issues goreleaser Go Report Card

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

goshs-screenshot-light goshs-screenshot-dark

Documentation

For a detailed documentation go to 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)
  • 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

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@latest

Build yourself

Building requirements are ugilfy-js and sass. After installing this packages you can easily just:

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 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:

Security issues shout out

These are the awesome contributors that made goshs even more secure ❤

Community

Join the Discord Community and start connecting.

Join Discord

Star History

Star History Chart

Credits

A special thank you goes to sc0tfree for inspiring this project with his project updog written in Python.

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
Package ca will handle the creation of certificates for TSL encrypted communication Credits: Shane Utt https://shaneutt.com/blog/golang-ca-and-signed-cert-go/
Package ca will handle the creation of certificates for TSL encrypted communication Credits: Shane Utt https://shaneutt.com/blog/golang-ca-and-signed-cert-go/
Package clipboard will provide the functionality of a clipboard
Package clipboard will provide the functionality of a clipboard
Package httpserver will contain the main httpserver functionality of goshs
Package httpserver will contain the main httpserver functionality of goshs
Package logger will take care of all logging messages using logrus
Package logger will take care of all logging messages using logrus
Package utils has general utility functions
Package utils has general utility functions
Package ws will provide websocket functionality to keep the browser windows in sync
Package ws will provide websocket functionality to keep the browser windows in sync

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL