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.
What is OpenRun?
OpenRun is an open-source, self-hosted GitOps platform for deploying web apps and internal tools. Run the single binary on a single server or node with Docker/Podman, or deploy apps onto a Kubernetes cluster with the same declarative config.
OpenRun adds the authentication, authorization and auditing features required for team use. Code-first apps get the platform capabilities usually found in enterprise low-code tools like Retool.
Motivation
OpenRun is built with these goals:
➣ True GitOps: create and configure apps through Git, not just update code
➣ Start on single-node, scale to Kubernetes if needed
➣ Make auth and RBAC easy for internal tools
➣ Easy SAML support without paying the SSO tax
➣ Run thousands of apps - zero idle resource usage
OpenRun Features
Some of the unique features of OpenRun are:
➣ Create and manage apps declaratively
➣ Easily upgrade from single-node to K8S
➣ Domain based or path based routing, with auto-TLS
➣ OAuth/OpenID/SAML/Cert auth, with RBAC
➣ Scales idle apps down to zero
➣ Staged deployment, for code and config changes
➣ Atomic (all or nothing) updates across apps
➣ Managed SQLite + Litestream replication to S3
Container management
Build and deploy containerized web applications declaratively across Docker, Podman or Kubernetes using one consistent platform configuration.
Declarative GitOps
Manage staged deployments, versioned releases and preview environments through declarative GitOps workflows connected to GitHub or GitLab.
Scale down to zero
Initialize applications lazily on their first request, then automatically stop idle containers and reduce resource usage to zero.
PostgreSQL + MySQL Service Bindings
Automatically provision isolated PostgreSQL schemas and roles or MySQL databases and users, then inject unique application credentials securely.
SQLite + Litestream
Run stateful SQLite applications with persistent volumes, continuous Litestream replication to S3-compatible storage and automatic disaster recovery.
Flexible Auth
Protect every application with OAuth, OpenID Connect, SAML or client-certificate authentication plus flexible role-based access controls.
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.