Advanced one-liners¶
Each release also carries install scripts, for a server you reach over SSH, a distribution without a package, or installing many machines the same way. They install the same server as the macOS, Windows and Linux installers.
Jarvis Automation is a pre-release (release candidate rc18). Builds are on the releases page; each one is marked Pre-release, so open the newest and look under Assets.
| Script | Installs | Runs on |
|---|---|---|
install.sh |
the server | Linux with systemd (amd64, arm64), macOS on Apple silicon |
install.ps1 |
the server | Windows (Windows PowerShell 5.1 or later) |
install-agent.sh |
the desktop agent | any Linux |
install-pi.sh |
a Raspberry Pi voice node (preview) | Raspberry Pi OS, 64-bit |
Use the release's own link¶
While only pre-releases exist, take each script from its release's own address. GitHub's "latest release" links skip pre-releases, so they lead nowhere. The commands below use v0.1.0-rc18 as the example tag: replace it with the newest tag on the releases page. A script installs the release it came from.
Linux and macOS: install.sh¶
curl -fsSLO https://github.com/alexberardi/jarvis-server/releases/download/v0.1.0-rc18/install.sh
less install.sh # read it first
sh install.sh # asks for sudo
Download it, then run it: piped straight into sh, a failed download would leave nothing to run, with no error.
The script:
- downloads the server for your system and checks it against the release's
SHA256SUMS, and the signature of that file too whenminisignis installed (below); - places it in
/usr/local/bin/jarvisdand registers the service (jarvisd service install); - runs
jarvisd doctorand offers to open the firewall for your local network (answer Y, the default, unless you manage the firewall yourself); - prints the setup link, which looks like
http://<server-ip>:7710/setup#token=…, and a QR code of it.
Open the link in a browser, or scan the QR code with your phone, to start the setup wizard. The part after #token= is the setup token; keep it to yourself.
Run the same script again to upgrade to the release it came from; see Upgrade.
Options¶
Put them after sh install.sh. sh install.sh --help lists them too.
| Option | What it does |
|---|---|
--version <tag> |
Install that release, such as v0.1.0-rc18, instead of the one the script came from. |
--user |
Linux only: run the server as a service of your own account, without root. The program goes to ~/.local/bin, the data to ~/.jarvisd. Run it without sudo. |
--yes |
Answer yes for you: apply the firewall fix without asking. Use it where there is no terminal to ask in. |
--stop-legacy |
Stop the old Docker install on the same machine (its containers, and on macOS its background services and admin), so the new server can take its ports. Nothing is deleted. See Migrating from the old install. |
--force |
Reinstall even when this version is already installed. |
--uninstall |
Remove the service, the firewall rules and the program. Your data is kept. See Uninstall. |
--purge |
With --uninstall: also delete the data, after you type a confirmation. |
--base-url <url> |
Fetch the release files from your own mirror instead of GitHub (also JARVISD_RELEASE_BASE). The signature is still checked. |
Intel Macs are not supported. A Linux machine without systemd needs the release's archive and your own supervisor running jarvisd serve.
Windows: install.ps1¶
In PowerShell (it asks for administrator rights if it doesn't have them):
It does what install.sh does: checks the download, places the server in %ProgramFiles%\jarvisd, registers the Windows service, offers the firewall rule for your local network and prints the setup link.
Options¶
Options need the downloaded file:
| Option | What it does |
|---|---|
-Version <tag> |
Install that release instead of the one the script came from. |
-Yes |
Apply the firewall fix without asking. |
-StopLegacy |
Stop the old Docker install's containers. Nothing is deleted. |
-Force |
Reinstall even when this version is already installed. |
-Uninstall |
Remove the service, the firewall rule, the program and its PATH entry. Your data is kept. |
-Purge |
With -Uninstall: also delete %ProgramData%\jarvisd, after a confirmation. |
-BaseUrl <url> |
Fetch the release files from your own mirror instead of GitHub. |
Under irm | iex there is no file to pass options to; set them as environment variables first: JARVISD_VERSION for -Version, JARVISD_RELEASE_BASE for -BaseUrl, and JARVISD_YES=1 for -Yes.
Check a download¶
Each release carries SHA256SUMS, the checksums of its installers and archives, and SHA256SUMS.minisig, the project's signature of that file. The install scripts themselves are not in SHA256SUMS: they come over HTTPS from the release, so read them before you run them.
To check a file by hand, download it with SHA256SUMS and SHA256SUMS.minisig into one folder, then check the signature with minisign and the file against the list:
minisign -Vm SHA256SUMS -P RWRyW6ICtU+iyX4p4RnS24ju0gRsWpxvv6B8pI9G+ZS01q8t8oupAQ8L
sha256sum --ignore-missing -c SHA256SUMS
RWRyW6ICtU+iyX4p4RnS24ju0gRsWpxvv6B8pI9G+ZS01q8t8oupAQ8L is the project's public key, the same one the server trusts when it upgrades itself. On macOS, compare shasum -a 256 <file>, and on Windows Get-FileHash <file> in PowerShell, with the file's line in SHA256SUMS.
install.sh does the same check when minisign is installed; without it, it checks the checksums only and says so. Upgrades are always signature-checked by the server itself.