Warning, this is old information and way more work than you need to do. The solution we are using now is the excellent heroku-buildpack-ember-cli.
A disclaimer: This is not for use in production. Doing this for a production app would be a bad decision.
The problem: Developers on the Ilios Project need to be able to share their changes with other team members. While it is possible to deploy a static Ember CLI app nearly anywhere, we want to include our mock API so everyone is looking at the same data.
The solution: Use Heroku to host an Ember CLI application running its built in Express server.
Academic libraries offer many resources, but users cannot be expected to search in, say, a half dozen different interfaces to find what they’re looking for. So academic libraries typically offer federated search.
Sometimes, a solution is purchased. Many libraries, for example, use 360 Search.
Here at UCSF, we are among the libraries that have built our own federated search. Twice.
Packer is a tool for creating identical machine images for multiple platforms from a single source configuration. It is mostly used to create base images for developers using Vagrant. However it’s just as useful for creating virtual machine (VM) images to deploy in production. Using Packer in this way, you can create a consistent starting point for VMs which are then provisioned further with, for example, Puppet or Chef, creating a ready-to-deploy image with your application already installed.
One minor headache for using Packer in this way is how to safely create a root account with a known password without exposing that password in configuration files.
PhantomJS is a headless browser which, when combined with Behat, can run the same tests you can run in a browser like Chrome or Firefox. Headless testing is faster because it doesn’t actually render anything for a user. This makes it ideal for rapid test driven development.
A downside to headless testing is that when it fails it can be hard to see exactly why. Figuring out whether it is your code or your test that is causing the issue can be extremely frustrating and you might find yourself asking; Why can’t I just see it? The frustration mounts when the same test runs just fine via Selenium in a GUI browser.
OK, was that enough buildup? Are you ready for the good stuff? Right then, here we go.