Installation
Install on DEB based systems (Debian, Ubuntu, Kali, Raspbian, …)
Install kuvasz.io APT repository if it is not installed
sudo mkdir -m 0755 -p /etc/apt/keyrings/
wget -O- https://apt.kuvasz.io/kuvasz.gpg | gpg --dearmor | sudo tee /etc/apt/keyrings/kuvasz.gpg > /dev/null
sudo chmod 644 /etc/apt/keyrings/kuvasz.gpg
echo "deb [signed-by=/etc/apt/keyrings/kuvasz.gpg] https://apt.kuvasz.io stable main" | sudo tee /etc/apt/sources.list.d/kuvasz.list
sudo chmod 644 /etc/apt/sources.list.d/kuvasz.list
Install kuvasz-streamer
sudo apt-get update
sudo apt-get install kuvasz-streamer
Install on RPM based systems (RHEL/OEL/RockyLinux/…)
Install kuvasz.io RPM repository if it is not already installed
sudo cat <<EOF > /etc/yum.repos.d/kuvasz.repo
[kuvasz]
name=Kuvasz.io
baseurl=https://rpm.kuvasz.io
enabled=1
gpgcheck=1
gpgkey=https://rpm.kuvasz.io/RPM-GPG-KEY-kuvasz
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
EOF
Install kuvasz-streamer
sudo dnf install -y kuvasz-streamer
Install manually
- Navigate to the Releases Page.
- Scroll down to the Assets section under the version that you want to install.
- Download the .tar,gz or .zip version needed.
- Unzip the package contents.
- Create the necessary config and map files
- Run
Build from source
Building from source assumes you are on Ubuntu 22.04 LTS
Install dependencies
Minimal requirements are Make and git, but you will also need PostgreSQL client for testing.
sudo apt install build-essential git postgresql postgresql-contrib
Install web tools
Install node and yarn to build the web administration interface.
sudo snap install node --channel=20/stable --classic
Install Go and tools
kuvasz-streamer requires Go 1.24 or higher. Install Go and GoReleaser using snaps, then install staticcheck and govulncheck from source and golangci-lint binary from its repository. Finally, add the local Go bin directory to the PATH.
sudo snap install go --channel=1.24/stable --classic
sudo snap install goreleaser --classic
go install honnef.co/go/tools/cmd/staticcheck@latest
go install golang.org/x/vuln/cmd/govulncheck@latest
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v2.4.0
export PATH=${PATH}:$(go env GOPATH)/bin
Clone repository
Clone repo from GitHub
git clone https://github.com/kuvasz-io/kuvasz-streamer.git
cd kuvasz-streamer
Build
This step will download all dependencies and build the web interface and the binary for the underlying architecture
make web
make build
Run code checks
This will run staticcheck and golangci-lint and go vet on the code to ensure it is clean.
make check
Build packages
This will build RPMs, DEBs and tarballs for all supported architectures. Create a GPG key for signing the packages then export it to a file before running the goreleaser command.
gpg --generate-key
gpg --output ${HOME}/private.pgp --armor --export-secret-key <email address used to create key>
export NFPM_DEFAULT_PASSPHRASE=<passphrase>
make release
Run test suite
The test suite relies on Docker to set up instances of all supported version of PostgreSQL and on Robot Framework to run end-to-end tests for all the supported features.
Install Docker
First, install Docker following the instructions here. Then start it with
sudo systemctl enable --now docker
Install pip
Install the pip package manager and Postgres driver
sudo apt install python3-pip
Install Robot Framework
Then use pip to install Robot Framework and its dependencies
pip3 install psycopg2-binary robotframework robotframework-databaselibrary RESTinstance
Run the test suite
make test