mirror of
https://github.com/openziti/zrok.git
synced 2024-12-11 09:21:01 +01:00
196 lines
4.6 KiB
Plaintext
196 lines
4.6 KiB
Plaintext
---
|
|
title: Install zrok in Linux
|
|
sidebar_label: Linux
|
|
---
|
|
|
|
import { AssetsProvider } from '@site/src/components/assets-context';
|
|
import DownloadCard from '@site/src/components/download-card';
|
|
import styles from '@site/src/css/download-card.module.css';
|
|
import AnsibleRepoSetup from './_ansible_repo_setup.yaml'
|
|
import ConcatenateYamlSnippets from '@site/src/components/cat-yaml.jsx'
|
|
|
|
## Linux Binary
|
|
|
|
<AssetsProvider>
|
|
<div className={styles.downloadContainer}>
|
|
<DownloadCard
|
|
osName="Linux"
|
|
osLogo="/img/logo-linux.svg"
|
|
/>
|
|
</div>
|
|
</AssetsProvider>
|
|
|
|
Download the binary distribution for your Linux distribution's architecture or run the install script below to pick the correct CPU architecture automatically. For Intel and AMD 64-bit machines use the `amd64` distribution. For Raspberry Pi use the `arm64` distribution.
|
|
|
|
<Details>
|
|
<summary>Manually install in `~/bin/zrok`</summary>
|
|
|
|
1. Unarchive the distribution in a temporary directory.
|
|
|
|
```text
|
|
mkdir /tmp/zrok && tar -xf ./zrok*linux*.tar.gz -C /tmp/zrok
|
|
```
|
|
|
|
1. Install the `zrok` executable.
|
|
|
|
```text
|
|
mkdir -p ~/bin && install /tmp/zrok/zrok ~/bin/
|
|
```
|
|
|
|
1. Add `~/bin` to your shell's executable search path. Optionally add this to your ~/.zshenv to persist the change.
|
|
|
|
```text
|
|
PATH=~/bin:$PATH
|
|
```
|
|
|
|
1. With the `zrok` executable in your path, you can then execute the `zrok` command from your shell:
|
|
|
|
```text
|
|
zrok version
|
|
```
|
|
|
|
```buttonless title="Output"
|
|
_
|
|
_____ __ ___ | | __
|
|
|_ / '__/ _ \| |/ /
|
|
/ /| | | (_) | <
|
|
/___|_| \___/|_|\_\
|
|
|
|
v0.4.0 [c889005]
|
|
```
|
|
|
|
</Details>
|
|
|
|
<Details>
|
|
<summary>Script to install binary in `/usr/local/bin/zrok`</summary>
|
|
|
|
This script auto-selects the correct architecture, and may be helpful for Raspberry Pi users.
|
|
|
|
```text
|
|
(set -euo pipefail;
|
|
|
|
cd $(mktemp -d);
|
|
|
|
ZROK_VERSION=$(
|
|
curl -sSf https://api.github.com/repos/openziti/zrok/releases/latest \
|
|
| jq -r '.tag_name'
|
|
);
|
|
|
|
case $(uname -m) in
|
|
x86_64) GOXARCH=amd64 ;;
|
|
aarch64|arm64) GOXARCH=arm64 ;;
|
|
armv7|armhf|arm) GOXARCH=arm ;;
|
|
*) echo "ERROR: unknown arch '$(uname -m)'" >&2
|
|
exit 1 ;;
|
|
esac;
|
|
|
|
curl -sSfL \
|
|
"https://github.com/openziti/zrok/releases/download/${ZROK_VERSION}/zrok_${ZROK_VERSION#v}_linux_${GOXARCH}.tar.gz" \
|
|
| tar -xz -f -;
|
|
|
|
sudo install -o root -g root ./zrok /usr/local/bin/;
|
|
zrok version;
|
|
)
|
|
```
|
|
|
|
</Details>
|
|
## Install `zrok` from the Repository
|
|
|
|
We recommend that you install `zrok` from the Linux package repository with the manual steps or the setup script. DEB and RPM packages are available for amd64, arm64, and armv7 architectures.
|
|
|
|
:::info
|
|
|
|
Check out [zrok frontdoor](/guides/frontdoor.mdx?os=Linux) for running `zrok` as an always-on service.
|
|
|
|
:::
|
|
|
|
<Details>
|
|
<summary>Manually set up DEB repository</summary>
|
|
|
|
```text
|
|
(set -euo pipefail;
|
|
|
|
curl -sSLf https://get.openziti.io/tun/package-repos.gpg \
|
|
| sudo gpg --dearmor --output /usr/share/keyrings/openziti.gpg;
|
|
sudo chmod a+r /usr/share/keyrings/openziti.gpg;
|
|
|
|
sudo tee /etc/apt/sources.list.d/openziti-release.list >/dev/null <<EOF;
|
|
deb [signed-by=/usr/share/keyrings/openziti.gpg] https://packages.openziti.org/zitipax-openziti-deb-stable debian main
|
|
EOF
|
|
|
|
sudo apt update;
|
|
sudo apt install zrok;
|
|
zrok version;
|
|
)
|
|
```
|
|
|
|
</Details>
|
|
|
|
<Details>
|
|
<summary>Manually set up RPM repository</summary>
|
|
|
|
```text
|
|
(set -euo pipefail;
|
|
|
|
sudo tee /etc/yum.repos.d/openziti-release.repo >/dev/null <<\EOF;
|
|
[OpenZitiRelease]
|
|
name=OpenZiti Release
|
|
baseurl=https://packages.openziti.org/zitipax-openziti-rpm-stable/redhat/$basearch
|
|
enabled=1
|
|
gpgcheck=0
|
|
gpgkey=https://packages.openziti.org/zitipax-openziti-rpm-stable/redhat/$basearch/repodata/repomd.xml.key
|
|
repo_gpgcheck=1
|
|
EOF
|
|
|
|
sudo dnf update;
|
|
sudo dnf install zrok;
|
|
zrok version;
|
|
)
|
|
```
|
|
|
|
</Details>
|
|
|
|
<Details>
|
|
<summary>Script to set up DEB or RPM repository</summary>
|
|
|
|
1. Download the zrok install script.
|
|
|
|
```text
|
|
curl -sSLfo ./zrok-install.bash https://get.openziti.io/install.bash
|
|
```
|
|
|
|
1. Inspect the script to ensure it is suitable to run as root on your system.
|
|
|
|
```text
|
|
less ./zrok-install.bash
|
|
```
|
|
|
|
1. Run the script as root to add the package repo and install the `zrok` package.
|
|
|
|
```text
|
|
sudo bash ./zrok-install.bash zrok
|
|
```
|
|
|
|
</Details>
|
|
|
|
<Details>
|
|
<summary>Ansible Playbook</summary>
|
|
|
|
<ConcatenateYamlSnippets
|
|
title="Set up package repository and install zrok">
|
|
{AnsibleRepoSetup}
|
|
{`
|
|
- name: Install zrok package
|
|
gather_facts: false
|
|
hosts: all
|
|
become: true
|
|
tasks:
|
|
- name: Install zrok
|
|
ansible.builtin.package:
|
|
name: zrok
|
|
state: present
|
|
`}
|
|
</ConcatenateYamlSnippets>
|
|
|
|
</Details>
|