Template:Installation/Common: Difference between revisions

From diaspora* project wiki
(→‎Bundle: handle gcc5 mode)
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