OpenRun allows defining your web app configuration in a declarative config using Starlark (which is like a subset of Python). Setting up a full GitOps workflow is just one command:
openrun sync schedule --approve --promote github.com/openrundev/openrun/examples/utils.star
This will set up a scheduled sync, which will look for new apps in the config and create them. It will also apply any config updates on existing apps and reload apps with the latest source code. After this, no further CLI operations are required, all updates are done declaratively. For containerized apps, OpenRun will directly talk to Docker/Podman to manage the container build and startup.There are lots of tools which simplify web app deployment. Most of them use a UI driven approach or an imperative CLI approach. That makes it difficult to recreate an environment. Managing these tools when multiple people need to coordinate changes is also difficult.
Kubernetes is the standard for declarative deployment. OpenRun supports only web apps, there is no plan to add support for deploying databases or queues etc with OpenRun. That makes OpenRun much simpler, a single binary which implements the web server and application server with GitOps driven deployments. Deploying and managing stateful database type services is much more complex. Declarative web app deployment is much easier.
The goal with OpenRun is to support declarative deployment for the web apps while removing the complexity of maintaining multiple YAML config files. See https://github.com/openrundev/openrun/blob/main/examples/uti... for an example config, each app is just one or two lines of config.
OpenRun currently runs on a single machine with an embedded SQLite database or on multiple machines with an external Postgres database. I plan to support OpenRun as a service on top of Kubernetes, to support auto-scaling. OpenRun implements its own web server, instead of using Traefik/Nginx. That makes it possible to implement features like scaling down to zero and RBAC.
OpenRun makes it easy to set up OAuth/OIDC/SAML based auth, with RBAC. This makes it possible to share your apps securely, see https://openrun.dev/docs/use-cases/ for a couple of such use cases. Outside of managed services, I have found it difficult to implement this type of RBAC with any other open source solution.
ajayvk•2h ago