Easy, light-weight web app
management for internal tools
Clace is an Apache-2.0 licensed project building a web app development and deployment platform for internal tools. Clace allows easy and secure hosting of multiple web apps, in any language/framework, on a single machine. Clace is cross-platform (Linux/Windows/OSX) and provides a GitOps workflow for managing web apps.
Clace combines the functionality of a reverse proxy (programmable in Starlark) and a container orchestrator (using Docker or Podman) in a single lightweight binary. Start Clace server and ensure Docker or Podman is running. Apps can be installed directly from GitHub source repo. Clace builds the image and starts the container lazily, on the first API call.
Clace can be used on a dev machine during web app development. The app can then be deployed on a shared Clace server, adding OAuth authentication as required. Apps are deployed directly from the git repo, no build step required. For example, Clace can be used to deploy multiple Streamlit apps on a server shared across a team, using GitOps for managing CI/CD.
Automatically build and and deploy containers, with Docker or Podman.
Blue-green (staged) deployments, versioning and preview environments with no infra to manage.
Fast and lightweight backend driven apps, minimal frontend complexity.
Backend and frontend development with no build artifacts to manage, deploy directly from the source repo.
Apps are initialized lazily, on demand: scale down to zero automatically.
Clace runs on Linux, Windows and OSX, works with Docker and Podman
Other tools for simplifying containerized deployment are Linux specific. They are built on top of reverse proxies (Traefik/Nginx), using container labels for routing. They are built for prod deployment only, not for dev. Adding OAuth or access control are not easy with other solutions.
Cloud services like Cloud Run simplify the deployment of containerized web apps. They run outside your existing infrastructure, making it difficult to talk to your existing systems. Clace provides a similar easy to use interface. Instead of doing this as a cloud service, Clace does this on your hardware.
Clace is a single binary, cross-platform and can be used during development. Adding OAuth and access control and atomic updates across multiple apps is easy. Clace is built for the internal tools use-case, allowing for services to be deployed and shared across a team securely.