pump.io

Social server with an ActivityStreams API

This project is maintained by E14N

pump.io

Version 0.2.1

This is pump.io. It's a stream server that does most of what people really want from a social network.

Build Status

License

Copyright 2011-2012, E14N https://e14n.com/

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

What's it for?

I post something and my followers see it. That's the rough idea behind the pump.

There's an API defined in the API.md file. It uses activitystrea.ms JSON as the main data and command format.

You can post almost anything that can be represented with activity streams -- short or long text, bookmarks, images, video, audio, events, geo checkins. You can follow friends, create lists of people, and so on.

The software is useful for at least these scenarios:

Version 0.2.0 will have a Web UI, which will probably make the whole thing much more enjoyable.

Installation

You'll need three things to get started:

The easiest way is to install the software globally using npm, like so:

npm install -g pump.io

That should set up all the files and dependencies for you.

Local install

If you want to set up the software in its own directory, you can clone the git repository, so:

git clone https://github.com/e14n/pump.io.git

You can then install the dependencies using npm:

cd pump.io
npm install

To test the install, run:

npm test

Database setup

pump.io uses databank package to abstract out the data storage for the system. Any databank driver should work. Couchbase, MongoDB and Redis are probably the best bets for production servers, but the disk or even memory drivers can work for testing.

If you're confused, just use the MongoDB one, databank-mongodb.

You can find other drivers like so:

npm search databank

One tricky bit is that the driver you use has to be available to the databank package. There are two ways to make that work.

First, you can install globally. For example:

npm install -g databank-mongodb

Use this if you installed the pump.io package globally.

Second, you can install in the databank directory.

cd pump.io/node_modules/databank
npm install databank-mongodb

Note that you also need to install and configure your database server.

Configuration

pump.io uses a JSON file for configuration. It should be at /etc/pump.io.json.

The pump.io.json.sample file should give you an idea of how to use it.

Here are the main configuration keys.

Bugs

If you find bugs, you can report them here:

https://github.com/e14n/pump.io/issues

You can also email me at evan@e14n.com.

Colophon

This software includes the following great packages of client-side software.

It also uses these icon sets:

This sample photo is used for the main page: