Spaces:
Paused
Paused
| # Use Ubuntu 22.04 as the base image | |
| FROM ubuntu:22.04 | |
| # Set environment variables | |
| ENV DEBIAN_FRONTEND=noninteractive | |
| ENV USER=appuser | |
| ENV HOME=/home/$USER | |
| ENV DISPLAY=:1 | |
| ENV VNC_PORT=5901 | |
| ENV NOVNC_PORT=7860 | |
| ENV X11VNC_LOG=/tmp/x11vnc.log | |
| # Install dependencies | |
| RUN apt-get update && apt-get install -y \ | |
| wget \ | |
| gnupg \ | |
| curl \ | |
| xvfb \ | |
| fluxbox \ | |
| x11vnc \ | |
| novnc \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install Brave Browser | |
| RUN curl -fsSLo /usr/share/keyrings/brave-browser-archive-keyring.gpg https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg \ | |
| && echo "deb [signed-by=/usr/share/keyrings/brave-browser-archive-keyring.gpg] https://brave-browser-apt-release.s3.brave.com/ stable main" | tee /etc/apt/sources.list.d/brave-browser-release.list \ | |
| && apt-get update \ | |
| && apt-get install -y brave-browser \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Install TeamViewer | |
| RUN wget https://download.teamviewer.com/download/linux/teamviewer_amd64.deb \ | |
| && apt-get update \ | |
| && apt-get install -y ./teamviewer_amd64.deb \ | |
| && rm teamviewer_amd64.deb \ | |
| && rm -rf /var/lib/apt/lists/* | |
| # Create non-root user | |
| RUN useradd -m -s /bin/bash $USER | |
| # Fix permissions for X11 | |
| RUN mkdir -p /tmp/.X11-unix \ | |
| && chmod 1777 /tmp/.X11-unix \ | |
| && chown $USER:$USER /tmp/.X11-unix | |
| # Fluxbox config | |
| RUN mkdir -p $HOME/.fluxbox | |
| COPY fluxbox_menu $HOME/.fluxbox/menu | |
| RUN chown -R $USER:$USER $HOME/.fluxbox | |
| # Setup noVNC | |
| RUN ln -s /usr/share/novnc/vnc.html /usr/share/novnc/index.html | |
| # Copy startup script | |
| RUN mkdir -p $HOME/scripts | |
| COPY start.sh $HOME/scripts/start.sh | |
| RUN chmod +x $HOME/scripts/start.sh | |
| # Switch user | |
| USER $USER | |
| WORKDIR $HOME | |
| # Expose noVNC port | |
| EXPOSE $NOVNC_PORT | |
| # Start script | |
| CMD ["/home/appuser/scripts/start.sh"] | |