Installing Magento 2 on Red Hat Openshift

Openshift is brilliant. Mostly because it’s free, but also for it’s more advanced features like being able to deploy your website simply pushing your master branch from git.

Red hat Openshift

Getting back to it being free, there are obviously limitations in the scope of the gears (I think of gears as servers). In trying to setup Magento 2 I came up to those limitations. According to How to Install Magento 2 on Openshift;

  • Magento 2 requires PHP 5.5+ and OpenShift currently has official cartridges of up to PHP 5.4
  • Magento 2 requires shit loads of space, and OpenShift free gears are limited to 1GB
  • Magento 2 requires MySQL 5.6+ and OpenShift currently supports up to MySQL 5.5 official cartridges

After following this excellent set of instructions, we managed to launch a full fledged Magento 2 store, hosted for free here. All you’ll need is a free openshift account, and the OpenShift Client Tools.


# Create a new OpenShift app with NGINX as web server
# Replace "123" by your actual api key & secrets and
# $myapp with your preferred app name.

# Write down the “Git Remote” ssh url that will be shown once the command finishes.
rhc create-app $myapp http://cartreflect-claytondev.rhcloud.com/github/boekkooi/openshift-cartridge-nginx API_KEY=123 API_SECRET=123

# Install PHP 5.6 cartridge into the app
rhc cartridge add -a $myapp http://cartreflect-claytondev.rhcloud.com/github/boekkooi/openshift-cartridge-php

# Install mysql-5.5 cartridge into the app
rhc cartridge add -a $myapp mysql-5.5

# Clone our repository and push it to your app, we will take care of everything for you.
git clone https://github.com/javilumbrales/magento2-openshift
cd magento2-openshift

# Remember to replace $myapp by your app’s name and YOUR_GIT_REMOTE by your actual repository url, the one that you got when you created the app (ie. should be something like ssh://*******@magento2-mage2.rhcloud.com/~/git/yourappname.git/)
git remote add $myapp YOUR_GIT_REMOTE
git push $myapp master -f

Magento is hard

Free open source ecommerce platform helping you sell online

I’m not going to lie, Magento is hard. The codebase contains 30,000 files. It’s like WordPress’s much more sophisticated older sibling. It’s modular and designed to be chopped up and hacked so long as that is done in the right way. There are plenty of wrong ways.

If you need to run a website on your local mac, you’re going to need to follow read “Installing Nginx in Mac OS X Maverick With Homebrew“.

That should give you what you need to then attempt to install Magneto for the first time. To be fair, that part is quite easy. It’s when you lift up the hood and catch sight of all those olden days cogs and whirring moving parts that you realise that there’s a lot more to Magento than a shopping cart.

Progressive Web Apps

The first week of my new job has been interesting. This is a smart group of people who are engineering some very high end eCommerce websites for big clients like Coopers Beer & Haighs Chocolate.

One of the things I’ve been working on recently is the idea of creating enhanced front ends for exiting systems like WordPress or Magento. I’m thinking about Single Page App using React or something similar to connect to a RESTful API provided by the system being enhanced. The idea is to leave the older display layers in place for the search engines to index but then adding an uber-display layer on top for users whom it suits.

What I’ve learned here at Aligent is that this is already an idea which is quickly taking shape in the ever speedy world of web development. There are a few concepts I hadn’t thought of, but essentially what I had in mind was a Progressive Web App. I’m on it.

This new level of quality allows Progressive Web Apps to earn a place on the user's home screen.

A Progressive Web App is:

  • Progressive – Works for every user, regardless of browser choice because it’s built with progressive enhancement as a core tenet.
  • Responsive – Fits any form factor: desktop, mobile, tablet, or whatever is next.
  • Connectivity independent – Enhanced with service workers to work offline or on low-quality networks.
  • App-like – Feels like an app to the user with app-style interactions and navigation because it’s built on the app shell model.
  • Fresh – Always up-to-date thanks to the service worker update process.
  • Safe – Served via HTTPS to prevent snooping and to ensure content hasn’t been tampered with.
  • Discoverable – Is identifiable as an “application” thanks to W3C manifest and service worker registration scope, allowing search engines to find it.
  • Re-engageable – Makes re-engagement easy through features like push notifications.
  • Installable – Allows users to “keep” apps they find most useful on their home screen without the hassle of an app store.
  • Linkable – Easily share via URL, does not require complex installation.

Listingslab WordPress Plugin

To extend the functionality of various aspects of our WordPress instance we have developed this small plugin which does just that. Get it free from GitHub

Get the plugin from GitHub
Get the free plugin


== Installation ==

1. Download and unzip the most recent version of this plugin
2. Upload the list-pages-shortcode folder to /{path-to-wordpress}/wp-content/plugins/
3. Login to your WP Admin panel, click Plugins, and activate “Listingslab Plugin”