Difference between revisions of "Diaspora"

From ArchWiki
Jump to: navigation, search
(described configuration does not exist)
(Update link to correct project page)
(16 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[Category:Networking (English)]]
+
[[Category:Networking]]
{{i18n|Diaspora}}
+
[http://www.diasporaproject.org/ Diaspora] is the privacy aware, personally controlled, do-it-all, open source social network.
 
+
[http://www.joindiaspora.com/ Diaspora] is the privacy aware, personally controlled, do-it-all, open source social network.
+
  
 
On November 23, 2010 was [http://blog.joindiaspora.com/2010/11/23/private-alpha-released.html announced] that Diaspora is in [http://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha private alpha] phase.
 
On November 23, 2010 was [http://blog.joindiaspora.com/2010/11/23/private-alpha-released.html announced] that Diaspora is in [http://en.wikipedia.org/wiki/Software_release_life_cycle#Alpha private alpha] phase.
 +
 +
Since August 27, 2012 Diaspora is ruled by the community ([http://blog.diasporafoundation.org/2012/08/27/announcement-diaspora-will-now-be-a-community-project.html announcement]).
  
 
== Prerequisites ==
 
== Prerequisites ==
* [http://aur.archlinux.org/packages.php?ID=43565 ruby-headers]
+
* Since Diaspora can run on MySQL and PostgreSQL you need to decide which one you want to use. Install one of them and set it up.
* [https://wiki.archlinux.org/index.php/Java Java]
+
* Diaspora starts a so called appserver, on port 3000 by default, which serves the dynamic contents. You need a reverse proxy to handle the static content that forwards requests it can't handle to the appserver. Typical tools for that are Apache or Nginx.
 +
* You'll also need the usual tools to build packages from the AUR.
 +
* And [https://aur.archlinux.org/packages/ruby1.9-bundler/ ruby1.9-bundler] from the AUR.
  
 +
== Installation ==
  
Install gems
+
Obtain the [https://aur.archlinux.org/packages/diaspora/ diaspora] package from the AUR, do not use any AUR helpers such as yaourt to build the package, since it's a split package and you want only one part. So, for example if you use Yaourt run:
  $ sudo gem install mysql2
+
  yaourt -G diaspora && cd diaspora
$ sudo gem install bundle
+
  
== Installation ==
+
To build and install the MySQL version run:
 +
makepkg -si --pkg diaspora-mysql
 +
 
 +
To build and install the PostgreSQL version run:
 +
  makepkg -si --pkg diaspora-postgresql
 +
 
 +
Now edit  /etc/webapps/diaspora/database.yml and fill out the needed values. Then edit /etc/webapps/diaspora/diaspora.yml and change at least the url setting to the URL your installation will be reachable under (the one served by your reverse proxy). You can change the port the appserver will listen on under the server section. By default Diaspora requires a SSL setup, you can disable that with the require_ssl setting.
 +
 
 +
Ensure your database is running and then switch to the diaspora user:
 +
  sudo -u diaspora /bin/bash
 +
  cd $HOME
 +
 
 +
Create the database and initialize the schema:
 +
  bundle exec rake db:create db:schema:load
 +
If the user you specified in the database.yml file can't create databases leave the 'db:create' out and create a database named diaspora_production by hand.
  
=== Install Diaspora ===
+
You can now switch back to your regular user and start Diaspora:
Since diaspora does not have a stable version, you can install it with the [http://aur.archlinux.org/packages.php?ID=40859 development package] in the [[AUR|Arch User Repository (AUR)]].
+
  sudo systemctl start diaspora
  
=== Diaspora Postinstallation ===
+
The static content your reverse proxy needs to serve will be available under /usr/share/webapps/diaspora/public/
create the configuration files and make changes according to your system needs
+
$ cd /usr/share/webapps/diaspora
+
$ cp config/application.yml.example config/application.yml
+
$ cp config/database.yml.example config/database.yml
+
$ cp config/script_server_config.yml.example config/script_server_config.yml
+
  
Use Bundler to install Diaspora application
+
== Updating ==
$ sudo bundle install
+
  
=== Create Database ===
+
Updating is very analogous. Obtain the newest version of the package and build it, just like in the installation instructions. Watch for .pacnew files and review the changes. Also read the [https://github.com/diaspora/diaspora/blob/master/Changelog.md changelog] over at Diaspora. Then again ensure the database is running and switch to the diaspora user:
Edit the Rakefile
+
  sudo -u diaspora /bin/bash
$ cd /usr/share/webapps/diaspora
+
  cd $HOME
$ sudo vi Rakefile
+
  
Add the line
+
And update the database schema:
require 'rake/dsl_definition'
+
  bundle exec rake db:migrate
right before
+
require 'rake'
+
  
create the database using
+
Exit and restart Diaspora:
$ sudo rake db:drop:all
+
  sudo systemctl restart diaspora
$ sudo rake db:create
+
  
=== Run Diaspora ===
 
  
*To run Diaspora:
+
== Add yourself as an admin ==
$ sudo /etc/rc.d/diaspora start
+
Then access http://localhost:3000/ to see the diaspora main page.
+
  
*To stop Diaspora:
+
Switch to the diaspora user and start the Rails console:
$ sudo /etc/rc.d/diaspora stop
+
  sudo -u diaspora /bin/bash
 +
  cd $HOME
 +
  bundle exec rails console production
  
*(Optional) To start Diaspora automatically at boot, add the diaspora daemon in your /etc/rc.conf file:
+
Then run the following command, replacing "user" with your username:
DAEMONS=(... diaspora ...)
+
  Role.add_admin User.find_by_username("user")
  
*(Optional) To populate the database with sample users:
+
You can exit the Rails console by pressing Ctrl+D.
$ cd /opt/diaspora
+
$ sudo -u diaspora GEM_HOME=/opt/diaspora-gems rake db:seed:dev
+
Then access http://localhost:3000/ and login with user 'tom' and password 'evankorth'.
+
  
==Troubleshooting==
+
== Troubleshooting ==
===Errors while navigating after an upgrade===
+
If you get an error after upgrading the package, the first thing you should do is delete the database you were using.
+
First, stop the diaspora daemon if it is running, and make sure mongodb is running:
+
$ sudo /etc/rc.d/mongodb start
+
Enter in the mongo console with:
+
$ mongo diaspora-development
+
Finally, drop the old database, it will be regenerated the next time you access diaspora:
+
> db.dropDatabase()
+
> exit
+
  
 
===GDM login screen with diaspora===
 
===GDM login screen with diaspora===

Revision as of 10:47, 4 May 2013

Diaspora is the privacy aware, personally controlled, do-it-all, open source social network.

On November 23, 2010 was announced that Diaspora is in private alpha phase.

Since August 27, 2012 Diaspora is ruled by the community (announcement).

Prerequisites

  • Since Diaspora can run on MySQL and PostgreSQL you need to decide which one you want to use. Install one of them and set it up.
  • Diaspora starts a so called appserver, on port 3000 by default, which serves the dynamic contents. You need a reverse proxy to handle the static content that forwards requests it can't handle to the appserver. Typical tools for that are Apache or Nginx.
  • You'll also need the usual tools to build packages from the AUR.
  • And ruby1.9-bundler from the AUR.

Installation

Obtain the diaspora package from the AUR, do not use any AUR helpers such as yaourt to build the package, since it's a split package and you want only one part. So, for example if you use Yaourt run:

yaourt -G diaspora && cd diaspora

To build and install the MySQL version run:

makepkg -si --pkg diaspora-mysql

To build and install the PostgreSQL version run:

 makepkg -si --pkg diaspora-postgresql

Now edit /etc/webapps/diaspora/database.yml and fill out the needed values. Then edit /etc/webapps/diaspora/diaspora.yml and change at least the url setting to the URL your installation will be reachable under (the one served by your reverse proxy). You can change the port the appserver will listen on under the server section. By default Diaspora requires a SSL setup, you can disable that with the require_ssl setting.

Ensure your database is running and then switch to the diaspora user:

 sudo -u diaspora /bin/bash
 cd $HOME

Create the database and initialize the schema:

 bundle exec rake db:create db:schema:load

If the user you specified in the database.yml file can't create databases leave the 'db:create' out and create a database named diaspora_production by hand.

You can now switch back to your regular user and start Diaspora:

 sudo systemctl start diaspora

The static content your reverse proxy needs to serve will be available under /usr/share/webapps/diaspora/public/

Updating

Updating is very analogous. Obtain the newest version of the package and build it, just like in the installation instructions. Watch for .pacnew files and review the changes. Also read the changelog over at Diaspora. Then again ensure the database is running and switch to the diaspora user:

 sudo -u diaspora /bin/bash
 cd $HOME

And update the database schema:

 bundle exec rake db:migrate

Exit and restart Diaspora:

 sudo systemctl restart diaspora


Add yourself as an admin

Switch to the diaspora user and start the Rails console:

 sudo -u diaspora /bin/bash
 cd $HOME
 bundle exec rails console production

Then run the following command, replacing "user" with your username:

 Role.add_admin User.find_by_username("user")

You can exit the Rails console by pressing Ctrl+D.

Troubleshooting

GDM login screen with diaspora

GDM will insert the user diaspora in its login window because it currently considers the id range 500-1000 as normal users while Arch considers this range for system users as defined in /etc/login.defs. GDM does that probably to keep legacy normal users working. To exclude this user from the login window, add this 'Exclude' line in your /etc/gdm/custom.conf file:

[greeter]
Exclude=diaspora

More Resources