hockit v2.1.2
HockIt File Server
HockIt is super-simple file sharing server software written in NodeJS; it has a web GUI, a JSON API, a CLI, and a standard I/O interface.
Install
Install the package globally to use the hockit executable:
npm i -g hockitYou can start a HockIt server in two commands.
- Run
hockit passwdto set the web GUI password. - Run
hockit startto start the HTTP server.
The HockIt server should now be listening for HTTP requests on port 8080. Try it out by opening the HockIt web GUI via localhost
A .hockit directory containing the default configuration & webroot directory will be created in the current user's home folder.
For setting up HockIt with a HTTPS/SSL certificate, see SSL Configuration
Hock it up there!
You can upload files via CLI in a Terminal, HTTP in a web browser, or via a REST API.
Via HTTP
You can upload and list files via the web GUI. The default HTTP port is 8080, which you can change via hockit port. Before uploading & listing you must set a password via hockit passwd.
Via CLI
$ hockit up ~/Documents/hello.txt
http://my.website.com/p_9GmSee CLI Commands
Via REST API
$ hockit token create helloworld
Generated new HockIt REST API token.
helloworld -> hockitApiToken
$ curl http://my.website.com/up -F "upload=@myfile.png" -H "Authorization: hockitApiToken"
{"error":null,"data":{"files":[{"name":"myfile.png","hash":"0Z5kF","date":1585787847478}],"total":5}}See REST API
CLI Commands
General Syntax: hockit <command> <parameter1> <parameter2>
File Server
listLists all uploaded files and their shortlinks.list <hash>Lists a single uploaded file usinghash.delete <hash>Deletes a file usinghash.up <path>Uploads a file and returns a shortlink to it.startStarts the HockIt HTTP server on this session. If called via a TTY, a REPL session will be started to allow the input of additional commands while the HTTP server is running.
General Configuration
configLists the current HockIt configuration status.config resetResets all configuration settings to default values and unsets all passwords.passwdSets the password for uploading/listing via the web GUI; supplying a blank password unset it and cause some web GUI features to stop working.domain <fqdn>Sets thefqdnfor use in generation of shortlink URLs.port <uri>Binds the HTTP server touri, which can be a port number, host, or socket/handle path.webroot <path>Serves files from given path via the HTTP server. Requires both read & write permissions. The default webroot is located in~/.hockit/webroot
SSL Configuration
Syntax: hockit ssl <option> <parameter>
Running hockit ssl without options will check the validity of the current SSL configuration.
enableEnables HTTPS/SSL and attempts to import the SSL PEM certificate & key files whenhockit startis invoked.disablesDisables HTTPS/SSL and ignores any given certificate/key.cert <path>Sets the filesystempathto the SSL PEM certificate file.cert <unset>Unsets the filesystem path to the SSL PEM certificate file.key <path>Sets the filesystempathto the SSL PEM private key file.key <unset>Unsets the filesystem path to the SSL PEM private key file.passSets the passphrase to the SSL PEM private key file via a TTY.pass <passphrase>Sets the passphrase to the SSL PEM private key file via the standard I/O interface.pass <unset>Unsets the passphrase to the SSL PEM private key file.
API Tokens
Syntax: hockit token <option> <parameter>
Running hockit token without options will list all valid API tokens and their nicknames.
listLists all API tokens.list <nickname>Searches for an API token usngnickname.revoke <nickname>Permanently revokes an API token usingnicknamefrom service, denying all future API requests made with that token.create <nickname>Creates and returns a new API token and indexes it usingnickname.
REST API
Hockit implements a traditional REST API via the Get and Post HTTP request methods; response bodies are in JSON format, and are sometimes omitted in favor of HTTP status codes.
To access the API, you must supply a valid API token in the Authorization HTTP request header. API tokens can be generated and revoked via the CLI, see API Tokens
JSON Response
Tf the HTTP response body is present, it will contain a JSON string with an error property and a data property. If there was no error, then error will be set to null.
Routes
URL Syntax: my.website.com/<command>/<parameter>
/<hash>If a file is found which matches the hash, then GET returns the binary data. Returns HTTP error 404 if no file was found./upUploads a file to the server and redirects to/uploadsto display it. Excpets the request body to contain data of typemultipart/form-data./listLists all uploaded files and their hashes. Returns an array of objects with the propertiesname, andhash./list/<hash>Searches for a file usinghash. Returns an object with the propertiesname, andhash./delete/<hash>Deletes a file usinghash. Returns HTTP 200 on success, and HTTP 404 if the file does not exist./_healthcheckSimply returns an "OK" string. Useful for monitoring the HTTP server uptime and checking that it is operating as expected.
