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
npx http-up .
or
npx http-up --port 3999 /path/to/fold
npx http-up --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
Edit button work with formats html, rtf, doc, docx, odt
.
For document online edit you need libreoffice
package.
Imagine, that you run app with basic auth npx http-up --user XXX --password YYY --extend-mode .
And you not want to share with your login/password
And you need to show only one file
Important
It is recommend for work on public network interfaces
every time when you start, you get a list of random accounts
npx http-up --basic .
or only one basic auth specific user
npx http-up --user login1 --password EAJteG5 .
npx http-up --tls --basic /path/to/you
read for TLS Support below
npx http-up --upload-disable --folder-make-disable /tmp/fold
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
If you set extension for file as rtf, doc, docx, odt
, after create you can edit it with online WYSIWYG.
(For formats rtf, doc, docx, odt
you need libreoffice
package)
If you set extension html, txt, js, css, md
, you will edit it with code editor.
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
npx http-up --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 crypted.
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.
npx http-up --extend-mode --crypt /tmp
- if you set
--crypt
arg on cmd - if you set passcode (pass code set by form)
npx http-up --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)
npx http-up /tmp
- if filename contain
.crypt
extension - if you get file with
code
param:/fold3/file.jpg.crypt?code=YOUR_PASS_HERE
- For start HTTPS server you need
openssl
linux package - When you start server with
--tls
option, all keys generate automatically
npx http-up . --tls
- Server use self signed certs, generated at first time. Thus you need approve this connection on your clients.
After export log data to file
npx http-up --log-export file.json
You can ask show all data for client "192.168.0.102"
inside with jq
:
jq '.[] | select(.ip=="192.168.0.102")' file.json
Or show all events, contain "spring" substring
:
jq '.[] | select(.msg | contains("spring"))' file.json
Or you can work with SQL directly inside .httpup/db
folder
If you put inside folder index.html
, it will be return as content
You need convert
(ImageMagick package) for preview images jpg, png, gif
For document preview you need libreoffice
package. Formats pdf, rtf, doc, docx, xls, xlsx, odt, ods
md5sum
(coreutils package) - make md5 sum of fileconvert
(ImageMagick package) - for make thumbnailslibreoffice
- for doc thumbnails, for doc files online editopenssl
- encrypt file support, package for certs buildzip
- cmd util for zip_and_download
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 target folder
- save whitespaces for filenames?
- what is the lib can resize images enough fast
- database migration
- project needs middleware (or module arch) or not
- TS ?
- rich frontend (react, vue) ?
- search
- should i support no_database version?
- tabs
- generate tls keys via openssl directly: remove easyrsa dependence
- code restructure
- search highlight fix
- API changes
- add player for folder
- more stable for get file (res.sendFile err catch)
- add TAG show for log info
- check move/copy API source and target path