Skip to content
📌 Provide isolated databases for apps with Service Bindings.

Self-Hosted GitOps Platform for Docker and Kubernetes

Open-source, self-hosted GitOps platform for deploying web apps and internal tools to Docker or Kubernetes. 
Declarative deployments, SSO, RBAC, TLS, secrets, staged releases, and scale-to-zero.

True GitOps, Not Just Git Push

Most tools only update app code from Git; creating and configuring apps still needs a UI or CLI. With OpenRun, apps are created, configured and promoted by editing one declarative config file in Git, with staged deployments and atomic updates. See how this differs from Coolify, CapRover, Kamal and Dokku.

Built for Internal Tools and Team Web Apps

A self-hosted PaaS alternative for internal tools: every app gets OAuth/OIDC/SAML login, RBAC and audit logs, not just the admin console. Start on a single server with Docker or Podman, move to Kubernetes with the same config. Compare with Cloud Run and App Runner or DIY Kubernetes.

Installation
Install OpenRun:
curl -sSL https://openrun.dev/install.sh | sh
Start OpenRun server (in a new window):
openrun server start &
GitOps in One Command
Schedule a sync:
openrun sync schedule --approve --promote \   github.com/openrundev/openrun/examples/utils.star
Starts a background sync which automatically creates new apps and updates existing apps, reading latest app config and code from Git.
Sample OpenRun Config
sample.star

# Set resource limits (optional)
limits = {"cpus": "1", "memory": "512m"}

# Streamlit App Declaration app(path="/misc/streamlit_example", source="github.com/streamlit/streamlit-example",     git_branch="master", spec="python-streamlit", container_opts=limits)

# FastHTML App Declaration app(path="fasthtml.:", source="github.com/AnswerDotAI/fasthtml/examples",     spec="python-fasthtml", params={"APP_MODULE":"basic_ws:app"}, container_opts=limits)

# This is the complete build and deployment config for two apps.

OpenRun vs Coolify, CapRover and Kamal

Compared with self-hosted PaaS platforms like Coolify, CapRover, Kamal and Dokku, OpenRun provides:
True GitOps: apps are created and configured through Git, not just code updates
➣ SSO for every deployed app, not just the admin console
➣ Scale-to-zero for idle web apps
➣ RBAC, audit logs and service bindings for databases
➣ The same declarative config on a VPS with Docker/Podman or on Kubernetes

OpenRun focuses on web apps and internal tools. It does not deploy Docker Compose stacks; apps connect to externally managed databases through service bindings. Read the full comparison.

OpenRun vs Cloud Run and App Runner

Google Cloud Run and AWS App Runner provide managed serverless containers, but apps run on cloud infrastructure with usage-based pricing and vendor lock-in. App Runner is closed to new customers since March 2026.

OpenRun brings container deployment to infrastructure you control:
➣ Scale-to-zero on your own server or Kubernetes cluster
➣ SSO and RBAC configured once, covering every app
➣ Declarative GitOps instead of imperative CLI deploys
➣ Runs behind a VPN with no public cloud dependency

OpenRun vs DIY on Kubernetes

Running OpenRun on Kubernetes gives you the benefits of Kubernetes without the pain:
➣ One system instead of gluing together Jenkins for builds, ArgoCD/FluxCD for CD and an IDP for app management
➣ Simple declarative config, no YAML files, no webserver DSLs
➣ Auth policies with RBAC, audit logs built in

Compared to Knative, OpenRun has a much simpler config, loads apps lazily on first request and keeps app versions in its metadata database, reducing the Kubernetes resources created.