My Ruby on Rails development environment

My Ruby on Rails development environment

Tagged under:  #ruby-on-rails#docker

There are plenty of options now to create your personal development environment, this is the one that works for me. I’ve been using it for a couple of years now and I’m really happy with it so, I thought I could share it with the world.

In my home network I have an old intel nuc 5i5RYH running ubuntu server as a development box where I have installed docker with docker-compose.

The idea is, for every project that I have to work, create a docker-compose file (if there isn’t one already) and run the project on the dev-box.

For the actual development work I use Visual Studio Code, with the Remote - SSH extension to connect to my nuc as if it where a local e. nvironment.

With this setup, I can actually work from any computer that’s connected to my home network, regardless of the operating system on it. As long as I can ssh into my nuc and edit files on it, I’m good to go. Also, I can upgrade my computer with no risks of things stopping to work or delays attached to compatibility issues with newer operating system versions or anything like that.

Another benefit of this setup is that I don’t “kill” my computer runnning several docker containers at once, all the heavy lifting is being handled by the nuc. So I could easily be working with a regular computer with no super powers.

My only “problem” I currently have is that I can ONLY work from home with this setup, since I need to be connected to my local network, I don’t have the ability to ssh from the office or a coffee shop.

But that problem could be solved if I set up a VPN to which I could connect so I can access my home stuff from the internet. That’s something on my TODO list, since I don’t really have to worry about working from other places. Though it’s totally a nice to have feature and would bring this setup more versatility.

Hope this helps you or gives you some ideas on how to set up your working environment, there’s no perfect solution so whatever works for me may not be ideal for you or anyone else. This is just how I usually works and it became really useful for my day to day job.