This is pump.io. It's a stream server that does most of what people really want from a social network.
Copyright 2011-2013, 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
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.
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.
You'll need four things to get started:
graphicsmagickpackage with the
Note that the requirement to have
gm available is new for 0.3.0; if
you're upgrading, you need to install it.
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.
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
cd pump.io npm install
To test the install, run:
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
can work for testing.
If you're confused, just use the MongoDB one,
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
cd pump.io/node_modules/databank npm install databank-mongodb
Note that you also need to install and configure your database server.
pump.io uses a JSON file for configuration. It should be at
pump.io.json.sample file should give you an idea of how to use
Here are the main configuration keys.
hostname, which is OK for most systems. Use this if you've got some kind of load-balancer or NAS or whatever and your local IP doesn't map to the IP of the hostname.
port, but if you're insisting on proxying behind Apache or whatever despite warnings not to, you can use this.
nobodyare good choices, or you can create a user like
pumpand use that.
true. Defaults to
false, which is what people should use in production.
false, meaning "use the CDN".
25which is really the only sane value.
true, because it's a smart idea.
false. You may need to change the
smtpportvalue if you set this.
pump.io is designed to be a standalone server. You do not need to set up an Apache or nginx or lighttpd Web server in front of it. In fact, that's going to make things harder for you, and stuff like WebSockets is going to work less well.
If you really insist, check the configuration options carefully. If you want http://pump.yourdomain.example/ to proxy to the pump.io daemon listening on port 8000 on 127.0.0.1, use configuration options like this:
"hostname": "pump.yourdomain.example", "urlPort": 80, "address": "127.0.0.1", "port": 8000
You'll probably get a more reliable experience if you use forever to keep the daemon running.
If you're connecting your pump.io site with other software (such as federated servers or using Web clients), please note that most of them save OAuth keys based on your hostname and listening port. The following changes may make your relationships stop working.
I realize that these kind of changes are normal when someone's experimenting with new software, and I'm trying to make the software more robust in the face of this kind of change without sacrificing security, but for now it's a good idea to decide on your "real" domain name first before making connections to other sites.
If you find bugs, you can report them here:
You can also email me at email@example.com.
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: