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.
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.
master
sample-config.properties
for instructions)GET
/POST
/DELETE
/api/v1/apps/{name}/data
endpoints to manipulate an app's data directory.apprunner.proxy.idle.timeout
(default 30000ms) apprunner.proxy.total.timeout
(default 60000ms).lastBuild
and lastSuccessfulBuild
to the app
API to provide information about when and what
was built (the git commit info is included). /apps/{name}
method to change the GIT URL of an app, and made it so POST
ing
an app to /apps
that already exists returns a 400 error. Also fixed the return type (to application/json
) for
POST /apps
. There is also --app-name=your-app-name
passed as a command line parameter to Node apps, mostly to aid
in finding which app is which when looking at running processes.appserver.backup.url
)
to have the data directory backed up to a git repo once an hour.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.
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.
You will also need to provide M2_HOME=/path/to/maven/home
before you run source code and test cases.