FROM remnux/remnux-distro:latest LABEL maintainer="tabledevil" USER root ARG DEBIAN_FRONTEND=noninteractive ENV TZ=Europe/Berlin # Install additional system packages that REMnux doesn't include RUN apt-get update && apt-get install -y \ busybox \ bat \ catdoc \ docx2txt \ fd-find \ fish \ fzf \ mc \ pipx \ ripgrep \ unrtf \ mpack \ pandoc \ zsh \ zsh-autosuggestions \ zsh-syntax-highlighting \ && apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* # Configure pip ENV PYTHONDONTWRITEBYTECODE=1 ADD pip.conf /etc/pip.conf # Install unfurl & dependencies via pipx (for URL analysis) RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps dfir-unfurl \ && PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx inject dfir-unfurl requests six maclookup # Install visidata via pipx (for data exploration) RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps visidata # Install offline help and cheat sheet tools RUN PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps cheat \ && PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin pipx install --include-deps tldr # Removed navi - focus on tldr and cheat for reliable help system # Create data directory and set permissions RUN mkdir -p /data \ && chown remnux:remnux /data # Add documentation and streamlined help system ADD files/README /opt/README ADD files/command_help /opt/command_help ADD files/zshrc /etc/zsh/zshrc ADD files/fish_config.fish /etc/fish/conf.d/remnux.fish ADD scripts/create-offline-help-system.sh /usr/local/bin/create-offline-help-system.sh ADD scripts/find-tool /usr/local/bin/find-tool ADD scripts/fhelp /usr/local/bin/fhelp ADD scripts/import-remnux-cheatsheets.sh /usr/local/bin/import-remnux-cheatsheets.sh ADD scripts/convert-remnux-cheats.py /usr/local/bin/convert-remnux-cheats.py ADD scripts/add-tool-cheats.sh /usr/local/bin/add-tool-cheats.sh ADD scripts/check-help-coverage.sh /usr/local/bin/check-help-coverage.sh # Create streamlined offline help system (tldr + cheat) RUN chmod +x /usr/local/bin/create-offline-help-system.sh /usr/local/bin/find-tool /usr/local/bin/fhelp /usr/local/bin/import-remnux-cheatsheets.sh \ && chmod +x /usr/local/bin/convert-remnux-cheats.py /usr/local/bin/add-tool-cheats.sh /usr/local/bin/check-help-coverage.sh \ && /usr/local/bin/create-offline-help-system.sh \ && /usr/local/bin/add-tool-cheats.sh # Install Oh My Zsh for remnux user (minimal installation) RUN su - remnux -c 'sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended' || true \ && rm -rf /home/remnux/.oh-my-zsh/.git \ && find /home/remnux/.oh-my-zsh/plugins -mindepth 1 -maxdepth 1 -type d ! -name git ! -name docker ! -name command-not-found ! -name colored-man-pages -exec rm -rf {} + 2>/dev/null || true \ && rm -rf /home/remnux/.cache/* /tmp/* 2>/dev/null || true # Update bashrc with welcome message and comprehensive help info RUN echo 'cat /opt/README' >> /etc/bash.bashrc \ && echo 'echo ""' >> /etc/bash.bashrc \ && echo 'echo "📚 Comprehensive Help System:"' >> /etc/bash.bashrc \ && echo 'echo " fhelp - Complete file analysis help"' >> /etc/bash.bashrc \ && echo 'echo " fhelp tools pdf - Find PDF analysis tools"' >> /etc/bash.bashrc \ && echo 'echo " fhelp cheat pdfid.py - Show command examples"' >> /etc/bash.bashrc \ && echo 'echo " fhelp examples - Browse all examples"' >> /etc/bash.bashrc \ && echo 'echo " fhelp pdf - PDF analysis workflow"' >> /etc/bash.bashrc \ && echo 'echo ""' >> /etc/bash.bashrc \ && echo 'echo " Shells: bash (default), zsh (with Oh My Zsh), fish"' >> /etc/bash.bashrc \ && echo 'echo ""' >> /etc/bash.bashrc \ && echo 'alias analyse="fhelp"' >> /etc/bash.bashrc \ && echo 'alias ?="fhelp"' >> /etc/bash.bashrc \ && rm -rf /var/cache/* /tmp/* /var/tmp/* /home/remnux/.cache/* /root/.cache/* 2>/dev/null || true # Switch to remnux user (REMnux default user) USER remnux ENV LANG=en_US.UTF-8 ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/remnux/.local/bin WORKDIR /data CMD ["/bin/bash"]