This commit is contained in:
Your Name
2022-06-29 13:15:55 -04:00
commit 4e044251eb
18 changed files with 2437 additions and 0 deletions
@@ -0,0 +1,147 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Deploying with Inploy - An alternative to Capistrano</title>
<meta name="description" content="Inploy is similar to Capistrano but easier - it has better defaults and it is more forgiving when you dont know what youre doing (me).">
<link rel="stylesheet" href="/css/main.css">
<link rel="canonical" href="http://blog.krisforbes.ca/2011/07/25/deploying-with-inploy-an-alternative-to-capis.html">
<link rel="alternate" type="application/rss+xml" title="Kris Forbes Blog" href="http://blog.krisforbes.ca/feed.xml">
</head>
<body>
<header class="site-header" role="banner">
<div class="wrapper">
<a class="site-title" href="/">Kris Forbes Blog</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<svg viewBox="0 0 18 15">
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a class="page-link" href="/about/">About</a>
</div>
</nav>
</div>
</header>
<main class="page-content" aria-label="Content">
<div class="wrapper">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h1 class="post-title" itemprop="name headline">Deploying with Inploy - An alternative to Capistrano</h1>
<p class="post-meta"><time datetime="2011-07-25T20:26:00-04:00" itemprop="datePublished">Jul 25, 2011</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p>Inploy is similar to Capistrano but easier - it has better defaults and it is more forgiving when you dont know what youre doing (me).</p>
<h3 id="inploy-on-your-development-machine">Inploy on your development machine:</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>add to Gemfile: gem inploy
bundle install —without production
Create deploy.rb under your apps config directory. The basic config/deploy.rb file:
application <span class="o">=</span> “test”repository <span class="o">=</span> git@git.assembla.com:my-apps-repo.githosts <span class="o">=</span> <span class="o">[</span>zer1]path <span class="o">=</span> /home/deploy
</code></pre>
</div>
<h3 id="notes-on-deployrb">Notes on deploy.rb:</h3>
<ul>
<li>default user is deploy</li>
<li>deploys to #{path}/#{application}</li>
<li>Inploys hosts will look to your development machines .ssh/config (so add your production server)</li>
</ul>
<h3 id="inploy-commands">Inploy commands</h3>
<p>#### Pull the app from repo, bundle install, create database, migrate:
<code class="highlighter-rouge">
bundle exec rake inploy:remote:setup
</code></p>
<h4 id="once-youre-setup-you-can-update-your-app-and-repo">Once youre setup, you can update your app and repo:</h4>
<div class="highlighter-rouge"><pre class="highlight"><code>bundle exec rake inploy:remote:update
</code></pre>
</div>
<p>Thats it! You can learn more about Inploy on Github.</p>
</div>
</article>
</div>
</main>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">Kris Forbes Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Kris Forbes Blog</li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/krisf"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
</span><span class="username">krisf</span></a>
</li>
<li>
<a href="https://twitter.com/forbes_kris"><span class="icon icon--twitter"><svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
</span><span class="username">forbes_kris</span></a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Kris Forbes - Personal blog covering experiences with tech such as Docker, Azure, OVH, Linux, Windows, etc.</p>
</div>
</div>
</div>
</footer>
</body>
</html>
@@ -0,0 +1,217 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Rails on Ubuntu 10.04: Passenger, Nginx, MySQL, Varnish</title>
<meta name="description" content="I setup a new VPS this weekend and decided to share my notes.My notes are from being logged in as root. If youre logged in as another user, youll be typing...">
<link rel="stylesheet" href="/css/main.css">
<link rel="canonical" href="http://blog.krisforbes.ca/2011/07/25/rails-on-ubuntu-1004-passenger-nginx-mysql-va.html">
<link rel="alternate" type="application/rss+xml" title="Kris Forbes Blog" href="http://blog.krisforbes.ca/feed.xml">
</head>
<body>
<header class="site-header" role="banner">
<div class="wrapper">
<a class="site-title" href="/">Kris Forbes Blog</a>
<nav class="site-nav">
<a href="#" class="menu-icon">
<svg viewBox="0 0 18 15">
<path fill="#424242" d="M18,1.484c0,0.82-0.665,1.484-1.484,1.484H1.484C0.665,2.969,0,2.304,0,1.484l0,0C0,0.665,0.665,0,1.484,0 h15.031C17.335,0,18,0.665,18,1.484L18,1.484z"/>
<path fill="#424242" d="M18,7.516C18,8.335,17.335,9,16.516,9H1.484C0.665,9,0,8.335,0,7.516l0,0c0-0.82,0.665-1.484,1.484-1.484 h15.031C17.335,6.031,18,6.696,18,7.516L18,7.516z"/>
<path fill="#424242" d="M18,13.516C18,14.335,17.335,15,16.516,15H1.484C0.665,15,0,14.335,0,13.516l0,0 c0-0.82,0.665-1.484,1.484-1.484h15.031C17.335,12.031,18,12.696,18,13.516L18,13.516z"/>
</svg>
</a>
<div class="trigger">
<a class="page-link" href="/about/">About</a>
</div>
</nav>
</div>
</header>
<main class="page-content" aria-label="Content">
<div class="wrapper">
<article class="post" itemscope itemtype="http://schema.org/BlogPosting">
<header class="post-header">
<h1 class="post-title" itemprop="name headline">Rails on Ubuntu 10.04: Passenger, Nginx, MySQL, Varnish</h1>
<p class="post-meta"><time datetime="2011-07-25T19:59:00-04:00" itemprop="datePublished">Jul 25, 2011</time></p>
</header>
<div class="post-content" itemprop="articleBody">
<p>I setup a new VPS this weekend and decided to share my notes.
My notes are from being logged in as root. If youre logged in as another user, youll be typing sudo a lot. :)</p>
<h3 id="configure-your-locale">Configure your locale </h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>locale -a
locale-gen en_US.UTF-8
update-locale <span class="nv">LANG</span><span class="o">=</span>en_US.UTF-8
update-locale <span class="nv">LANGUAGE</span><span class="o">=</span>en_US.UTF-8
<span class="nb">exit
</span>ssh zer1 <span class="c">#zer1 is my VPS added to ~/.ssh/config </span>
locale -a <span class="c">#should have en_US.UTF-8 listed </span>
update-locale <span class="c">#errors? </span>
<span class="c"># Set your time zonedpkg-reconfigure tzdata </span>
ntpdate ntp.ubuntu.com
</code></pre>
</div>
<h3 id="update-ubuntu">Update Ubuntu</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>apt-get update <span class="o">&amp;&amp;</span> apt-get upgrade
Install dependenciesapt-get install build-essential libmagickcore-dev imagemagick libxml2-dev libxslt1-dev git-core libapr1-dev libssl-dev libmysqlclient15-dev libcurl4-openssl-dev curl libncurses5-dev libreadline5-dev libopenssl-ruby1.9
</code></pre>
</div>
<h3 id="install-mysql">Install MySQL</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>apt-get install mysql-server libmysqlclient-dev libmysqlclient15-dev libmysql-ruby
mysql_secure_installation
Install latest Ruby from sourcewget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.gz
tar zxvf ruby-1.9.2-p290.tar.gz
<span class="nb">cd </span>ruby-1.9.2-p290.tar.gz
./configure
make
make install
which ruby
gem list
gem install passenger mysql bundler
</code></pre>
</div>
<h3 id="set-default-environment-for-rails">Set default environment for Rails</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code><span class="nb">echo</span> <span class="s2">"export RAILS_ENV=production"</span> &gt;&gt; /etc/environment
Install Nginx and Passengerpassenger-install-nginx-module
curl -L https://raw.github.com/jnstq/rails-nginx-passenger-ubuntu/master/nginx/nginx &gt; /etc/init.d/nginx
chmod +x /etc/init.d/nginx
update-rc.d nginx defaults
service nginx start
</code></pre>
</div>
<h3 id="configure-nginx">Configure Nginx</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>mkdir /opt/nginx/conf/sites-enabled
nano /opt/nginx/conf/nginx.conf
add this within the http <span class="o">{</span> <span class="o">}</span> block:
change default listen port to 8080
include /opt/nginx/conf/sites-enabled/<span class="k">*</span>;
nano /opt/nginx/conf/sites-enabled/test
<span class="k">*</span>note port 8080 <span class="k">for </span>Varnish
server <span class="o">{</span>    listen 8080;    server_name mywebsite.com;    root /home/deploy/test/public;    passenger_enabled on;<span class="o">}</span>
service nginx restart
</code></pre>
</div>
<h3 id="add-deploy-user">Add deploy user</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>adduser deploy
su deploy <span class="c">#switches to deploy</span>
ssh-keygen -t rsa -C “deploy@myserver”
cat ~/.ssh/id_rsa.pub
copy the output into your favorite Git hosting as an allowed key <span class="o">(</span>Assembla, Github, etc<span class="o">)</span>
on your development machine:
cat ~/.ssh/id_rsa.pub
on the server as deploy user:
nano ~/.ssh/authorized_keys
paste <span class="k">in </span>your development machines public key
git clone git@git.assembla.com:myapp.git      #lets you add host as known_host
rm -rf myapp         
Create a MySQL user and databasemysql -u root -p
create database myapp_prod;
create user mydbuser@localhost identified by secret;
grant all privileges on myapp_prod.<span class="k">*</span> to mydbuser@localhost;
</code></pre>
</div>
<h3 id="install-varnish-http-cache">Install Varnish HTTP cache</h3>
<div class="language-bash highlighter-rouge"><pre class="highlight"><code>apt-get install subversion autotools-dev automake1.9 libtool autoconf libncurses-dev xsltproc quilt debhelper
svn co http://varnish-cache.org/svn/tags/varnish-2.0.5
<span class="nb">cd </span>varnish-2.0.5/varnish-cache
dpkg-buildpackage
<span class="nb">cd</span> ..
dpkg -i libvarnish1_2.0.6-2_i386.deb
dpkg -i varnish_2.0.6-2_i386.deb
service varnish start
Configure Varnishnano /etc/varnish/default.vcl
Leave this at defaults, but now you know where it is :<span class="o">)</span>
nano /etc/default/varnish
Comment out DAEMON_OPTS use the following instead:
<span class="nv">DAEMON_OPTS</span><span class="o">=</span>”-a :80 -f /etc/varnish/default.vcl -s file,/var/lib/varnish/<span class="nv">$INSTANCE</span>/varnish_storage.bin,1G”
service varnish restart
</code></pre>
</div>
</div>
</article>
</div>
</main>
<footer class="site-footer">
<div class="wrapper">
<h2 class="footer-heading">Kris Forbes Blog</h2>
<div class="footer-col-wrapper">
<div class="footer-col footer-col-1">
<ul class="contact-list">
<li>Kris Forbes Blog</li>
</ul>
</div>
<div class="footer-col footer-col-2">
<ul class="social-media-list">
<li>
<a href="https://github.com/krisf"><span class="icon icon--github"><svg viewBox="0 0 16 16"><path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/></svg>
</span><span class="username">krisf</span></a>
</li>
<li>
<a href="https://twitter.com/forbes_kris"><span class="icon icon--twitter"><svg viewBox="0 0 16 16"><path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809c-0.632,0.375-1.332,0.647-2.076,0.793c-0.596-0.636-1.446-1.033-2.387-1.033c-1.806,0-3.27,1.464-3.27,3.27 c0,0.256,0.029,0.506,0.085,0.745C5.163,5.404,2.753,4.102,1.14,2.124C0.859,2.607,0.698,3.168,0.698,3.767 c0,1.134,0.577,2.135,1.455,2.722C1.616,6.472,1.112,6.325,0.671,6.08c0,0.014,0,0.027,0,0.041c0,1.584,1.127,2.906,2.623,3.206 C3.02,9.402,2.731,9.442,2.433,9.442c-0.211,0-0.416-0.021-0.615-0.059c0.416,1.299,1.624,2.245,3.055,2.271 c-1.119,0.877-2.529,1.4-4.061,1.4c-0.264,0-0.524-0.015-0.78-0.046c1.447,0.928,3.166,1.469,5.013,1.469 c6.015,0,9.304-4.983,9.304-9.304c0-0.142-0.003-0.283-0.009-0.423C14.976,4.29,15.531,3.714,15.969,3.058z"/></svg>
</span><span class="username">forbes_kris</span></a>
</li>
</ul>
</div>
<div class="footer-col footer-col-3">
<p>Kris Forbes - Personal blog covering experiences with tech such as Docker, Azure, OVH, Linux, Windows, etc.</p>
</div>
</div>
</div>
</footer>
</body>
</html>