http-up
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 window
Fast run without install
npx http-up .
or
npx http-up --port 3999 /path/to/fold
npx http-up --help
If you switch --extend-mode
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
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
npx http-up --basic .
or only one basic auth specific user
npx http-up --login login1 --password EAJteG5 .
The safest run
npx http-up --tls --basic /path/to/you
read for TLS Support below
Only share
npx http-up --share-only /tmp/fold
it is disable "upload" and disable "make new folder" buttons
Online editor
You can online edit files html, rtf, doc, docx, odt
as office files.
Or html, txt, js, css, md, sh, json
formats as source code.
Or md
as markdown.
You need libreoffice
package for office files.
Office files follow this flow: file.doc => file.html, edit => file.doc
New filename ext
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, sh, json
, you will edit it with code editor.
Automatic TLS keys generate
- 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.
Export log data and how read it
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
Magic file index.html inside any folder
If you put inside folder index.html
, it will be return as content
Thumbnails support
For preview images jpg, png, gif
you not need anything.
For document preview you need libreoffice
package. Formats pdf, rtf, doc, docx, xls, xlsx, odt, ods
Linux packages needs for full functional
libreoffice
- for doc thumbnails, for doc files online editopenssl
- encrypt file support, package for certs buildzip
- cmd util for zip_and_download
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 target folder
History
backlog
- <input disabled="" type="checkbox"> save whitespaces for filenames?
- <input disabled="" type="checkbox"> what is the lib can resize images enough fast
- <input disabled="" type="checkbox"> project needs middleware (or module arch) or not
- <input disabled="" type="checkbox"> TS ?
- <input disabled="" type="checkbox"> rich frontend (react, vue) ?
- <input disabled="" type="checkbox"> tabs
3.1.0
- <input checked="" disabled="" type="checkbox"> thumbnails: rewrite to async
- <input checked="" disabled="" type="checkbox"> thumbnails: removed dependence ImageMagick and md5
- <input checked="" disabled="" type="checkbox"> api/post_file: rewrite to async
- <input checked="" disabled="" type="checkbox"> api/get_all: rewrite to async
- <input checked="" disabled="" type="checkbox"> File implementation
- <input checked="" disabled="" type="checkbox"> new index4.js
- <input checked="" disabled="" type="checkbox"> codemirror bundle update cm6.bundle-20250710.min.js
codemirror:
- <input checked="" disabled="" type="checkbox"> disable autocomplete
- <input checked="" disabled="" type="checkbox"> disable black theme
- <input checked="" disabled="" type="checkbox"> add highlight JSON
editors:
- <input checked="" disabled="" type="checkbox"> open SH as CODE
- <input checked="" disabled="" type="checkbox"> for new SH file - open CODE online editor
- <input checked="" disabled="" type="checkbox"> for new JSON file - open CODE online editor
- <input checked="" disabled="" type="checkbox"> for new MD file - open in MARKDOWN editor
- <input checked="" disabled="" type="checkbox"> fix: ability to save EMPTY source code file
3.0.0
- <input checked="" disabled="" type="checkbox"> fresh packages
- <input checked="" disabled="" type="checkbox"> code rewrite
- <input disabled="" type="checkbox"> async everywhere
- <input checked="" disabled="" type="checkbox"> new MARKDOWN editor
- <input checked="" disabled="" type="checkbox"> database is disabled by default
- <input checked="" disabled="" type="checkbox"> log output disable option
- <input checked="" disabled="" type="checkbox"> remove jquery
- <input checked="" disabled="" type="checkbox"> remove tree_walk, remove bstreeview (rewrite to "clipboard style")
- <input disabled="" type="checkbox"> can i print without template engine? (remove handlebars?)
- <input disabled="" type="checkbox"> facilitate css grid
- <input disabled="" type="checkbox"> combine all css to html page
- <input checked="" disabled="" type="checkbox"> remove SHARE option
- <input checked="" disabled="" type="checkbox"> remove ADMIN console
- <input checked="" disabled="" type="checkbox"> remove file ENCRYPT option