Advanced UI for Hoover
Working on the UI needs a recent nodejs (see 'engine' in package.json for the version currently used).
-
Download the code, install dependencies
git clone https://github.com/liquidinvestigations/hoover-ui.git cd hoover-ui npm install
-
Development server
npm run dev
-
Production server
npm run build npm run prod
All servers listen on port 8000.
You can work on this repository by either using some already existing backend service (that you have a login for) or you can run the whole stack locally.
To run UI on localhost set environment variable API_URL=https://hoover.your.server.url
and REWRITE_API=true
Also add NODE_TLS_REJECT_UNAUTHORIZED=0
to allow local proxy without SSL.
You can set environment variables in your OS shell or as a part of the startup script in package.json
"scripts": {
...
"dev": "cross-env API_URL=https://hoover.your.server.url REWRITE_API=1 NODE_TLS_REJECT_UNAUTHORIZED=0 next dev -p 8000 -H 0.0.0.0",
...
}
In order to get authorized just copy _oauth2_proxy_hoover_your.server.url
cookie using browser's development tools
(Application -> Cookies
in Chrome DevTools, Storage -> Cookies
in Firefox Firebug).
- Login to
https://your.server.url
and go toHoover
- Open
Cookies
in development tools, find_oauth2_proxy...
cookie underhttps://your.server.url
, copy cookie name - Start your dev server, open development tools for it, go to
Cookies
, paste cookie name inhttp://localhost:8000
- Copy & paste cookie value repeating steps 2-3
You can use the npm.docker.sh
script instead of the binary npm
on your
machine. This will run a docker image as your user and run npm
on its
arguments.
Example usage: ./npm.docker.sh test -- -u
If you're running on a Mac with an M1 chip architecture and you encounter segfault errors while setting up the project, it may be due to an incompatibility issue with the node version you're using. Node.js versions prior to v16 may not have official support for M1 chip architecture, causing errors such as "qemu: uncaught target signal 11 (Segmentation fault) - core dumped".
To solve this problem, you can try upgrading to a version of Node.js that has official support for M1 chip architecture. As of writing, Node.js v16 is the first version to have official support, but it's always recommended to use the latest version available. You can download the latest version from the official Node.js website or by using Node Version Manager (NVM).
You will need to meet the hardware requirements - have at least 16GB RAM free if you only want to run Hoover.
Run Liquid Investigations with mount_local_repos
= True. You can change the code in your local repository there.
Upgrading the node version requires a version bump in the following files:
- package.json (
engine
) - .travis.yml
- Dockerfile
The project uses the following icon libraries:
- MaterialUI Icons
- Font Awesome (free, solid)
Any additional library with icons in SVG format can be added, for example Bootstrap Icons
- API_RETRY_DELAY_MIN (default 500) - api retry min delay in milliseconds
- API_RETRY_DELAY_MAX (default 10000) - api retry max delay in milliseconds
- API_RETRY_COUNT (default 4) - api max retries
- ASYNC_SEARCH_POLL_SIZE (default 6) - max concurrent async search
- ASYNC_SEARCH_POLL_INTERVAL (default 45) - interval between search requests in asynchronous mode
- ASYNC_SEARCH_ERROR_MULTIPLIER (default 2) - async task initial ETA multiplier after which search request fails
- ASYNC_SEARCH_ERROR_SUMMATION (default 60) - async task initial ETA summation seconds after which search request fails
- HOOVER_MAPS_ENABLED (boolean default true) - show maps link in top menu
- HOOVER_UPLOADS_ENABLED (boolean default true) - show uploads link in top menu
- HOOVER_TRANSLATION_ENABLED (boolean default true) - shows translation link in top menu