Architecture overview
Last updated
Last updated
Β© 2024 UI Bakery
UI Bakery self-hosted version is a set of services, some of which are optional. The same core principles apply whether you deploy it using Docker Compose or Kubernetes.
Below is a diagram illustrating UI Bakery containers and the relationships between them. Arrows indicate the direction of requests between containers/services.
All UI Bakery containers are stateless. Certain containers are optional and can be safely removed if their functionality is not required. Check out what these containers stand for:
bakery-gateway acts as an NGINX-based gateway and reverse proxy. Routes incoming client requests to the appropriate internal services.
bakery-front is an NGINX server hosting static files (HTML/CSS/JS) for the main UI Bakery interface.
workbench-front is another NGINX server dedicated to hosting static files for the βworkbenchβ front-end. The workbench is rendered within an iframe inside the main UI, providing a secure sandboxed environment for end-user apps.
bakery-back is a Java-based API service serving as the main backend. Handles authentication, authorization, user management, storage of application models, and other central logic. May initiate outbound connections if SSO or other external integrations are enabled.
datasource is a Node.js service responsible for executing queries against connected data sources.
db is a MySQL database that stores internal UI Bakery entities such as users, apps, and permissions. Recommended to replace with a managed, external MySQL database in production. Can be removed if you are using an external database solution.
automation is a Node.js service that executes UI Bakery automations. Invoked by bakery-back, it can perform datasource queries as part of these automations. Can be removed if automations are not used.
python-runtime is a Node.js-based environment for running Backend Python code actions within UI Bakery. Can be removed if Python-based actions are not required.
bakery-bd is a PostgreSQL database that can be connected as a data source within UI Bakery. Used for the UI Bakery Database feature. Can be removed if database is not used.