FROM ubuntu:24.04

ARG LTX_DESKTOP_VERSION=1.2.7
ARG LTX_DESKTOP_SHA512=d1d59027988a48490492feb42156665bbed511f187739a664ad326492fd8fc0ce43429537150eb6aea9a75a522f6353a40839f9b3ed0449fb720b7c13b091706

RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
      ca-certificates curl dbus-x11 ffmpeg libasound2t64 libatk-bridge2.0-0 \
      libatk1.0-0 libcups2 libdrm2 libgbm1 libgtk-3-0 libnss3 libx11-xcb1 \
      libxcomposite1 libxdamage1 libxfixes3 libxkbcommon0 libxrandr2 \
      novnc openbox procps python3-websockify x11vnc xvfb \
    && rm -rf /var/lib/apt/lists/* \
    && install -d /opt/ltx-desktop \
    && curl -fL --retry 5 \
      "https://github.com/Lightricks/LTX-Desktop/releases/download/v${LTX_DESKTOP_VERSION}/LTX-Desktop-x86_64.AppImage" \
      -o /tmp/ltx-desktop.AppImage \
    && printf '%s  %s\n' "$LTX_DESKTOP_SHA512" /tmp/ltx-desktop.AppImage | sha512sum -c - \
    && chmod +x /tmp/ltx-desktop.AppImage \
    && cd /opt/ltx-desktop \
    && /tmp/ltx-desktop.AppImage --appimage-extract >/dev/null \
    && rm /tmp/ltx-desktop.AppImage \
    && ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html

COPY entrypoint.sh /usr/local/bin/ltx-desktop-entrypoint
RUN chmod 0755 /usr/local/bin/ltx-desktop-entrypoint

ENV DISPLAY=:0 \
    HOME=/data/home \
    XDG_DATA_HOME=/data \
    XDG_CONFIG_HOME=/data/config \
    XDG_CACHE_HOME=/data/cache \
    NO_AT_BRIDGE=1

EXPOSE 8015
ENTRYPOINT ["/usr/local/bin/ltx-desktop-entrypoint"]
