Clace is an open source project I have been building which makes it simple to deploy multiple Streamlit apps on one machine.
To host multiple Streamlit apps, the options are to either use a web server like Nginx/Caddy/Traefik and add container management or to go with more heavyweight solutions like Kubernetes. Clace provides a solution which is easy to use while being operationally simple. After starting Docker/Podman and Clace, full GitOps (for code and config) can be enabled with one command:
clace sync schedule --approve --promote github.com/claceio/clace/examples/streamlit.star
That create a background sync which periodically fetches the latest config and creates new apps and updates existing apps.
I have previous posted about Clace and there are users from this community already using it to host Streamlit apps. Since the last post, new features added include:
- Declarative deployment using Gitops
- App list UI which automatically shows at the root domain, demo at https://apps.demo.clace.io/
- Auditing UI which can be installed optionally, demo at https://audit.demo.clace.io/
- Support for secrets through secrets.toml (env was already supported). Clace might be only platform other the Streamlit Cloud where secrets.toml is supported