Установка Diaspora на Gentoo/Calculate Linux

Diaspora New Install

В рамках проекта Diaspora развивается децентрализованная социальная сеть, в которой пользователи сами контролируют свои данные, размещая их на собственных локальных серверах. Каждый локальный сервер выступает полноценным сегментом сети, совокупность которых образует единую распределённую социальную сеть. Весь трафик в сети снабжается цифровой подписью и шифруется. Код системы написан на языке Ruby и распространяется под лицензией AGPLv3.

Для установки и тестирования я запустил виртуальный сервер в VirtualBox и установил на него Calculate Scratch Server (CSS).

Первым делом обновил портажи

1
eix-sync

Второй важный для меня шаг — установка mc (Midnight commander)

1
emerge -av app-misc/mc

Следующим шагом нужно внести изменения в /etc/portage/package.use/custom и добавить туда строки:

1
2
dev-lang/ruby threads
media-gfx/imagemagick bzip2 corefonts fftw fontconfig hdri jbig jpeg jpeg2k lcms lzma openexr pango png postscript raw svg tiff truetype wmf xml zlib

Теперь можно устанавливать все необходимое:

1
emerge nodejs imagemagick mysql dev-vcs/git libxslt ruby rubygems dev-db/redis

Nginx (Вы можете изменить список модулей, но многие из представленных обязательны для Diaspora)

1
NGINX_MODULES_HTTP="spdy access auth_basic autoindex browser charset empty_gif fastcgi geo gzip limit_conn limit_req map memcached proxy referer rewrite scgi split_clients ssi upstream_ip_hash userid uwsgi geoip" emerge -av nginx

Сразу настроим Nginx. Создадим самоподписанные сертификаты SSL. Можно использовать StartSSL для реального проекта.

1
2
3
4
5
6
mkdir /etc/nginx/ssl
chown root:root /etc/nginx/ssl
chmod 700 /etc/nginx/ssl
cd /etc/nginx/ssl
openssl req -new -x509 -days 9999 -nodes -newkey rsa:2048 -out cert.pem -keyout cert.key
openssl dhparam 2048 > dhparam.pem

Мой пример конфига: http://1cl.in/p/31, затем запускаем Nginx

1
2
rc-service nginx start
rc-update add nginx default

Необходимо настроить MySQL (если у вас чистая установка mysql):

1
2
3
emerge --config =dev-db/mysql-5.6.24 #Скрипт спросит новый пароль для mysql root
rc-service mysql start
rc-update add mysql default

Создать базу:

1
mysql -uroot -p -e "CREATE USER 'pod'@'localhost' IDENTIFIED BY 'DAEbjATMQtef2rd7';GRANT USAGE ON *.* TO 'pod'@'localhost' IDENTIFIED BY 'DAEbjATMQtef2rd7' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;CREATE DATABASE IF NOT EXISTS pod;GRANT ALL PRIVILEGES ON pod.* TO 'pod'@'localhost';"

Необходимо так же установить компоненты ruby. После установки rubygems команда gem не доступна, требуется доделывать вручную:

1
2
chmod +x /usr/bin/gem20 # если у вас другая версия, придется поменять имя
ln -s /usr/bin/gem20 /usr/bin/gem

Устанавливаем rails и bundler

1
2
3
gem update --system
gem install rails
gem install bundler

Запуск RdisDb

1
2
/etc/init.d/redis start
rc-update add redis default

Можно переходить к установке приложения Diaspora

1
2
3
useradd -m diaspora
passwd diaspora
su -l diaspora

git clone -b master git://github.com/diaspora/diaspora.git
cd diaspora

Скопируем конфиги

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

В config/database.yml я отредактировал подключение к mysql и закомментировал все строки с postgrees
В config/diaspora.yml необходимо установить
1) url, на котором будет работать социальная сеть, например https://ownpod.lo
2) certificate_authorities: ‘/etc/ssl/certs/ca-certificates.crt’
3) redis: ‘unix:///tmp/redis.sock’
4) require_ssl: true
5) admins account: master (логин вашего админа)
6) podmin_email: ‘mail@masterit.ru’

Идем дальше:

1
2
3
4
RAILS_ENV=production bin/bundle install --without test development
RAILS_ENV=production DB=mysql bundle exec rake db:drop
RAILS_ENV=production bundle exec rake db:create
RAILS_ENV=production bundle exec rake db:migrate

Теперь осталось запустить:

1
./scripts/server

Что почитать:



Запись опубликована в рубрике Софт с метками , , , , , , , . Добавьте в закладки постоянную ссылку.


Поделиться с друзьями




Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *