Merge branch 'master' of git://github.com/diaspora/diaspora

This commit is contained in:
Guido Serra aka Zeph 2010-09-23 23:30:22 +02:00
commit d9688324f8
8 changed files with 385 additions and 271 deletions

View file

@ -38,10 +38,6 @@ gem 'magent', :git => 'http://github.com/dcu/magent.git'
gem 'carrierwave', :git => 'git://github.com/rsofaer/carrierwave.git' , :branch => 'master' #Untested mongomapper branch
gem 'mini_magick'
#sinatra
gem 'sinatra', '1.0'
gem 'async_sinatra'
group :test, :development do
gem 'factory_girl_rails'
end

266
README.md
View file

@ -26,273 +26,13 @@ network.
**PLEASE, DO NOT RUN IN PRODUCTION. IT IS FUN TO GET RUNNING, BUT EXPECT THINGS
TO BE BROKEN**
Some initial installation instructions are [here](http://github.com/diaspora/diaspora/wiki/Installing-and-Running-Diaspora).
We are continuing to build features and improve the code base.
When we think it is ready for general use, we will post more detailed
When we think it is ready for general use, we will post more final
instructions.
## Notice
We currently run Diaspora with the [thin](http://code.macournoyer.com/thin/) as
our webserver, behind [nginx](http://wiki.nginx.org/Main). Diaspora uses an
asynchronous [EventMachine](http://rubyeventmachine.com/) queue inside the appserver
to send messages between seeds. If you use mod_rails, mongrel, or another
non-eventmachine based application server, federation may not work.
If you don't like thin, you can always try
[Rainbows!](http://rainbows.rubyforge.org/) We will try to fully support more
webservers later, but that is what works for now.
These instructions are for machines running [Ubuntu](http://www.ubuntu.com/),
[Fedora](http://www.fedoraproject.org) or Mac OS X. We are developing Diaspora
for the latest and greatest browsers, so please update your Firefox, Chrome or
Safari to the latest and greatest.
## Preparing your system
In order to run Diaspora, you will need to download the following dependencies
(specific instructions follow):
- Build Tools - Packages needed to compile the components that follow.
- [Ruby](http://www.ruby-lang.org) - The Ruby programming language.
(We're using **1.8.7**. It comes preinstalled on Mac OS X.)
- [MongoDB](http://www.mongodb.org) - A snappy noSQL database.
- [OpenSSL](http://www.openssl.org/) - An encryption library.
(It comes preinstalled on Mac OS X and Ubuntu.)
- [ImageMagick](http://www.imagemagick.org/) - An Image processing library used
to resize uploaded photos.
- [Git](http://git-scm.com/) - The fast version control system.
After you have Ruby installed on your system, you will need to get RubyGems,
then install Bundler:
- [RubyGems](http://rubygems.org/) - Source for Ruby gems.
- [Bundler](http://gembundler.com/) - Gem management tool for Ruby projects.
**We suggest using a package management system to download these dependencies.
Trust us, it's going to make your life a lot easier. If you're using Mac OS X,
you can use [homebrew](http://mxcl.github.com/homebrew/); if you're using
Ubuntu, just use [Synaptic](http://www.nongnu.org/synaptic/) (it comes
pre-installed); if you're using Fedora simply use
[yum](http://yum.baseurl.org/). The instructions below assume you have these
installed.**
### Build Tools
To install build tools on **Ubuntu**, run the following (includes the gcc and
xml parsing dependencies):
sudo apt-get install build-essential libxslt1.1 libxslt1-dev libxml2
To install build tools on **Fedora**, run the following:
sudo yum install libxslt libxslt-devel libxml2 libxml2-devel
To install build tools on **Mac OS X**, you need to download and install
[Xcode](http://developer.apple.com/technologies/tools/xcode.html).
### Ruby
To install Ruby 1.8.7 on **Ubuntu**, run the following command:
sudo apt-get install ruby-full
Please note that you need to have Universe enabled in your
/etc/apt/sources.list file to install ruby using apt-get.
At this time Fedora does not have Ruby 1.8.7. As a workaround it is possible to
use [rvm](http://rvm.beginrescueend.com/) with a locally compiled Ruby
installation. A semi automated method for doing this is available. It is
highly recommended that you review the script before running it so you
understand what will occur. The script can be executed by running the
following command:
./script/bootstrap-fedora-diaspora.sh
After reviewing and executing the above script you will need to follow the
"MongoDB" section and then you should skip all the way down to "Start Mongo".
If you're on **Mac OS X**, you already have Ruby on your system. Yay!
### MongoDB
To install MongoDB on **Fedora**, use the official repositories
sudo yum install mongodb-server
Ensure that the server is started at system reboot:
sudo chkconfig mongod on
To install MongoDB on **Ubuntu**, add the official MongoDB repository
[here](http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages).
For Lucid, add the following line to your /etc/apt/sources.list (for other
distros, see http://www.mongodb.org/display/DOCS/Ubuntu+and+Debian+packages):
deb http://downloads.mongodb.org/distros/ubuntu 10.4 10gen
Then run:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10
sudo apt-get update
sudo apt-get install mongodb-stable
You can also run the binary directly by doing the following:
If you're running a 32-bit system, run:
wget http://fastdl.mongodb.org/linux/mongodb-linux-i686-1.6.2.tgz
If you're running a 64-bit system, run:
wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-1.6.2.tgz
Then run:
# extract
tar xzf mongodb-linux-i686-1.4.0.tgz
# create the required data directory
sudo mkdir -p /data/db
sudo chmod -Rv 777 /data/
To install MongoDB on **Mac OS X**, run the following:
brew install mongo
sudo mkdir -p /data/db
sudo chmod -Rv 777 /data/
### OpenSSL
If you're running either **Ubuntu**, **Fedora** or **Mac OS X** you already
have OpenSSL installed!
### ImageMagick
To install ImageMagick on **Ubuntu**, run the following:
sudo apt-get install imagemagick libmagick9-dev
To install ImageMagick on **Fedora**, run the following:
sudo yum install ImageMagick
To install ImageMagick on **Mac OS X**, run the following:
brew install imagemagick
### Git
To install Git on **Ubuntu**, run the following:
sudo apt-get install git-core
To install Git on **Fedora**, run the following:
sudo yum install git
To install Git on **Mac OS X**, run the following:
brew install git
### Rubygems
On **Ubuntu** 10.04, run the following:
sudo add-apt-repository ppa:maco.m/ruby
sudo apt-get update
sudo apt-get install rubygems
This PPA is maintained by an Ubuntu Developer. For Ubuntu 10.10, this version
of rubygems is in the repositories.
On **Fedora**, run the following:
sudo yum install rubygems
On **Mac OS X**, RubyGems comes preinstalled; however, you might need to update
it for use with the latest Bundler. To update RubyGems, run `sudo gem update
--system`.
### Bundler
After RubyGems is updated, simply run `sudo gem install bundler` to get
Bundler. If you're using Ubuntu repository .debs, bundler is found at
/var/lib/gems/1.8/bin/bundle
## Getting Diaspora
git clone http://github.com/diaspora/diaspora.git
If you have never used github before, their
[help desk](http://help.github.com/) has a pretty awesome guide on getting
setup.
## Running Diaspora
### Install required gems
To start the app server for the first time, you need to use Bundler to install
Diaspora's gem depencencies. Run `bundle install` from Diaspora's root
directory. Bundler will also warn you if there is a new dependency and you
need to bundle install again.
### Start Mongo
If you installed the Ubuntu package, MongoDB should already be running (if not,
run `service mongodb start`). If you installed the binary manually, run `sudo
mongod` from where mongo is installed to start mongo.
If you installed the Fedora package, MongoDB will need to be started via
`service mongod start`. If you installed the binary manually, run `sudo
mongod` from where Mongo is installed to start Mongo.
If you installed the OsX package through "brew", MongoDB will need to be
started via `sudo launchctl load
/Library/LaunchDaemons/org.mongodb.mongod.plist`. (before you have to go to
/Library/LaunchDaemons and add a symlink to
/usr/local/Cellar/mongodb/1.6.2-x86_64/org.mongodb.mongod.plist)
Diaspora will not run unless Mongo is running. Mongo will not run by default,
and will need to be started every time you wish to use or run the test suite
for Diaspora.
### Configure Diaspora
Diaspora needs to know where on the internet it is. Copy config/app_config_example.yml
to config/app_config.yml, put your url into the url field, and make any other
needed configuration changes.
### Run the server
`./script/server` will start both thin and the websocket server. If you want
to run a different app server, you will have to run them separately. See below
for instructions.
### Run the app server
Once mongo is running and bundler has finished, run `bundle exec thin start`
from the root Diaspora directory. This will start the app server in
development mode[.](http://bit.ly/9mwtUw)
### Run the websocket server
run `bundle exec ruby ./script/websocket_server` to start the websocket server
on port 8080. Change the port in config/app_config.yml.
### Logging in with a sample user
Run `rake db:seed:tom`, then login with user `tom` and password `evankorth`.
More details in db/seeds/tom.rb.
### Testing
Diaspora's test suite uses [rspec](http://rspec.info/), a behavior driven
testing framework. In order to run the tests, run `bundle exec rspec spec`.
## Resources

View file

@ -7,7 +7,7 @@
cross_server:
deploy_to: '/usr/local/app/diaspora'
user: 'root'
repo: 'git@github.com:diaspora/diaspora.git'
repo: 'git://github.com/diaspora/diaspora.git'
branch: 'master'
default_env: 'development'
servers:

View file

@ -0,0 +1,41 @@
# Copyright (c) 2010, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3. See
# the COPYRIGHT file.
fr-informal:
errors:
messages:
not_found: "introuvable"
already_confirmed: "a déjà été confirmé"
not_locked: "na pas été verrouillé"
devise:
failure:
unauthenticated: 'Tu dois te connecter ou tinscrire avant de continuer.'
unconfirmed: 'Tu dois confirmer ton compte avant de continuer.'
locked: 'Ton compte est verrouillé.'
invalid: 'Adresse e-mail ou mot de passe invalide.'
invalid_token: 'Jeton dauthentification invalide.'
timeout: 'Ta session a expiré, merci de te connecter de nouveau afin de continuer.'
inactive: 'Ton compte na pas encore été activé.'
sessions:
signed_in: 'Connecté avec succès.'
signed_out: 'Déconnecté avec succès.'
passwords:
send_instructions: 'Tu vas recevoir dans quelques minutes un e-mail contenant des instructions texpliquant comment réinitialiser ton mot de passe.'
updated: 'Ton mot de passe a été modifié avec succès. Tu es à présent connecté.'
confirmations:
send_instructions: 'Tu vas recevoir dans quelques minutes un e-mail contenant des instructions texpliquant comment confirmer ton compte.'
confirmed: 'Ton compte a été confirmé avec succès. Tu es à présent connecté.'
registrations:
signed_up: 'Tu tes inscrit avec succès. Si activée, une confirmation a été envoyée sur ton adresse e-mail.'
updated: 'Tu as mis à jour ton compte avec succès.'
destroyed: 'Au revoir ! Ton compte a été résilié avec succès. Nous espérons te revoir très bientôt.'
unlocks:
send_instructions: 'Tu vas recevoir dans quelques minutes un e-mail contenant des instructions texpliquant comment déverrouiller ton compte.'
unlocked: 'Ton compte a été déverrouillé avec succès. Tu es à présent connecté.'
mailer:
confirmation_instructions: 'Instructions de confirmation'
reset_password_instructions: 'Réinitialiser les instructions du mot de passe'
unlock_instructions: 'Instructions de déverrouillage'

View file

@ -0,0 +1,205 @@
# Copyright (c) 2010, Diaspora Inc. This file is
# licensed under the Affero General Public License version 3. See
# the COPYRIGHT file.
# Localization file for French (Informal Honorifics). Add more files in this directory for other locales.
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
fr-informal:
hello: "Bonjour tout le monde"
application:
helper:
unknown_person: "personne inconnue"
new_requests: "nouvelles requêtes"
dashboards:
helper:
home: "accueil"
error_messages:
helper:
invalid_fields: "Champs invalides"
correct_the_following_errors_and_try_again: "Corrige les erreurs suivantes, puis réessaie."
people:
helper:
results_for: " résultats concernant %{params}"
people_on_pod_are_aware_of: " personnes agissant comme des automates sont conscients de"
layouts:
application:
edit_profile: "éditer le profil"
logout: "déconnexion"
shared:
aspect_nav:
all_aspects: "Tous les aspects"
manage: "Gérer"
manage_your_aspects: "Gérer tes aspects"
sub_header:
all_aspects: "Tous les aspects"
manage_aspects: "Gérer les aspects"
publisher:
share: "Partager"
aspect_friends:
add_friends: "ajouter des amis"
albums:
album:
you: "toi"
new_album:
create: "créer"
add_a_new_album: "Ajouter un nouvel album"
show:
edit_album: "Éditer lalbum"
albums: "albums"
updated: "mis à jour"
by: "par"
edit:
editing: "Édition"
updated: "mis à jour"
are_you_sure: "Es-tu sûr(e) ?"
delete_album: "Supprimer lalbum"
cancel: "Annuler"
index:
home: "accueil"
new_album: "Nouvel album"
create:
success: "Tu as créé un album nommé %{name}."
update:
success: "Lalbum %{name} a été édité avec succès."
failure: "Lédition de lalbum %{name} a échoué."
destroy:
success: "Lalbum %{name} a été supprimé."
helper:
friends_albums: "Albums damis"
your_albums: "Tes albums"
aspects:
index:
photos: "photos"
show:
photos: "photos"
manage:
add_a_new_aspect: "Ajouter un nouvel aspect"
add_a_new_friend: "Ajouter un nouvel ami"
show: "Afficher"
update_aspects: "Mettre à jour les aspects"
requests: "Requêtes"
ignore_remove: "Ignorer/Supprimer"
new_aspect:
add_a_new_aspect: "Ajouter un nouvel aspect"
create: "Créer"
create:
success:"Clique sur le symbole plus situé sur le côté gauche afin que Diaspora détermine qui peut voir ton nouvel aspect."
destroy:
success: "%{name} a été supprimé avec succès."
update:
success: "Ton aspect, %{name}, a été édité avec succès."
move_friends:
failure: "Lédition de laspect concernant lami %{real_name} a échoué."
success: "Les aspects ont été édités avec succès."
move_friend:
error: "ne fonctionne pas %{inspect}"
notice: "Tu montres à présent à ton ami un aspect différent au tien."
helper:
remove: "supprimer"
aspect_not_empty: "Laspect nest pas vide"
users:
edit:
cancel: "Annuler"
update_profile: "Mettre à jour le profil"
home: "Accueil"
diaspora_username: "NOM DUTILISATEUR DIASPORA"
info: "Information"
picture: "Image"
editing_profile: "Édition du profil"
albums: "Albums"
you_dont_have_any_photos: "Tu nas aucune photo ! Rends-toi sur la page"
page_to_upload_some: "afin den transférer quelques-unes."
comments:
comment:
ago: "il y a"
new_comment:
comment: "Commentaire"
photos:
show:
prev: "précédent"
full_size: "taille réelle"
next: "suivant"
edit_photo: "Éditer la photo"
delete_photo: "Supprimer la photo"
are_you_sure: "Es-tu sûr(e) ?"
comments: "commentaires"
edit:
editing: "Édition"
are_you_sure: "Es-tu sûr(e) ?"
delete_photo: "Supprimer la photo"
photo:
show_comments: "afficher les commentaires"
posted_a_new_photo_to: "a publié une nouvelle photo sur"
new:
new_photo: "Nouvelle photo"
back_to_list: "Retourner à la liste"
post_it: "publie-la !"
create:
runtime_error: "Le transfert de la photo a échoué. Es-tu sûr(e) que ta ceinture de sécurité est bien attachée ?"
integrity_error: "Le transfert de la photo a échoué. Es-tu sûr(e) que cétait bien une image ?"
type_error: "Le transfert de la photo a échoué. Es-tu sûr(e) que limage était bien ajoutée ?"
update:
notice: "La photo a été mise à jour avec succès."
error: "Échec de lédition de la photo."
destroy:
notice: "Photo supprimée."
registrations:
new:
sign_up: "Inscription"
create:
success: "Tu as rejoint Diaspora !"
status_messages:
new_status_message:
tell_me_something_good: "dis-moi quelque chose de bien"
oh_yeah: "oh ouais !"
status_message:
show_comments: "afficher les commentaires"
delete: "Supprimer"
are_you_sure: "Es-tu sûr(e) ?"
show:
status_message: "Message détat"
comments: "commentaires"
are_you_sure: "Es-tu sûr(e) ?"
destroy: "Détruire"
view_all: "Tout voir"
message: "Message"
owner: "Propriétaire"
helper:
no_message_to_display: "Aucun message à afficher."
people:
person:
add_friend: "ajouter un ami"
pending_request: "requête en attente"
index:
add_friend: "ajouter un ami"
real_name: "nom réel"
diaspora_handle: "maniement de Diaspora"
thats_you: "cest toi !"
friend_request_pending: "Requête dami en attente"
you_have_a_friend_request_from_this_person: "tu as une requête dami de la part de cette personne"
new:
new_person: "Nouvelle personne"
back_to_list: "Retourner à la liste"
show:
last_seen: "dernière connexion : %{how_long_ago}"
friends_since: "amis depuis : %{how_long_ago}"
save: "sauvegarder"
are_you_sure: "Es-tu sûr(e) ?"
remove_friend: "supprimer un ami"
requests:
new_request:
add_a_new_friend_to: "Ajouter un ami à"
enter_a_diaspora_username: "Saisi un nom dutilisateur Diaspora :"
your_diaspora_username_is: "Ton nom dutilisateur Diaspora est : %{diaspora_handle}"
friends_username: "Nom dutilisateur de lami"
destroy:
success: "Vous êtes à présent amis."
error: "Merci de sélectionner un aspect !"
ignore: "Requête dami ignorée."
create:
error: "Aucun résultat Diaspora na été trouvé avec cette adresse e-mail !"
already_friends: "Tu es déjà ami avec %{destination_url}!"
success: "Une requête dami a été envoyée à %{destination_url}."
horribly_wrong: "Quelque chose dhorrible sest produit."

View file

@ -145,7 +145,7 @@ fr:
index:
add_friend: "ajouter un ami"
real_name: "nom réel"
diaspora_handle: "maniement de diaspora"
diaspora_handle: "maniement de Diaspora"
thats_you: "cest vous !"
friend_request_pending: "Requête dami en attente"
you_have_a_friend_request_from_this_person: "vous avez une requête dami de la part de cette personne"

View file

@ -3,8 +3,141 @@
# the COPYRIGHT file.
# Sample localization file for English. Add more files in this directory for other locales.
# Sample localization file for Russian. Add more files in this directory for other locales.
# See http://github.com/svenfuchs/rails-i18n/tree/master/rails%2Flocale for starting points.
ru:
hello: "Привет, мир"
layouts:
application:
edit_profile: "редактировать профиль"
logout: "выйти"
shared:
aspect_nav:
all_aspects: "Все аспекты"
manage: "Управление"
manage_your_aspects: "Управление вашими аспектами"
sub_header:
all_aspects: "Все аспекты"
manage_aspects: "Управление аспектами"
publisher:
share: "Опубликовать"
aspect_friends:
add_friends: "добавить друзей"
albums:
album:
you: "Вы"
new_album:
create: "создать"
add_a_new_album: "Добавить новый альбом"
show:
edit_album: "Редактировать альбом"
albums: "альбомы"
updated: "обновленные"
by: "по"
edit:
editing: "Редактирование"
updated: "обновлено"
are_you_sure: "Вы уверены?"
delete_album: "Удалить альбом"
cancel: "Отмена"
index:
home: "домой"
new_album: "Новый альбом"
create:
success: "Вы создали новый альбом %{name}."
update:
success: "Альбом %{name} успешно редактирован."
failure: "Невозможно редактировать альбом %{name}."
destroy:
success: "Альбом %{name} удален."
aspects:
index:
photos: "фотографии"
show:
photos: "фотографии"
manage:
add_a_new_aspect: "Добавить аспект"
add_a_new_friend: "Добавить друга"
show: "Показать"
update_aspects: "Обновить аспекты"
requests: "Запросы"
ignore_remove: "Игнорировать/Удалить"
new_aspect:
add_a_new_aspect: "Добавить аспект"
create: "Создать"
create:
success:"Нажмите на плюс слева, для того, что-бы указать Diaspora тех, кто может видеть ваш новый аспект."
users:
edit:
cancel: "Отмена"
update_profile: "Обновить профиль"
home: "Домой"
diaspora_username: "Имя пользователя DIASPORA"
info: "Информация"
picture: "Аватар"
editing_profile: "Редактирование профиля"
albums: "Альбомы"
you_dont_have_any_photos: "У вас нет ни одной фотографии! Перейдите на "
page_to_upload_some: "страницу для загрузки."
comments:
comment:
ago: "ранее"
new_comment:
comment: "Комментарий"
photos:
show:
prev: "предыдущая"
full_size: "полный размер"
next: "следующая"
edit_photo: "Редактировать"
delete_photo: "Удалить"
are_you_sure: "Вы уверены?"
comments: "комментарии"
edit:
editing: "Редактирование"
are_you_sure: "Вы уверены?"
delete_photo: "Удалить фотографию"
photo:
show_comments: "показать комментарии"
posted_a_new_photo_to: "опубликовано в"
new:
new_photo: "Новая фотография"
back_to_list: "Вернуться к списку"
post_it: "опубликовать!"
registrations:
new:
sign_up: "Выйти"
status_messages:
new_status_message:
tell_me_something_good: "скажи мне что-нибудь хорошее"
oh_yeah: "о да!"
status_message:
show_comments: "показать комментарии"
delete: "Удалить"
are_you_sure: "Вы уверены?"
show:
status_message: "Сообщение о статусе"
comments: "комментарии"
are_you_sure: "Вы уверены?"
destroy: "Уничтожить"
view_all: "Показать все"
message: "Сообщение"
owner: "Владелец"
people:
index:
add_friend: "добавить друга"
real_name: "настоящее имя"
diaspora_handle: "идентификатор diaspora"
thats_you: "это Вы!"
friend_request_pending: "запрос на дружбу в ожидании"
you_have_a_friend_request_from_this_person: "у вас есть запрос на дружбу от этого человека"
new:
new_person: "Новая персона"
back_to_list: "Обратно к списку"
show:
last_seen: "последний раз был %{how_long_ago}"
friends_since: "друзья с %{how_long_ago}"
save: "сохранить"
are_you_sure: "Вы уверены?"
remove_friend: "удалить друга"

View file

@ -33,7 +33,6 @@ Diaspora::Application.routes.draw do
match 'signup', :to => 'registrations#new', :as => "new_user_registration"
match 'get_to_the_choppa', :to => redirect("/signup")
match "/finger", :to => AsyncController
#public routes
#
match 'webfinger', :to => 'publics#webfinger'