Difference between revisions of "Template:Installation/Common"

From diaspora* project wiki
Jump to: navigation, search
(Start Diaspora)
(Sorry, wrong template. Also, maybe place init script in https://wiki.diasporafoundation.org/Alternative_startup_methods ? -- Undo revision 4398 by Koehn (talk))
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:37, 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


Further reading