В рамках проекта 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: ‘[email protected]’
Идем дальше:
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 |
Что почитать:
- Официальный сайт Diaspora
- Установка Diaspora на Gentoo (устаревшая версия)
- Статья об установке на виртуальную машину
- Настройка для Mysql в production режиме
- Скачать Calculate Linux
- Nginx
- Nginx & SSL
- Новый сервис для Pastebin