This site undergoes continual testing and will often and intentionally be flawed as it's experimental by nature
What Technology Drives This Site?
Even though the site itself is extremely basic in form, I've used some relatively advanced (over-developed) solutions to get it up and running. One of the technologies I'm most excited about is Docker ( https://docker.com ). If you aren't yet familiar with Docker, the easiest way to describe it is to begin with Docker's own explanation and then to expand on that...
"Docker containers wrap a piece of software in a complete filesystem that contains everything needed to run: code, runtime, system tools, system libraries – anything that can be installed on a server. This guarantees that the software will always run the same, regardless of its environment."The way I think of Docker is to think of it as a Virtualization layer that you can run on any computer, server or even virtual machine. The idea is that you can spin up a virtual machine, install Docker and then deploy multiple Docker "containers" -- each container will run a very specific application. For example: This site uses multiple Docker containers. One container handles caching/load-balancing... This is an Nginx container. Two others run the Rails application that serves the site itself. And finally the last container handles the database for User and Blog data. Normally you might spin up multiple VMs to accomplish this (similar to containers) or you might install all of the above on a single server/VM and setup interconnectivity. The down-side of doing this in a traditional way is that VMs take time to configure, spin up and secure. A single server solution requires that you consider memory and CPU limitations. Using Docker, we can address these issues as follows...
Each Docker container can spin up in seconds instead of minutes as is standard with many VMs. Each container is completely isolated and only connections that are specifically allowed are enabled. The nice thing here is that I can spin up and shut down these containers with minimal effort and everything is entirely scriptable. Meaning I can configure these containers using Dockerfiles which are basically text files. This means I can configure and test an entire application solution with multiple containers (services/apps) all on my local machine and I can trust that such configurations translate perfectly to any other server/machine.
You have a WordPress site setup on a remote server/VM. You are hacked due to poor choices made by people who have administration accounts. Rather than worry about restoring from backups and then trying to better configure the server, you can tweak your local Docker configuration, shut down the remote containers and spin up the new ones (completely clean and void of infection) in seconds.
I could go on about the other benefits to Docker, but rather than do that, I suggest you have a look at Docker.com and see for yourself. Let me know if you have any questions.
It's just a basic contact form. I used the 'mail' gem and ActionMailer to implement a basic contact form for the site. It's as basic as it gets, but it's incredibly easy to implement using Rails. In the future, I'll be adding some spam prevention functionality.
The all new Lodgik site has launched. I plan on sharing a lot of useful (hopefully) information about how the site is constructed, hosted and even eventually making the code open source. The goal is to help share experiences, shortcuts and whatever else proves useful with anyone interested.