FROM imbios/bun-node:22-slim RUN apt-get update \ && apt-get install -y \ python3 make g++ zsh git curl wget ca-certificates \ fortune-mod cowsay sudo gosu \ zip unzip tree btop net-tools tmux \ && apt-get clean RUN curl -LO https://github.com/neovim/neovim/releases/latest/download/nvim-linux-x86_64.tar.gz \ && tar -C /opt -xzf nvim-linux-x86_64.tar.gz \ && rm nvim-linux-x86_64.tar.gz ENV PATH="/opt/nvim-linux-x86_64/bin:${PATH}" RUN git clone --depth 1 https://github.com/LazyVim/starter /opt/lazyvim-starter \ && rm -rf /opt/lazyvim-starter/.git WORKDIR /app COPY pty-sidecar.mjs /app/pty-sidecar.mjs COPY entrypoint.sh /app/entrypoint.sh COPY templates /opt/terminal-templates RUN npm init -y \ && npm install ws@8.18.1 node-pty@1.1.0 RUN curl -fsSL https://starship.rs/install.sh | sh -s -- -y -b /usr/local/bin RUN git clone --depth 1 https://github.com/ohmyzsh/ohmyzsh.git /opt/oh-my-zsh ENV EZA_VERSION=0.18.15 RUN curl -fsSL "https://github.com/eza-community/eza/releases/download/v${EZA_VERSION}/eza_x86_64-unknown-linux-gnu.tar.gz" -o /tmp/eza.tar.gz \ && tar -xzf /tmp/eza.tar.gz -C /tmp \ && mv /tmp/eza /usr/local/bin/eza \ && chmod +x /usr/local/bin/eza \ && rm -rf /tmp/eza.tar.gz /tmp/completions /tmp/man RUN mkdir -p /home/officer WORKDIR /home/officer ENV TERMINAL_PTY_PORT=5337 ENV PATH="/usr/games:${PATH}" EXPOSE 5337 ENTRYPOINT ["/app/entrypoint.sh"]