Installation

Download the PipelineDB binary for your OS from our downloads page.

RPM

To install the PipelineDB RPM package, run:

sudo rpm -ivh pipelinedb-<version>.rpm

This will install PipelineDB at /usr/lib/pipelinedb. To install at a prefix of your choosing, use the --prefix argument:

sudo rpm -ivh --prefix=/path/to/pipelinedb pipelinedb-<version>.rpm

Debian

To install the PipelineDB Debian package, run:

sudo dpkg -i pipelinedb-<version>.deb

This will install PipelineDB at /usr/lib/pipelinedb.

OS X

Just double-click the pipelinedb-<version>.pkg file to launch the OS X Installer. For older versions of OS X, you might need to install a few packages that PipelineDB depends on:

brew install json-c freexl

Initializing PipelineDB

Once PipelineDB is installed, you can initialize a database directory. This is where PipelineDB will store all the files and data associated with a database. To initialize a data directory, run:

pipeline-init -D <data directory>

where <data directory> is a nonexistent directory. Once this directory has been successfully initialized, you can run a PipelineDB server.

Running PipelineDB

To run the PipelineDB server in the background, use the pipeline-ctl driver and point it to your newly initialized data directory:

pipeline-ctl -D <data directory> -l pipelinedb.log start

The -l option specifies the path of a logfile to log to. The pipeline-ctl driver can also be used to stop running servers:

pipeline-ctl -D <data directory> stop

Run pipeline-ctl --help to see other available functionality. Finally, the PipelineDB server can also be run in the foreground directly:

pipelinedb -D <data directory>

To connect to a running server using the default database “pipeline”, the pipeline command can be used:

pipeline pipeline

PostgreSQL’s standard client, psql, can also be used to connect to PipelineDB. Note that PipelineDB’s default port is 5432:

psql -p 5432 -h localhost pipeline

You can check out the Quickstart section to start streaming data into PipelineDB right now.

Debug Mode

New in version 0.9.1.

The PipelineDB server can also be run in debug mode, which enables assertions as well as additional diagnostic output when something such as a crash occurs. Debug mode is designed to enable us to better support users when something goes wrong. It can be run in two ways:

First, with the -d/--debug flag in conjunction with pipeline-ctl binary:

pipeline-ctl -d -D ... start
pipeline-ctl --debug -D ... start

Or by executing the pipelinedb-debug binary directly:

pipelinedb-debug -D <data directory>

Note

The debug-mode binary uses unoptimized code and includes assertions and debug symbols, and as a result is not optimized for performance. Debug mode should only be used when reproducing errors.

Configuration

PipelineDB’s configuration is generally synonymous with PostgreSQL’s configuration, so that is a good place to look for details about what everything in pipelinedb.conf does.

By default, PipelineDB is not configured to allow incoming connections from remote hosts. To enable incoming connections, first set the following line in pipelinedb.conf:

listen_addresses = '*'

And in pg_hba.conf, add a line such as the following to allow incoming connections:

host    all             all             <ip address>/<subnet>            md5

For example, to allow incoming connections from any host:

host    all             all             0.0.0.0/0            md5

Now you’re ready to put PipelineDB to work! Check out the Continuous Views or Quickstart sections to get started.

Docker

A PipelineDB Docker image is also available (thanks to Josh Berkus). It can be run with:

docker run -v /dev/shm:/dev/shm pipelinedb/pipelinedb

This image exposes port 5432 for interaction with PipelineDB; credentials are user pipeline, password pipeline.

The database gets installed to /mnt/pipelinedb, so if you want to put that on real storage, or modify the configuration files, then simply mount that as a volume before starting the image for the first time.

Note

The configuration which installs with the image is appropriate for testing on your laptop. If you deploy this to production, you will want to edit pipelinedb.conf and substantially increase resource limits for most things.