Skip to content

western/http-here

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

http-here

Simple zero-configuration command line http server with lightweight interface to work with files

Share folder via http with upload

Multiple files upload to current showed folder

In extended mode you can doing more

Mobile screen

Install from github

git clone --branch v1.12.2 https://github.com/western/http-here
cd http-here
make build

or

go install github.com/western/http-here/cmd/http-here@v1.12.2

Manual download

linux / amd64

# go to your home bin
cd ~/bin

# download and unpack
wget https://github.com/western/http-here/releases/download/v1.12.2/http-here.gz
gzip -d http-here.gz

chmod +x http-here

windows / amd64

https://github.com/western/http-here/releases/download/v1.12.2/http-here.zip

Run

http-here /tmp

or

http-here --port 7999 /path/to/folder

If you switch --extend-mode

http-here --extend-mode /tmp

App will change main list view to table. And you can operate with files - delete, move, copy

Below you see display width more than 992 pix (1), less than (2) and mobile window (3):

Important

During group operations COPY or MOVE all target files/folders will be rewrite

Preview doc button

For Thumbnails support read below

Basic auth

Important

It is recommend for work on public network interfaces

every time when you start, you get a list of random accounts

http-here --basic .

or only one basic auth specific user

http-here --user loginXX --password MugMf7AHs .

The safest run

http-here --tls --basic /path/to/you

read for TLS Support below

Only share

http-here --upload-disable --folder-make-disable /tmp/fold

Run with prefork

Prefork help to handle with multiple heavy query (big image gallery as example)

http-here --prefork --extend-mode /tmp

Online editor

You can online edit files html, rtf, doc, docx, odt as office files.

Or html, txt, js, css, md formats as source code.

You need libreoffice package for office files.

Office files follow this flow: file.doc => file.html, edit => file.doc

File encrypt

Important

Be careful. If you download .crypt file with WRONG password, it file will be contain MESS of bytes


Your server need package openssl. It will be use openssl aes-256-cbc

http-here --extend-mode --crypt /tmp

Then, set your passcode to the form. The passcode store on the form between requests and you not need input it every time (if you clear it server will not use openssl).

During the process of uploading, your files will be encrypt and their EXT change to .crypt

When files lying on your server, their data is encrypted.

If you need decrypt any .crypt flles, set your passcode, and click on file. During download this file, it will be decrypt on the fly.

Server will be encrypt upload file:

http-here --extend-mode --crypt /tmp
  • if you set --crypt arg on cmd
  • if you set passcode (pass code set by form)

Server will be decrypt download file:

http-here --extend-mode --crypt /tmp
  • if you set --crypt arg on cmd
  • if filename contain .crypt extension
  • if you set right passcode (pass code set by form)

Server will be decrypt download file (case 2):

http-here /tmp
  • if filename contain .crypt extension
  • if you get file with code param: /fold3/file.jpg.crypt?code=YOUR_PASS_HERE

Notes

Caution

Be careful, if you start this App on public network interface, anybody can work with it

Caution

Always run this app only under unprivileged common user

  • If you run application under some User, this user should be have privileges to write current folder

Automatic TLS keys generate

  • For start HTTPS server you need easyrsa (easy-rsa) linux package
  • Since version v1.12.0 you not need easyrsa
  • When you start server with --tls option, all keys generate automatically
http-here --tls .
  • Server use self signed certs, generated at first time. Thus you need approve this connection on your clients.

Magic file index.html inside any folder

If you put inside folder file index.html, it will be return as context

Thumbnails support

For document preview you need libreoffice package. Formats pdf, rtf, doc, docx, xls, xlsx, odt, ods.

For jpg, gif, png you not need anything.

All previews generate during first view. One time.

Linux packages needs for full functional

  • libreoffice - for doc thumbnails, for doc files online edit
  • easyrsa (easy-rsa) - package for certs build (for versions before v1.12.0)
  • openssl - encrypt file support

API

western/http-here/refs/heads/dev/internal/docs/openapi.yaml

You can ask any question or suggest something

https://github.com/western/http-here/issues

History

backlog

  • add --log and --tee args for save output (or database?)
  • change background actions for FS drivers (i need one abstraction layer)
  • problem: how decide to run md5sum inside some folder
  • database, separate branch without?
  • tests
  • make builder for configure app compiler? as example - add all libraries to local assets, jquery, bootstrap, bootstrap-icons
  • prepare frontend react code
  • REST restructure

1.12.2

  • modal dialogs set focus
  • app/thumb: return without resize by file size
  • app/thumb: add error 'hex_name is empty'
  • conf: set Files_count_max to 200
  • fix edit: 1) folderTree_src is null 2) edit files in root directory

1.12.1

  • new cmd argument --silence
  • new cmd argument --nolog
  • change API
  • add API description
  • set focus on input for dialogs
  • set focus on input for dialogs SPA

1.12.0

  • TLS keys generate without any external utils (not need any easy-rsa)
  • control thumbnails and temporary html after edit
  • edit: return 500 instead panic, some stable
  • rewrited util.LogPrefix => model.EventLogAdd
  • prepare windows build
  • windows libreoffice support
  • clear code
  • fix breadcrumbs view for mobile and SPA
  • spa fix: button overlay for mobile

1.11.4

  • redirect if you try open folder during SPA application mode
  • fix refresh doc thumbnails after edit
  • change layouts for errors
  • project code restructuring

1.11.3

  • run WalkAndTreeBuild only for extend mode
  • change view for default mode
  • fix for mobile upload

1.11.0

  • database support
  • "make new file" button and API
  • search button and API
  • first TLS key files generate without verbosity
  • body limit up to 14 GB
  • max upload files up to 100
  • add SPA version
  • new API: /api/list /__convert/filename.docx /api/search
  • use clipboard for SPA client group operations

Mascot

Pirates hiding their http