// HACKER NEWS — CYBERSECURITY
Running SQLite Apps on Docker and Kubernetes with Litestream
OpenRun is an open-source, self-hosted GitOps platform for deploying web apps and internal tools on Docker, Podman, or Kubernetes. It provides authentication, authorization, auditing, and RBAC without requiring changes to the application.
OpenRun now has built-in Litestream support for SQLite apps. App databases are continuously replicated to AWS S3 or S3-compatible object storage such as Cloudflare R2, MinIO and SeaweedFS. Restore is automatic: when OpenRun detects an empty or recreated app volume, it restores the database from the replica before starting the app. The same setup works on a single node with Docker/Podman and on Kubernetes.
The result is that application developers use SQLite normally without having to install Litestream, configure object storage, modify their container image, or implement restore logic.
SQLite is a great fit for internal tools and small web apps: the database is file-backed, reads are fast, and there is no separate database server to operate. Litestream continuously replicates SQLite changes to object storage, providing durable off-node backups and point-in-time recovery.
Without platform integration, however, you still need to deploy Litestream alongside the app, configure the replica, and handle database restoration during startup.
OpenRun moves that operational work into the platform. Litestream settings are defined once in the server configuration, while OpenRun manages replication and restoration outside the app container. The app image stays unchanged, and new SQLite apps can use replication without any Litestream-specific setup.
Define Litestream once in the OpenRun server configuration:
Then create a SQLite service that references it and bind apps to the service:
The same app can be defined declaratively. Put the definition in an apply file alongside your other configuration in Git:
openrun apply works like Kubernetes apply: it creates new apps, updates apps whose configuration changed, and leaves the rest alone. All app management, including the SQLite binding, can be driven through GitOps.