Building self-contained binaries
Starting with Hereditas 0.2, in addition to generating a set of files to be served via HTTP, you can also build a self-contained binary that can be distributed as an app without further dependencies. This binary launches a local web server, and it contains and serves all of your Hereditas box, including the (encrypted) files.
hereditas pack command, run inside your Hereditas working directory, automatically builds binaries for Windows (32-bit and 64-bit), macOS, and Linux (amd64, i386, arm64, armv7).
There are a few requirements before you can run the
hereditas pack command (the CLI will check them for you too):
- You need to have the Go compiler installed in your laptop, at least version 1.13.
- You need to have packr2 installed in your laptop and available in your
PATH; you can fetch it with
go get -u github.com/gobuffalo/packr/v2/packr2or you can get a pre-compiled binary.
- The URL
http://localhost:8080must be allowed for your Hereditas box. You can do that with
hereditas url:add -u http://localhost:8080(and then
- You must have already built your Hereditas box. That is, you must have run the
Build the binaries
hereditas pack command to automatically build the binaries; this can take a couple of minutes.
The binaries will be placed in the
~/hereditas $ ls _bin hereditas-box-linux-386 hereditas-box-linux-amd64 hereditas-box-linux-arm64 hereditas-box-linux-armv7 hereditas-box-macos hereditas-box-win32.exe hereditas-box-win64.exe
Pick the right binary for your system(s) and distribute them in any way you see fit.
macOS and Gatekeeper: Hereditas does not sign the macOS binary, as that requires a developer certificate from Apple. The app you compile will run in your Mac without issues, but if you distribute it to other people, Gatekeeper might refuse to run it as it’s unsigned. Read more about Gatekeeper in the Apple support site.
Running the self-contained app
Most users will be able to open your Hereditas box by double-clicking on the binary.
The app runs in the command line, and it should automatically open a terminal if you launch it through your operating system’s shell.
The app launches a web server listening on
127.0.0.1 and on port
8080. It will then automatically open the user’s default web browser (if possible) with the URL