Install

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

Packages

Debian and Ubuntu

First, add the Pushpin APT repository. In the following shell commands, replace $DIST with your distribution (jessie, trusty, xenial, or yakkety).

sudo apt-get install apt-transport-https \
  software-properties-common
echo deb https://dl.bintray.com/fanout/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 379CE192D401AB61
sudo apt-get update

Then you can install:

sudo apt-get 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.15.0.tar.bz2

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

git clone git://github.com/fanout/pushpin.git
cd pushpin
git checkout develop
git submodule init && git submodule update

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 pkg-config qtbase5-dev libzmq3-dev \
  mongrel2-core zurl

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

brew install pkg-config zeromq qt5 mongrel2 zurl

Compiling

To build the source, run configure and make:

./configure --qtselect=5 && 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 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.

Run on startup

It’s a good idea to have Pushpin managed by a system process manager so that it is run at boot.

If you’re using the Debian/Ubuntu package, then this should already be set up.

If you installed from source, consider adding your own startup script. Here’s an example Systemd config:

[Unit]
Description=pushpin

[Service]
Type=simple
ExecStart=/usr/local/bin/pushpin
Restart=on-failure

[Install]
WantedBy=multi-user.target

Save this as /lib/systemd/system/pushpin.service. It assumes the pushpin executable is installed in the default location. Then launch:

sudo service pushpin start

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.