|
|
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 == |
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:
Further reading