Hi Team
Running UI.Vision RPA in a Docker container (headless Linux) to execute macros via a REST API. The setup uses:
- Debian Bullseye + Chromium (installed via apt)
- UI.Vision extension v9.5.9 loaded as unpacked extension (–load-extension)
- XModules AppImage extracted (no FUSE) using --appimage-extract
- Xvfb virtual display + x11vnc for VNC access
- Node.js API server that triggers macros via Chrome DevTools Protocol
Current Status:
- Chromium launches with UI.Vision extension loaded
- VNC shows Chromium desktop
- UI.Vision panel opens, macros visible in sidebar
Issue:
XModule Settings → FileAccess → Status: Not Installed
Dockerfile:
FROM debian:bullseye
RUN apt-get update && apt-get install -y
curl wget gnupg ca-certificates
fonts-liberation libappindicator3-1 libasound2
libatk-bridge2.0-0 libatk1.0-0 libcups2 libdbus-1-3
libgdk-pixbuf2.0-0 libnspr4 libnss3 libx11-xcb1
libxcomposite1 libxdamage1 libxrandr2 xdg-utils
libgbm1 libxshmfence1
xvfb x11vnc fluxbox supervisor unzip x11-utils
python3 procps fuse libfuse2 squashfs-tools
libgtk-3-0 libdbus-glib-1-2 libxt6
libglib2.0-0 libstdc++6 libgcc-s1 dbus dbus-x11
&& rm -rf /var/lib/apt/lists/*
RUN apt-get update && apt-get install -y chromium chromium-driver
&& rm -rf /var/lib/apt/lists/*
RUN curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
&& apt-get install -y nodejs
&& rm -rf /var/lib/apt/lists/*
COPY extract_crx.py /opt/extract_crx.py
RUN mkdir -p /opt/uivision/extension &&
cd /opt/uivision &&
wget -q -O uivision.crx
“https://clients2.google.com/service/update2/crx?response=redirect&prodversion=120.0.0.0&acceptformat=crx2,crx3&x=id%3Dgcbalfbdmfieckjlnblleoemohcganoc%26uc” &&
python3 /opt/extract_crx.py &&
unzip -q uivision.zip -d extension &&
rm -f uivision.crx uivision.zip /opt/extract_crx.py &&
rm -rf /opt/uivision/extension/_metadata &&
sed -i ‘/“update_url”/d’ /opt/uivision/extension/manifest.json &&
ls /opt/uivision/extension/
RUN mkdir -p /opt/xmodules && cd /opt/xmodules &&
wget -q
“https://download.ui.vision/x/uivision-xmodules-linux-v2.AppImage” &&
chmod +x uivision-xmodules-linux-v2.AppImage &&
./uivision-xmodules-linux-v2.AppImage --appimage-extract &&
ls /opt/xmodules/squashfs-root/usr/bin/
RUN mkdir -p /opt/xmodules/uivision-xmodules &&
echo ‘#!/bin/sh’ > /opt/xmodules/uivision-xmodules/nmhost &&
echo ‘APPDIR=/opt/xmodules/squashfs-root’ >> /opt/xmodules/uivision-xmodules/nmhost &&
echo ‘export APPDIR’ >> /opt/xmodules/uivision-xmodules/nmhost &&
echo ‘export LD_LIBRARY_PATH=“$APPDIR/usr/lib:$APPDIR/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH”’ >> /opt/xmodules/uivision-xmodules/nmhost &&
echo ‘export QT_QPA_PLATFORM=xcb’ >> /opt/xmodules/uivision-xmodules/nmhost &&
echo ‘export DISPLAY=:99’ >> /opt/xmodules/uivision-xmodules/nmhost &&
echo ‘exec “$APPDIR/usr/bin/nmhost” “$@”’ >> /opt/xmodules/uivision-xmodules/nmhost &&
chmod +x /opt/xmodules/uivision-xmodules/nmhost &&
cat /opt/xmodules/uivision-xmodules/nmhost
ENV DISPLAY=:99
ENV CHROME_PATH=/usr/bin/chromium
ENV UIVISION_HOME=/home/chromeuser/uivision
ENV XDG_RUNTIME_DIR=/tmp/runtime-chromeuser
RUN useradd -m -d /home/chromeuser chromeuser &&
mkdir -p
/home/chromeuser/macros
/home/chromeuser/logs
/home/chromeuser/chrome-data
/home/chromeuser/uivision
/home/chromeuser/datasources
/home/chromeuser/.config/chromium/NativeMessagingHosts
/tmp/runtime-chromeuser &&
chown -R chromeuser:chromeuser /home/chromeuser /opt/xmodules /tmp/runtime-chromeuser &&
chmod 700 /tmp/runtime-chromeuser
COPY fix_nmh.py /tmp/fix_nmh.py
RUN mkdir -p
/etc/chromium/native-messaging-hosts
/home/chromeuser/.config/chromium/NativeMessagingHosts &&
python3 /tmp/fix_nmh.py &&
chown -R chromeuser:chromeuser /home/chromeuser/.config &&
cat /etc/chromium/native-messaging-hosts/com.github.teamdocs.kcmd.json
COPY --chown=chromeuser:chromeuser macros/ /home/chromeuser/uivision/
RUN ln -sf /home/chromeuser/uivision /home/chromeuser/macros
COPY autorun.html /opt/uivision/autorun.html
COPY init-extension-config.sh /opt/uivision/init-extension-config.sh
RUN chmod +x /opt/uivision/init-extension-config.sh
COPY run-chromium.sh /opt/uivision/run-chromium.sh
RUN chmod +x /opt/uivision/run-chromium.sh
COPY package.json tsconfig.json /opt/uivision/
COPY src/ /opt/uivision/src/
RUN cd /opt/uivision && npm install && npm run build
COPY start-macro.sh /opt/start-macro.sh
RUN chmod +x /opt/start-macro.sh
COPY docker-entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf
ENV MACRO_NAME=“SimpleOpenGoogle”
EXPOSE 5900 8000
ENTRYPOINT [“/usr/local/bin/docker-entrypoint.sh”]
CMD
can someone help on this to achieve it correctly
Thanks
RAM