Skip to content

Развёртывание проекта с нуля под Ubuntu Server

adrianov edited this page Aug 17, 2013 · 10 revisions

Тут вкратце написано о том, как поднять у себя проект под Ubuntu Server. Например, в виртуалке.

Установить sshd, nginx, git, PostgreSql, curl

sudo apt-get install openssh-server nginx git postgresql postgresql-server-dev-all, curl

Установить необходимые зависимости для компиляции Ruby

sudo apt-get build-dep ruby1.9.1

(NOTE: По факту у нас вроде используется rmv, а не rbenv, но я разворачивал с rbenv) Установить Ruby с помощью rbenv

git clone https://github.com/sstephenson/rbenv.git ~/.rbenv  
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.profile  
echo 'eval "$(rbenv init -)"' >> ~/.profile  
exec $SHELL -l  
git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build  
rbenv install 2.0.0-p247

Выбрать для использования новую версию Ruby, а не ту, которая устанавливается вместе с системой

rbenv global 2.0.0-p247  
rbenv rehash

Установить bundler

gem install bundler  
rbenv rehash

Задать пароль PostgreSQL

sudo -u postgres psql  
\password

В файле /etc/postgresql/9.1/main/pg_hba.conf заменить

local   all             postgres                                peer

на

local   all             postgres                                md5  

Перезапустить PostgreSQL

sudo service postgresql restart

Клонировать репозиторий

git clone https://github.com/fbkinfo/rosvybory.git  
cd rosvybory

Установить все gem’ы

bundle install

Прописать настройки БД

cd rosvybory/config/
cp database.yml.template database.yml
nano database.yml

Создать начальную БД

rake db:create  
rake db:migrate  
rake db:seed

Прописать для nginx проксирование unicorn. Например, в файле /etc/nginx/sites-available/unicorn_rails:

upstream unicorn {
  server localhost:8080 fail_timeout=0;
}
server {
  listen 80 default deferred;
  # server_name example.com;
  root /home/ubuntu/rosvybory/public;
  location ^~ /assets/ {
    gzip_static on;
    expires max;
    add_header Cache-Control public;
  }
  try_files $uri/index.html $uri @unicorn;
  location @unicorn {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_pass http://unicorn;
  }
  error_page 500 502 503 504 /500.html;
  client_max_body_size 4G;
  keepalive_timeout 10;
}

Удалить конфигурацию nginx по умолчанию:

sudo rm /etc/nginx/sites-available/default

Запустить unicorn

bundle exec unicorn -D

Запустить nginx

sudo service nginx start

Теперь проект должен открываться в браузере.