This API is designed to run on both a NUC running a custom Arch Linux image, and Windows PC's off of a flashdrive.
Open a terminal and cd into the api root, to set configuration options follow the Configuration section after building. The Makefile has options for various standard builds. Building the api binary with the Makefile will also generate a fresh Certificate, private key, and encrypted user password in the pdfs/keys
directory. Note that this will overwrite any existing content.
The only requirement before building is that you update the value for ADMIN_PASSWORD
in the Makefile to include the desired admin password. Similarly, be sure to add a value for PK_PASSWORD
in the Makefile to include the PDF password. Alternatively, both these values can be set in the Make command, as described below. Note that these passwords should be entirely separate, but that both should be memorable.
go build -ldflags="-w -s" -o api
make chromebook ADMIN_PASSWORD=admin_password PK_PASSWORD=key_password
make window ADMIN_PASSWORD=admin_password PK_PASSWORD=key_password
make mac ADMIN_PASSWORD=admin_password PK_PASSWORD=key_password
docker build -e "admin_password=password123" \
-e "signing_key=asdfjkl12345 \
-e "elastic_addr=http://localhost:9200" -t pep-api .
When the api binary is in the same directory as a directory pdfs
with unencrypted PDF files, you can run ./api encrypt
to encrypt all pdfs in the directory using the encrypted symmetric key.
Skip this section if you built using docker. The configuration option are set at build time during a Docker build.
./api generate -p admin_password -k signing_key -e elastic_addr -s
Replace admin_password
, signing_key
, and elastic_addr
with your desired settings.
The resulting config file will be located at $HOME/.labs.toml
Once the API is configured, you can run it using ./api serve