We’re excited to announce new Galaxy features and docs which provide more flexibility for our advanced users.
Run anything in your container with custom base images
Galaxy provides a zero-configuration way to deploy your Meteor apps to the cloud. But sometimes you need a little configuration. For example, you may want to call native libraries that aren’t distributed via npm, or include some large files in your container that you don’t want to upload every time you run meteor deploy.
Galaxy containers are built using the standard Docker container management platform. Every container is built by adding your uploaded app code to a “base image”. Up until now, every Galaxy app shared the same base image: a Ubuntu Linux 14.04 environment with a handful of extra packages requested by customers. Most of these popular packages were native dependencies required by npm modules, primarily for image rendering. Because every app shared the same base image, we couldn’t easily upgrade these packages without possibly breaking other customers, and so these packages have not been updated since 2016.
We’re excited to announce a better way to bring non-npm dependencies into your Galaxy app: custom base images! You can now request that Galaxy use any Docker image publicly available on Docker Hub as a base image, as long as the image contains a script that that can import your uploaded app. Full details are available in the Galaxy Guide. You can also check out the newly-released source to the default base image.
While our main goal with this feature is to enable Meteor users to deploy apps that require OS-level dependencies to install, we look forward to hearing how our customers will take advantage of this flexible feature. For example, you could use this to run non-Meteor code in your container alongside your app, or to run worker nodes built on other platforms in their own Galaxy app alongside your main Meteor app. This feature was built by Changping Chen during his internship at MDG!
Unlimited log history and flexibility with custom log storage
Galaxy lets you view and search your logs with zero configuration on the Logs tab on your app’s dashboard. However, Galaxy only retains one week of app logs, and the dashboard logs viewer only offers basic search features. Customers interested in more detailed log access can now enable custom log storage!
With custom log storage, Galaxy can stream logs to any Elasticsearch server. It’s easy to set up your own server with hosted services like Elastic Cloud or Amazon Elasticsearch Service or on your own infrastructure. Because logs are hosted on your own servers, you can use any Elasticsearch tool to investigate your logs, like Kibana, and you can set your own expiration policy. Even with custom log storage enabled, we’ll still keep track of your last week of logs on our dashboard.
Detailed docs on what’s under the hood
As part of documenting the custom base images feature, we’ve greatly expanded our documentation of exactly what happens when you typemeteor deploy, including our container image build process and health checking. Find out more about our default base image, building custom base images, and the container execution environment.
If you aren’t using Galaxy to deploy your Meteor apps yet and the features above sound exciting, give it a try today!
New in Galaxy: custom base images and custom logging! was originally published in Meteor Blog on Medium, where people are continuing the conversation by highlighting and responding to this story.