Installing on-premise

This guide describes how to deploy a ui-bakery on-prem via install.sh script.

The script installs docker and docker-compose, which may upgrade some dependencies under the hood. Please be advised that if you run this script on the OS used as a server for other applications, those applications may break due to that potential dependencies upgrade.

Requirements

  • OS Linux Ubuntu 18.04 and above.

  • Must have full rights to use "sudo".

Installation steps

  1. Run this command preferably from /home Linux directory to download, install and launch UI Bakery:

    curl -k -L -o install.sh https://raw.githubusercontent.com/uibakery/self-hosted/main/install.sh && bash ./install.sh
  2. In the process, upon request, enter the previously received license code, hosting URL, and port.

  3. Once the installation is completed, open the browser using the URL and port provided earlier. By default it is http://localhost:3030/.

NOTE: If Docker of a version less than the required (minimum 20.10.11) is already installed on the server, and/or Docker Compose (minimum 1.29.2), the script will be stopped. You need to update the versions of components manually and run the script again.

UI Bakery installation is ready for production out of the box. However, there is a bunch of additional setup steps we recommend following:

  • Put your instance behind HTTPS.

  • Use a standalone database.

  • Enable automatic backups for instance and database machines.

  • Store your environment variables in a secure place like a secrets manager or key vault.

  • Lock the UI Bakery version by setting a specific value for the UI_BAKERY_VERSION environment variable.

Updating secrets

There are several secret variables that are currently available:

UI_BAKERY_JWT_SECRET
UI_BAKERY_JWT_REFRESH_SECRET
UI_BAKERY_JWT_SERVICE_ACCOUNT_SECRET
UI_BAKERY_CREDENTIALS_SECRET
UI_BAKERY_MFA_SECRET

If you have utilized the installation script, your .env file should already possess distinctive values for those variables.

Alternatively, you can utilize the script to produce values for these variables:

echo "'$(LC_ALL=C tr -cd "A-Za-z0-9_\!\@\#\$\%\^\&\*\(\)\\-+=" < /dev/urandom | head -c 32 | xargs -0)'"

Optimize UI Bakery instance

You can set the following environment variables to limit resource consumption (MB):

JAVA_OPTS=-Xmx1024m
NODE_OPTS=--max-old-space-size=1024

You can estimate memory size for both variables with the below multiplying:

S - request size in MB
N - number of concurrent requests 

MEMORY_NEEDED=S*N

Last updated

© 2024 UI Bakery