The BAM Architecture Studio website (http://bam-studio.com) is powered by LocomotiveCMS, an opensource CMS platform. LocomotiveCMS provides a CMS server (aka: "engine") for hosting and managing websites. It also provides a development tool called "Wagon", which can pull and push data to and from the server. The Wagon tool can also act as a lightweight development server. See the Locomotive project for detailed information.
The LocmotiveCMS Engine is a Rails engine that's installed into a Rails application. This engine runs in production, dealing with page requests, handling the restful API, and running the back-office where site editors can update the site's content.
In general, the only time you'll spend with Engine is at the beginning when you're setting up LocomotiveCMS. You'll have to install the gem, do some configuration, and get Rails running. But after that, you're pretty much done working with Engine.
This project is a specially modified engine that powers bam-studio.com.
Wagon is a command line tool that let's you develop for LocomotiveCMS right on your local machine.
With Wagon, you can generate the scaffolding for a new LocomotiveCMS site and start adding the content types and templates you need using any text editor. And thanks to Wagon's built-in web server, you can preview the site with your computer's web browser.
Wagon can also deploy sites to any LocomotiveCMS Engine using the wagon push command. Your changes will immediately be reflected on that site without restarting or making any changes to the Rails app.
You can find a Wagon project compatible with the engine version that powers bam-studio.com at https://github.com/bam-studio/frontend
You must have the Docker toolchain installed: https://docs.docker.com/docker-for-mac/
To build this image:
> make dockerize
To deploy this image to localhost:
> make localhost
To access the localhost admin page:
Visit http://localhost:3000/locomotive and you will be promted to set up an account.
To push website data to your localhost deployment:
LocomotiveCMS uses the
wagon gem to interact with the engine. It can be used to pull and push data to an engine, as well as a development server.
See http://github.com/bam-studio/frontend for more information.