Template:Installation/Common

From diaspora* project wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Get the source

It's time to download Diaspora! As your diaspora user run:

cd ~
git clone  git://github.com/diaspora/diaspora.git
cd diaspora

Don't miss the cd diaspora, all coming commands expect to be run from that directory!

Configuration

Copy files

cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml



Bundle

It's time to install the Ruby libraries required by Diaspora:

gem install bundler

 bin/bundle install

This takes quite a while. You should get a green success message when it's finished, if that's not the case you should seek for help on the mailing list or the IRC channel. You can speed it up a bit adding -jn to the command, where n is the number of CPU cores you have available.

Running the manual gem install command shown in the error message can sometimes show a clearer error message if the bundle command fails.

Database setup

Double check your config/database.yml looks right and run:

 bin/rake db:create db:schema:load


Start Diaspora

It's time to start Diaspora:

./script/server


Alternatively, you can put the following file into /etc/init.d/diaspora:

#! /bin/sh

### BEGIN INIT INFO
# Provides:          diaspora
# Required-Start:    apache2
# Required-Stop:     
# Should-Start:      
# Default-Start:     2 3 4 5
# Default-Stop:      
# Short-Description: Diaspora social networking pod server
# Description:       Diaspora is a social networking pod server.
### END INIT INFO

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
. /lib/lsb/init-functions

PROC_NAME=Diaspora
HOME_DIR=/home/diaspora
DAEMON=$HOME_DIR/diaspora/diaspora-init
PID_FILE=/var/run/diaspora.pid
RUN_AS_USER=diaspora
WAITFORDAEMON=60

wait_for_deaddaemon () {
    pid=$1
    sleep 1
    if test -n "$pid"
    then
        if kill -0 $pid 2>/dev/null
        then
            cnt=0
            while kill -0 $pid 2>/dev/null
            do
                cnt=`expr $cnt + 1`
                if [ $cnt -gt $WAITFORDAEMON ]
                then
                    log_action_end_msg 1 "still running"
                    exit 1
                fi
                sleep 1
                [ "`expr $cnt % 3`" != 2 ] || log_action_cont_msg ""
            done
        fi
    fi
    log_action_end_msg 0
}

case "$1" in
  start)
    log_action_begin_msg "Starting $PROC_NAME service: "
        if start-stop-daemon --start --user $RUN_AS_USER --pidfile $PID_FILE --startas $DAEMON --chuid $RUN_AS_USER --background --make-pidfile
        then
          log_action_end_msg 0
          else
            log_action_end_msg 1
            exit 1
          fi
      ;;

    stop)
      log_action_begin_msg "Stopping $PROC_NAME service: "
          pid=`cat $PID_FILE 2>/dev/null` || true

          if test ! -f $PID_FILE -o -z "$pid"; then
                  log_action_end_msg 0 "not running - there is no $PID_FILE"
                  exit 0
          fi

          if start-stop-daemon --stop --user $RUN_AS_USER --pidfile $PID_FILE
          then
            wait_for_deaddaemon $pid
          elif
            kill -0 $pid 2>/dev/null; then
              log_action_end_msg 1 "Is $pid not $PROC_NAME?  Is $DAEMON a different binary now?"
                  exit 1
          else
            log_action_end_msg 1 "$DAEMON died: process $pid not running; or permission denied"
            exit 1
          fi
      ;;

esac

And put this file into /home/diaspora/diaspora/diaspora-init:

#!/bin/bash --login
shopt -s expand_aliases

export RAILS_ENV=production 
export DB=postgres 

cd /home/diaspora/diaspora

./script/server 

Then run the following command:

update-rc.d diaspora defaults

Then Ubuntu will start/stop Diaspora automatically on startup/shutdown. You can manually start Diaspora with service diaspora start and stop it with service diaspora stop.

Further reading