Installation
Envite ships as a single static binary for Linux x86_64, published on the GitHub Releases page of the public repository. It has no runtime dependencies besides the system ssh client, which is only needed for vaults and deploys over SSH.
Quick install
Section titled “Quick install”curl -fsSL https://raw.githubusercontent.com/Kevinsillo/envite/main/install.sh | bashThe installer downloads the archive of the latest release and its SHA256SUMS.txt, checks the checksum and installs the binary to ~/.local/bin/envite. It needs curl, tar and sha256sum, and warns when the install directory is not on your PATH.
Two environment variables change what it does:
| Variable | Effect |
|---|---|
ENVITE_VERSION | Version to install, such as 1.0.0. The latest release by default. |
ENVITE_INSTALL_DIR | Directory for the binary. ~/.local/bin by default. |
curl -fsSL https://raw.githubusercontent.com/Kevinsillo/envite/main/install.sh | ENVITE_VERSION=1.0.0 ENVITE_INSTALL_DIR=/opt/bin bashAfter installing, the installer runs envite --version and checks that it reports the version it installed. Check it yourself at any time:
envite --versionThen start it:
enviteEverything happens in the terminal interface; the few command line options only print information. See First start for what to do next.
Manual install
Section titled “Manual install”Each release has two files: envite-<version>-x86_64-linux-musl.tar.gz, with the binary, its license, the licenses of the third-party components it includes (THIRD-PARTY-LICENSES.md) and a short README.txt, and SHA256SUMS.txt, with the checksum of the archive.
-
Download both files of the release you want from the Releases page, into the same directory.
-
Check the archive against its checksum:
Terminal window sha256sum --check SHA256SUMS.txtThe command must print
OKfor the archive. -
Extract the archive:
Terminal window tar -xzf envite-*-x86_64-linux-musl.tar.gz -
Copy the binary to a directory on your
PATH, for example~/.local/bin:Terminal window install -m 755 envite-*-x86_64-linux-musl/envite ~/.local/bin/envite -
Check that it runs and reports the version you downloaded:
Terminal window envite --version
Requirements
Section titled “Requirements”- Linux on x86_64. The binary is statically linked, so it does not depend on the libraries of your distribution.
- A terminal at least 80 columns wide is recommended; the key hints of every screen fit in 80 columns.
- OpenSSH 7.7 or newer, only for vaults on SSH hosts and deploys to servers. Envite uses your own
sshsetup:~/.ssh/config,known_hosts, the agent andProxyJumpall apply. xdg-open, only for the GitHub and Open issue links of the home screen.curl, only to update envite from envite itself (envite update, Check for updates or the check at startup).
Updating
Section titled “Updating”Pick whichever way is at hand: all three install the same latest release.
envite updateChecks the latest release, asks before installing it and replaces the binary you ran. Add --yes to install without asking, for example from a script. See Command line.
Choose Check for updates in the Menu of the home screen. envite checks in the background, says whether a newer release exists, and installs it after you choose Install in the dialog; it does not quit while it installs. See Tour of the screens.
curl -fsSL https://raw.githubusercontent.com/Kevinsillo/envite/main/install.sh | bashThe one-line installer always installs the latest release over the current binary. You can also replace the binary by hand with the one from a newer release (Manual install).
Check at startup
Section titled “Check at startup”Once a day, the first time you open envite, it asks GitHub for the latest release in the background; starting is never delayed. When a newer release exists, a dialog says envite X is available (current Y) with three answers:
| Answer | Effect |
|---|---|
| Update | Installs it, as Check for updates does. |
| Skip this version | Does not mention this release again; a newer one is announced. |
| Later | Closes the dialog; the next day’s check announces it again. Selected at first, and what Esc does. |
The dialog never replaces another question that is open. Without network, without curl or without a published release, the check fails silently: it only leaves a line in the log, and runs again the next time you start envite. A day counts once a check completes, by the local date of your machine.
To turn it off, clear Check for updates at startup in Options. Check for updates in the Menu keeps working either way.
What an update does
Section titled “What an update does”Command line and Home screen download the release archive and its SHA256SUMS.txt with the system curl, over HTTPS only, and install nothing unless the checksum matches. The new binary is written next to the current one, run once to check that it reports the new version within 10 seconds, and only then put in place of the old one in a single step: an update that fails at any point leaves the installed binary as it was. They need write access to the directory of the binary; for a binary installed by another user or under /usr/local/bin, run the update as a user who can write there, or run the installer again with the same ENVITE_INSTALL_DIR. Restart envite after the update to use the new version.
Vault files keep working: a newer build opens older vaults and upgrades them in memory, writing the new layout on the next save. Once a member saves a vault with a newer build, every member needs a build at least as new to open it, so update the whole team together.
Uninstalling
Section titled “Uninstalling”Delete the binary:
rm ~/.local/bin/enviteEnvite keeps its config.json, its logs/ directory and the default vault directory in the configuration root, ~/.config/envite (or $XDG_CONFIG_HOME/envite). Delete that directory too to remove every trace, after moving any vault you want to keep out of ~/.config/envite/vaults.
License
Section titled “License”The binary is freeware: free to download and use, for personal and commercial purposes, under the envite license. The source code is kept in a private repository, so building from source is not available to the public.