From diaspora* project wiki
< Template:Installation
Revision as of 17:06, 24 January 2015 by Viisauksena (talk | contribs) (cURL: explain howtodo the mentioned compile of curl (libcurl) with url to http://pastebin.com/B5nhq21T)
Jump to: navigation, search

Install Nodejs

Follow the instructions for Wheezy here.


»» Note
Debian ships with an old cURL version that can let your Sidekiq workers crash under higher load. If this happens make sure to have a libcurl that is compiled with either c-ares support or --enable-threaded-resolver. This could be dangerous to your system while other software is relying on specific versions which are maintained by aptitude Package Manager. A very good Moment for a System Backup, and here is how you could obtain it.. you need root for this! More information to this Issue can be found in this issue

Install the database

Skip this step if you already have one.

See the Debian wiki.


We recommend using Ruby Version Manager it will ensure you're always on the currently recommended Ruby version and cleanly separate your diaspora* installation from all other Ruby applications on your machine. If you opt for not using it ensure your Ruby version is at least 2.3.0, prior versions are incompatible. We currently recommend using the latest release of the 2.6 series.

Install RVM

As the user you want to run diaspora* under, that is not as root, run:

curl -L https://s.diaspora.software/1t | bash

and follow the instructions. If you get GPG signature problems, follow the instructions printed by the command. Running the 'gpg --recv-keys' command with 'sudo' should not be necessary. If those commands give you permission denied errors, change them to 640 for all files and 750 for all folders in the .gnupg folder.

Set up RVM

Ensure the following line is in your ~/.bashrc:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

Now run source ~/.bashrc in the terminal(s) you are using for this guide.

If you don't have sudo installed or your current user doesn't have the privileges to execute it, run:

rvm autolibs read-fail

The next command will check if all dependencies to build Ruby are installed. If these are not met, you will see a list of packages preceded by "Missing required packages:". As root install all the packages listed there for your OS. Then rerun the install command.

Ensure the currently recommend version of Ruby is installed:

rvm install 2.6

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!


Copy files

cp config/database.yml.example config/database.yml
cp config/diaspora.yml.example config/diaspora.yml


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

gem install 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*:


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.


»» Important
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