Template:Installation/Common: Difference between revisions
(→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
- Diasporas components explained
- Is there anybody out there? Establish connections with other pods
- Make yourself an admin
- Updating Diaspora
- Getting Started With Contributing