#!/usr/bin/bash # Install open-webui # Load the configuration source ./installer.conf # Create the users echo "Create users and groups" getent group $GROUP > /dev/null 2&>1 || groupadd $GROUP getent passwd $USER > /dev/null 2&>1 if [ $? -ne 0 ]; then useradd --system -s /usr/bin/nologin -g $GROUP $USER fi # Start with creating the configuration file echo "Writing configuration files..." mkdir -p /etc/open-webui cp open-webui.conf /etc/open-webui sed -i 's/#TARGET_DIR#/${TARGET_DIR}/g' /etc/open-webui/open-webui.conf # Now create the target directory echo "Creating target directory..." mkdir -p $TARGET_DIR # And populate it echo "Installing open-webui" chown $USER:$GROUP $TARGET_DIR cd $TARGET_DIR sudo $PYTHON -m venv .venv sudo -u $USER pip install --upgrade pip sudo -u $USER pip open-webui echo "Finished installing open-webui." # Now install the script file echo "Installing the script" mkdir -p /usr/local/bin cp ./run-open-webui /usr/local/bin chmod +x /usr/local/bin/run-open-webui # Install the systemd file echo "Installing the service file" cp ./open-webui.service /etc/systemd/system sed -i '/#TARGET_DIR#/${TARGET_DIR}/g' /etc/systemd/system/open-webui.service sed -i '/#USER#/${USER}/g' /etc/systemd/system/open-webui.service sed -i '/#GROUP#/${GROUP}/g' /etc/systemd/system/open-webui.service systemctl daemon-reload