Skip to content

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

Oleksii Chyrkov edited this page Feb 28, 2014 · 10 revisions

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

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

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

Поставить Ruby-2.0.0.-p247 через RVM:

rvm install 2.0.0-p247

Установить bundler

gem install bundler  

Задать пароль 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

Прописать настройки БД и другие (см. все файлы *.sample)

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

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

rake db:setup

Прописать для 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;
  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;
}

Создать симлинк

sudo ln /etc/nginx/sites-available/unicorn_rails /etc/nginx/sites-enabled/unicorn_rails

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

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

Запустить unicorn

bundle exec unicorn -D

Запустить nginx

sudo service nginx start

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

Создание пользователя админки в новой БД:

user = User.create!(:phone => '1234567890', :email => '[email protected]', :password => 'password', :password_confirmation => 'password')
user.add_role :admin
user.save!