Total Pageviews

Tuesday 6 April 2021

App Runner

 Self-hosted platform as a service for Java, Node, Clojure, Scala, DotNet, Python and golang apps. Push to a git repo to deploy apps.

A self-hosted platform-as-a-service that hosts web apps written in Java, Clojure, NodeJS, Python, golang, Scala and .NET Core. Designed to be simple to deploy behind a firewall, on corporate intranets or at home. Once running, tell App Runner the Git URL of a web app and it will automatically build and host it for you, with support to auto-deploy on every git push.

Features

  • Host your own Platform as a Service: you just need Java 8, plus optional build tools (Maven, Leinigen, Scala/SBT, go compiler, NodeJS/NPM, Gradle, Python 2 or 3, .NET Core SDK).
  • Deploy web apps with no build servers or deploy scripts needed: tell AppRunner the Git URL and it will automatically build and host it.
  • Auto deploy on source control change when using post-commit hooks
  • Zero downtime deployment: when changes are being deployed, a new instance is built, tests are run, and the app is started. Only when the new instance is running will it be made live.
  • An optional dashboard which links to all your apps making it easy to find, add, and deploy.
  • Horizontally scale individual app runners across multiple machines with App Runner Router

Who is this for?

App Runner is especially useful for people or teams who are creating many little web applications and want the convenience of a platform such as Heroku but cannot use an external service.

Running locally

Run com.danielflower.apprunner.RunLocal.main from your IDE. This will use the settings in sample-config.properties. Upon startup, it will try to download, build, and deploy the application specified in the config. Launch the URL that is logged on startup see the hosted sample app.

Deploying

You need to have a Windows or Linux server available with Java 8 or later and one or more build tools installed. One or more of Maven, Gradle, Leiningen, NodeJS with NPM, Scala with SBT, GoLang, Python 2 or 3.

It's easiest if each tool is available to run from the path, but you can point to specific paths by setting paths in your config file.

Download the latest version of App Runner from Maven central

Run with java -jar app-runner-{version}.jar /path/to/config.properties

See sample-config.properties for sample configuration. The local directory in this repo also has sample start scripts and logging configuration.

from https://github.com/danielflower/app-runner

No comments:

Post a Comment