Template:Installation/Common: Difference between revisions

From diaspora* project wiki
m (Reverted edits by Togart (talk) to last revision by Eikeba)
Tag: Rollback
(42 intermediate revisions by 14 users not shown)
Line 1: Line 1:
== Get the source ==
== Get the source ==


It's time to download Diaspora! As your diaspora user run:
It's time to download diaspora*! As your diaspora user run:


{{#tag:syntaxhighlight|
{{#tag:syntaxhighlight|
cd ~
cd ~
git clone {{#ifeq: {{#var:mode}}|production|-b master|}} git://github.com/diaspora/diaspora.git
git clone {{#ifeq: {{#var:mode}}|production|-b master|}} https://github.com/diaspora/diaspora.git
cd diaspora
cd diaspora
|lang=bash}}
|lang=bash}}
Line 20: Line 20:
|lang=bash}}
|lang=bash}}


{{#ifeq: {{#var:mode}}|production|{{Installation/Configuration}}|}}
{{#ifeq: {{#var:mode}}|production|{{Template:Installation/Configuration}}
{{#ifeq: {{#var:mode}}|production|{{Installation/Reverse_proxy}}|}}
{{Installation/Reverse_proxy}}|}}
 
== Bundle ==
== Bundle ==


It's time to install the Ruby libraries required by Diaspora:
It's time to install the Ruby libraries required by diaspora*:


{{#tag:syntaxhighlight|
{{#tag:syntaxhighlight|
gem install bundler
gem install bundler
{{#ifeq:{{#var:gcc5}}|true|bundle config --local build.sigar '--with-cppflags="-fgnu89-inline"'|}}
script/configure_bundler
{{#var:env_string}} bin/bundle install {{#ifeq: {{#var:mode}}|production|--without test development|}} {{#ifeq: {{#var:mode}}|development|--with {{#switch: {{#var:DB}}|mysql=mysql|postgres=postgresql|mariadb=mysql}}|}}
{{#ifeq:{{#var:dist}}{{#var:version}}{{#varDB}}|CentOS6postgres|bin/bundle config --local build.pg '--with-pg-config=/usr/pgsql-<version>/bin/pg_config'
<nowiki/>}}bin/bundle install --full-index
|lang=bash}}
|lang=bash}}


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 <tt> -jn</tt> to the command, where <tt>n</tt> is the number of CPU cores you have available.
This takes quite a while. When it's finished, you should see a message similar to: <tt>Bundle complete! 137 Gemfile dependencies, 259 gems now installed.</tt> If that's not the case, you should seek for help on the mailing list or the IRC channel.


Running the manual <tt>gem install</tt> command shown in the error message can sometimes show a clearer error message if the <tt>bundle</tt> command fails.
Running the manual <tt>gem install</tt> command shown in the error message can sometimes show a clearer error message if the <tt>bundle</tt> command fails.
Line 42: Line 42:


{{#tag:syntaxhighlight|
{{#tag:syntaxhighlight|
{{#var:env_string}} bin/rake db:create db:schema:load
{{#var:env_string}}bundle exec rake db:create db:migrate
|lang=bash}}
|lang=bash}}
{{#ifeq: {{#var:mode}}|production|{{Installation/Assets}}|}}
{{#ifeq: {{#var:mode}}|production|{{Installation/Assets}}|}}


== Start Diaspora ==
== Start diaspora* ==


It's time to start Diaspora:
It's time to start diaspora*:


{{#tag:syntaxhighlight|
{{#tag:syntaxhighlight|
{{#ifeq: {{#var:mode}}|development||{{#var:db_prefix}}}}./script/server
./script/server
|lang="bash"}}
|lang="bash"}}


{{#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>:
Your diaspora server is now running, either on a unix socket (current default) or on http port 3000. The listening method can be configured in diaspora.yml, search for '3000' or 'listen' to find the correct line.
 
#! /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
You will likely need to install a reverse proxy ([https://gist.github.com/jhass/719014 example on github] for apache2) in order to get it to be served publicly. If you are new to running rails applications you may find the [[diaspora components]] page helpful for orientation.


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>.
== Backup ==
{{Serious|1=You have to do backups of your pod data. If you lose your data, you won't be able to use the combination of your old username and old domain ever again. Make sure to store the backups on a different server, or at least on a different hard drive.<br />For details on how to do backups, see [[Pod data backup]].}}


== Further reading ==
== Further reading ==
Line 167: Line 67:
* [[Diasporas components explained]]
* [[Diasporas components explained]]
* Is there anybody out there? [[FAQ_for_pod_maintainers#Am_I_alone_here.3F_.28Establish_connections_with_other_pods.29|Establish connections with other pods]]
* Is there anybody out there? [[FAQ_for_pod_maintainers#Am_I_alone_here.3F_.28Establish_connections_with_other_pods.29|Establish connections with other pods]]
* [[FAQ_for_pod_maintainers#What_are_roles_and_how_do_I_use_them.3F_.2F_Make_yourself_an_admin|Make yourself an admin]]
* [[FAQ_for_pod_maintainers#What_are_roles_and_how_do_I_use_them.3F_.2F_Make_yourself_an_admin_or_assign_moderators|Make yourself an admin]]
* [[Updating#{{#switch: {{#var:mode}}|production=Updating_a_production_install|development=Updating_a_development_install}}|Updating Diaspora]]
* [[Updating#{{#switch: {{#var:mode}}|production=Updating_a_production_install|development=Updating_a_development_install}}|Updating Diaspora]]
{{#ifeq: {{#var:mode}}|production|* [[Integrating other social networks]]
{{#ifeq: {{#var:mode}}|production|* [[Integrating other social networks]]
Line 177: Line 77:
[[Category:Podmin]]
[[Category:Podmin]]
</includeonly>
</includeonly>
<noinclude>[[Category:Installation-Templates]]</noinclude>

Revision as of 18:06, 25 November 2018

Get the source

It's time to download diaspora*! As your diaspora user run:

cd ~
git clone  https://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
script/configure_bundler
bin/bundle install --full-index

This takes quite a while. When it's finished, you should see a message similar to: Bundle complete! 137 Gemfile dependencies, 259 gems now installed. If that's not the case, you should seek for help on the mailing list or the IRC channel.

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:

bundle exec rake db:create db:migrate


Start diaspora*

It's time to start diaspora*:

./script/server


Your diaspora server is now running, either on a unix socket (current default) or on http port 3000. The listening method can be configured in diaspora.yml, search for '3000' or 'listen' to find the correct line.

You will likely need to install a reverse proxy (example on github for apache2) in order to get it to be served publicly. If you are new to running rails applications you may find the diaspora components page helpful for orientation.

Backup

WarningWarning:You have to do backups of your pod data. If you lose your data, you won't be able to use the combination of your old username and old domain ever again. Make sure to store the backups on a different server, or at least on a different hard drive.
For details on how to do backups, see Pod data backup.

Further reading