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
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
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
http-here /tmp
or
http-here --port 7999 /path/to/folder
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
For Thumbnails support read below
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 .
http-here --tls --basic /path/to/you
read for TLS Support below
http-here --upload-disable --folder-make-disable /tmp/fold
Prefork help to handle with multiple heavy query (big image gallery as example)
http-here --prefork --extend-mode /tmp
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
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.
http-here --extend-mode --crypt /tmp
- if you set
--crypt
arg on cmd - if you set passcode (pass code set by form)
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)
http-here /tmp
- if filename contain
.crypt
extension - if you get file with
code
param:/fold3/file.jpg.crypt?code=YOUR_PASS_HERE
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
- 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.
If you put inside folder file index.html
, it will be return as context
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.
libreoffice
- for doc thumbnails, for doc files online editeasyrsa
(easy-rsa) - package for certs build (for versions before v1.12.0)openssl
- encrypt file support
western/http-here/refs/heads/dev/internal/docs/openapi.yaml
https://github.com/western/http-here/issues
- 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
- 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
- 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
- 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
- redirect if you try open folder during SPA application mode
- fix refresh doc thumbnails after edit
- change layouts for errors
- project code restructuring
- run WalkAndTreeBuild only for extend mode
- change view for default mode
- fix for mobile upload
- 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