JSPM

  • Created
  • Published
  • Downloads 150
  • Score
    100M100P100Q76722F
  • License MIT

Simple share folder via http with upload

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (http-up) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    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 running without install

    npx http-up .

    or

    npx http-up --port 3999 /path/to/fold

    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

    Buttons share/rename/edit

    Edit button work with formats html, rtf, doc, docx, odt.

    For document online edit you need libreoffice package.

    Motivation for share button

    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

    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 --user login1 --password EAJteG5 .

    The safest run

    npx http-up --tls --basic /path/to/you

    read for TLS Support below

    Only share

    npx http-up --upload-disable --folder-make-disable /tmp/fold

    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

    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, you will edit it with code editor.

    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

    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.

    Server will be encrypt upload file:

    npx http-up --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:

    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)

    Server will be decrypt download file (case 2):

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

    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

    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

    Linux packages needs for full functional

    • md5sum (coreutils package) - make md5 sum of file
    • convert (ImageMagick package) - for make thumbnails
    • libreoffice - for doc thumbnails, for doc files online edit
    • openssl - encrypt file support, package for certs build
    • zip - 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

    • 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

    2.4.2

    • generate tls keys via openssl directly: remove easyrsa dependence

    2.4.0

    • 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

    other history here

    Any questions

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