Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Web app proxy and container manager (Nginx Unit alternative) (github.com/claceio)
4 points by ajayvk 3 months ago | hide | past | favorite
I have been building https://github.com/claceio/clace, an app server for web apps. Clace allows easy hosting of multiple web apps, in any language/framework, on a single machine. Clace is cross-platform (Linux/Windows/OSX), unlike most similar tools which are Linux only. Clace combines the functionality of a reverse proxy and a container orchestrator (using Docker or Podman) in a single lightweight binary.

Clace can read from a source repo, build an image and start the container, proxying API calls to the container. The image is built from a Containerfile/Dockerfile. Clace can work without any change in the app repo. A gitops type deployment model is used for app updates, with staged deployment and preview environments. For example, an app at example.com:/myapp will have a staging env at example.com:/myapp_cl_stage. This allows any code and config changes to be verified in staging before being made live.

The reverse proxy can be programmed in Starlark (python-like language). No need to use a custom DSL for API config. Clace can proxy the app response or it can be used to build a hypermedia based UI using go HTML templates with HTMX and Tailwind support. Some of the auth related features are internal tools specific, but otherwise Clace can be used for any kind of webapp.

To install and try it out, run

  curl -L https://clace.io/install.sh | sh
  source $HOME/clhome/bin/clace.env
  clace server start & 
    
  clace app create --auth=none --approve github.com/claceio/clace/examples/disk_usage /disk_usage # This installs a du like webapp
  clace app create --auth=none --approve github.com/claceio/apps/utils/bookmarks /book # This installs a bookmark manager which uses sqlite for persistence
  clace app create --auth=none --approve --spec python-streamlit --branch master github.com/streamlit/streamlit-example /streamlit # This uses streamlit framework, requires either Podman or Docker

See screen recording of a sample session and docs at https://clace.io



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: