Skip to content

Debian Installation

starblessed edited this page Jul 27, 2013 · 12 revisions

Debian Installation

Document Version 0.1 (July 26th, 2013)

This document is designed to give you a more detailed view of how to install pump.io on Debian.

Written by StarBlessed

Contact:

With inspiration from:

pump.io License

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

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 this document for?

The intention of this document is to give prospective administrators more information about pump.io for use within their existing Debian systems.

pump.io is relatively simple to run, however there can be some difficulties surrounding database choice and installation.

It has also been noted that setting up the config file can be distro agnostic, and cause confusion for people who are wanting more specific answers.

In this example installation, we will be using the standard install information provided in the pump.io tutorial, and using it to configure pump.io specifically for Debian.

Installation

Prerequisites

You'll need a few things to get started:

  • node.js - http://nodejs.org/
  • npm - (supplied by node.js)
  • mongodb - database server
  • package "graphicsmagick"
  • package "git-core"
  • an SSL Certificate - for your domain/subdomain (Info here : StartSSL Free Certificate )
  • screen - to run the daemon in

Install node.js

Install the JavaScript runtime node.js

(from https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager)

apt-get install python g++ make checkinstall
mkdir ~/src && cd $_
wget -N http://nodejs.org/dist/node-latest.tar.gz
tar xzvf node-latest.tar.gz && cd node-v*
./configure
checkinstall #(remove the "v" in front of the version number in the dialog)
sudo dpkg -i node_*

Install mongodb; graphicsmagick; screen and git-core

apt-get update && apt-get install mongodb graphicsmagick git-core screen

Install Git Local

Enter a directory where you can clone the repo

cd /opt

Clone the git repository

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

Install the dependencies using npm:

cd pump.io
npm install

To test the install:

npm test

Install Database Driver

Install the driver in the databank directory.

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

Configuration

Upload Directory Configuration

Setting up the directories ready for pump.io

mkdir /srv/pump
chmod 777 /srv/pump

User Configuration

Setting up the user who will run pump.io

adduser pumpio
Enter new UNIX password: # enter password for this account
Retype new UNIX password: # reenter password for this account
    Full Name []: # press Enter
    Room Number []: # press Enter
    Work Phone []: # press Enter
    Home Phone []: # press Enter
    Other []: # press Enter
Is the information correct? [Y/n] # press 'Y' then Enter

pump.io Configuration

pump.io uses a JSON file for configuration.

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

cp /opt/pump.io/pump.io.json.sample /etc/pump.io.json

Now alter the file according to your preferences.

nano /etc/pump.io.json

If you choose, you can overwrite the content with the setup below. This will work with the default setup we've chosen. Don't forget to alter the details accordingly

{
"driver": "mongodb",
"params": {"host":"localhost"},
"secret": "<YOUR SECRET>", # add your own secret key
"noweb": false,
"site": "<YOUR DOMAIN>", # add your own sub/domain here
"owner": "<YOUR NAME/NICKNAME>", #add your own nick/name here
"ownerURL": "<YOUR URL>", # add a URL for your nick/name to link to
"bounce": true, # this pushes all requests on port 80, to 443
"port": 443,
"key": "<PATH TO YOUR SSL KEY>", # add the full path including file name
"cert": "<PATH TO YOUR SSL CERT>", # add the full path including file name
"hostname": "<YOUR HOST NAME>", # the hostname of your server
"address": "0.0.0.0",
"nologger": false,
"serverUser": "pumpio",
"uploaddir": "/srv/pump",
"debugClient": false,
"firehose": "ofirehose.com",
"noCDN":true,
"requireEmail": false,
"disableRegistration": false,
"canUpload": true,
"sockjs": true
}

To complete and save, press CTRL+X, press Y, then Enter.

Folder Permissions

Final chmod for the pump.io directory

chmod -R 777 /opt

Running the daemon

Run this from your command prompt

screen
cd /opt/pump.io/bin
./pump

Then once its running you can exit screen with CTRL+A, then CTRL+D.

Finishing Up

You should now be able to connect to you instance via http://YOUR SUB/DOMAIN

This will push you to https://YOUR SUB/DOMAIN thanks to '"bounce": true' in the config file.

To Do

  • Init Files
  • Updating
  • Locking down server permissions

Bugs

If you find bugs, you can report them here:

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

You can also email evan at [email protected]

Clone this wiki locally