Deploy Rails приложения на DigitalOcean Часть 1
Создано больше 4 лет назад
- Для начала необходимо создать дроплет. Дроплет я создал на Ubuntu 16.04. Дроплет обычно называют по имени хоста.
- Подключаемся к серверу через терминал по ssh: ssh root@IP adress
- Создаем пользователя deployer: adduser deployer
- Дальше нужно дать пользователю deployer sudo права для этого в терминале набираем команду: visudo в открывшемся файле вводим после пользователя root: deployer ALL=(ALL:ALL) ALL сохраняем Ctrl O выход Ctrl X.
- Далее нужно изменить стандартный ssh порт, для этого в терминале набираем команду: nano /etc/ssh/sshd_config. В открывшемся окне меняем порт с 22 на любой другой
- Далее нужно перегрузить ssh порт, для этого в терминале набираем команду: reload ssh В Ubuntu 16.04 нужно установить upstart и переключится на него: sudo apt-get install upstart-sysv
- Подключаемся к серверу через терминал по ssh: ssh deployer@IP adress -p yourport
- Создаем паку для подключения по ssh буз пароля: mkdir ~/.ssh
- Открываем новый терминал и вводим команду для копирования ключа: cat ~/.ssh/id_rsa.pub | ssh -p yourport deployer@yourIP 'cat >> /home/deployer/.ssh/authorized_keys'
- Проверяем наличие файла authorized_keys: ls ~/.ssh. Выходим командой exit. После этого при входе больше не должен запрашиваться пароль.
- Обновим пакеты: sudo apt-get update затем sudo apt-get upgrade
- Установим локальное время: sudo dpkg-reconfigure tzdata. В появившемся окне выбрать Москву.
- Перезагрузим сервер: sudo reboot
- Установим curl: sudo apt-get install curl
- Установим RVM: curl -L get.rvm.io | bash -s stable
- Загрузим RVM: source /home/deployer/.rvm/scripts/rvm
- Установим зависимости для RVM: rvm requirements
- Установим ruby: rvm install 2.3.1
- Указываем дефолтную версию ruby: rvm use 2.3.1 --default
- Устанавливаем postgresql: sudo apt-get install postgresql postgresql-contrib postgresql-server-dev-9.5
- Зададим пароль для пользователя postgres: sudo -u postgres psql В psql ввести команду alter user postgres with password 'ваш пароль';
- Устанавливаем Git: sudo apt-get install git-core
- Устанавливаем gem passenger: gem install passenger
- Устанавливаем gem bundler: gem install bundler
- Устанавливаем passenger: rvmsudo passenger-install-nginx-module
- После установки passenger надо установить библиотеки : sudo apt-get install libcurl4-openssl-dev
- Если память на сервере 1GB нужно сделать swap:
sudo dd if=/dev/zero of=/swap bs=1M count=1024
sudo mkswap /swap
sudo swapon /swap
- Устанавливаем passenger снова: rvmsudo passenger-install-nginx-module Во время установки выбираем 1-ый вариант установки nginx, далее нажимаем Enter
- редактируем конфигурацию nginx для этого вводим команду: sudo nano /opt/nginx/conf/nginx.conf
- В блоке server прописываем server_name: www.вашхост.ru
- Ниже добавляем строчку с root папкой, где будет находится ваше приложение: root /home/deployer/имяприложения/current/public;
- Ниже добавляем строчку: passenger_enabled on;
- Раскомментируем строчку: gzip on;
- Переписываем блок location приводя к следующему виду:
location ^~ /assets {
gzip_static on;
expires max;
add_header Cache-Control public;
}
Сохраняемся и выходим - Клонируем скрипт для управления nginx: git clone https://github.com/vkurennov/rails-nginx-passenger-ubuntu.git
- Копируем скрипт nginx: sudo cp rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/
- Даем файлу sudo права: sudo chmod +x /etc/init.d/nginx
- Удаляем репозиторий: rm -rf rails-nginx-passenger-ubuntu
- Теперь мы можем управлять nginx командами:
sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart
sudo /etc/init.d/nginx status
- Теперь нужно проверить правильность настроек. Для этого запускаем nginx и заходим на нашу страницу Должна высветится 404 страница nginx.
- Устанавливаем redis(опционально): sudo apt-get install redis-server
- Настраиваем redis: sudo cp /etc/redis/redis.conf /etc/redis/redis.conf.default
- Перезапускаем redis: sudo service redis-server restart
- Устанавливаем sphinx(опционально): sudo apt-get install sphinxsearch
- Устанавливаем imagemagick(опционально): sudo apt-get install -y imagemagick
- Ставим mail server(опционально): sudo apt-get install exim4-daemon-light mailutils
- Конфигурируем mail server: sudo dpkg-reconfigure exim4-config. В открывшемся графическом интерфейсе выбираем настройки соглаcно предлагаемым инструкциям. Директорию меняем на home(в одном из пунктов выбора)./li>
- Проверяем mail server: echo "This is a test" | mail -s Testing вашапочта@gmail.com
Вот и все сервер готов к деплою вашего приложения
2 Комментария
LelandScoca
301 Moved Permanently <a href=https://www.viagrapascherfr.com/>Show more...</a>
Добавлен больше 3 лет назад
Caseyslurb
<a href=https://www.viagrapascherfr.com/>Click here!</a>
Добавлен больше 3 лет назад
Добавить комментарий: