Install

Pushpin runs on Linux and macOS. The latest version is 1.40.1.

Packages

Debian and Ubuntu

First, add the Pushpin APT repository. In the following shell commands, replace $DIST with your distribution (focal, jammy).

sudo apt-get install apt-transport-https \
  software-properties-common
echo deb https://fanout.jfrog.io/artifactory/debian fanout-$DIST main \
  | sudo tee /etc/apt/sources.list.d/fanout.list
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 \
  --recv-keys 7D0343148157C3DF
sudo apt-get update

Then you can install:

sudo apt-get install pushpin

RHEL-8 compatible distributions

First, add the Pushpin Yum respository:

sudo yum install https://fanout.jfrog.io/artifactory/rpm/centos8/fanout-repo-el8-3-1.x86_64.rpm

Then you can install:

sudo yum install pushpin

macOS Homebrew

First, make sure you have Homebrew installed. Then, Pushpin can be installed via brew:

brew install pushpin

Docker

There’s a Docker image available:

docker pull fanout/pushpin

Building from source

The stable source can be downloaded here: pushpin-1.40.1.tar.bz2

For development versions, you can clone the git source repository:

git clone https://github.com/fastly/pushpin.git

Dependencies

If you’re using a recent version of Debian or Ubuntu, then all dependencies can be installed via package management:

sudo apt-get install make pkg-config rustc cargo g++ libzmq3-dev libssl-dev libboost-dev qtbase5-dev

If you’re on macOS, then all dependencies can be installed via Homebrew:

brew install pkg-config rust zeromq boost qt

Compiling

Simply run make:

make

Optionally, you can install:

sudo make install

Pushpin can be run from within the source tree, so installation is up to you.

Running

Running on Debian and Ubuntu

The Debian/Ubuntu package comes with startup scripts.

Start the service like this:

sudo service pushpin start

To terminate:

sudo service pushpin stop

Running on RHEL-8 compatible distributions

The RPM package comes with startup scripts.

Start the service like this:

sudo systemctl start pushpin

To terminate:

sudo systemctl stop pushpin

Running on macOS Homebrew

If you installed the Homebrew package, pushpin should be in your PATH and all you need to do is run it. You should not need to run with sudo.

pushpin

To terminate, press Ctrl-C.

Running with a source install

For source installs, pushpin should be in your PATH and all you need to do is run it, probably with sudo if you installed to a system prefix (the default).

sudo pushpin

If you are running Pushpin from within the source tree, then just run the binary in the base dir:

./pushpin

To terminate, press Ctrl-C.

Upgrading

Pushpin is backwards compatible within the same major version number. This means if you want to upgrade to a newer version that has the same major version number (e.g. upgrade from 1.5 to 1.14), simply update the package and keep using the same config files. If you built from source, you can make install over the old version.

Upgrades to a different major version number (e.g. 1.x to 2.x) may require config file modifications or cause other breaking changes. At this time, all releases have been for major version 1 so there are no such upgrade instructions to provide yet. However, when/if there is ever a Pushpin 2.x, 3.x, and so on, special upgrade instructions will be documented here.