Difference between revisions of "Template:Installation/Common"

From diaspora* project wiki
Jump to: navigation, search
(Bundle: handle gcc5 mode)
(Start Diaspora)
Line 56: Line 56:
  
 
{{#ifeq: {{#var:mode}}|production|In the most simple case you want to do this inside a [http://www.gnu.org/software/screen/ screen] or [http://tmux.sourceforge.net/ tmux] session from which you can safely detach.|}}
 
{{#ifeq: {{#var:mode}}|production|In the most simple case you want to do this inside a [http://www.gnu.org/software/screen/ screen] or [http://tmux.sourceforge.net/ tmux] session from which you can safely detach.|}}
 +
 +
Alternatively, you can put the following file into <code>/etc/init.d/diaspora</code>:
 +
 +
#! /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 <code>/home/diaspora/diaspora/diaspora-init</code>:
 +
 +
#!/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 <code>service diaspora start</code> and stop it with <code>service diaspora stop</code>.
  
 
== Further reading ==
 
== Further reading ==

Revision as of 15:17, 16 December 2015

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