Тема: Nginx и Middleman (Ruby)
Что-то на извращение потянуло... Есть API документатор https://github.com/lord/slate который очень нравится программистам. Все бы хорошо, но он написан на Ruby, а если это все надо поставить на Debian8 то проблема в квадрате.
Ставим руби, примерно так:
apt-get update
apt-get install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm3 libgdbm-dev git
Создаем пользователя и все остальные операции делаем от его имени. Home /var/www
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc
type rbenv
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
rbenv install -l
rbenv install 2.3.3
rbenv global 2.3.3
ruby -v
echo "gem: --no-document" > ~/.gemrc
gem install bundler
gem install middleman
Теперь в /var/www/api1/current клонируем Slate. Настраиывем nginx. Все по желанию, домен, ssl...
...
location = /api1 {
return 302 /api1/;
}
location ~ ^/api1(/?)(.*)$ {
proxy_pass http://127.0.0.1:4567/$2$is_args$args;
}
...
и systemd service для запуска middleman'a
# cat /etc/systemd/system/middleman-api1.service
[Unit]
Description=Middleman api1 container
[Service]
User=www-data
Restart=always
WorkingDirectory=/var/www
ExecStart=/bin/bash -lc 'source /var/www/.bashrc ; cd /var/www/api1/current ; bundle exec middleman server --watcher-force-polling --watcher-latency=1'
[Install]
WantedBy=default.target
Немного кривоватенько, еще не придумал до конца как сделать поудобнее, как появится больше проектов - буду додумывать.