Do not run Rails with pending migrations

Database migrations are the tricky part of any deployment. They make zero-time deploys problematic. They requires special attention since they can break stuff. Some might choose to run migrations automatically, some of us run them manually. But one thing is almost always true; the production code without migrations should not ever run. So how not […]

Allowing Nginx to use a Puma/Unicorn UNIX socket with SELinux

If you are deploying Ruby web application on Fedora with Puma (or other) application server and Nginx web server as a proxy, you might encounter SELinux forbidding Nginx to use the Puma socket. Here is how to create a SELinux policy module that you can use during your server provisioning.

Setting up git push code deploy to remote server

If you are setting up your own remote server/VPS you will probably like to make it easy to deploy your code with simple git push. In other words you want to setup something that providers such as Heroku or OpenShift let you do to deploy your code. Luckily, it’s very easy!