brush Docker & Self-Hosted Deployment

GitHub

3D Reconstruction for all

5,202 stars Rust Rust 1 file ยท ~1,420 tokens #gaussian-splatting#graphics#reconstruction
1. Pull Image (DOCKERHUB) docker pull ArthurBrussee/brush:latest
2. Docker Run (1-Click Launch) docker run -d --name brush --restart always arthurbrussee/brush:latest
3. Podman Run podman run -d --name brush --restart always arthurbrussee/brush:latest
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/arthurbrussee/brush:latest
5. ORAS Pull (OCI Artifact) oras pull arthurbrussee/brush:latest
apps/Dockerfile
# Headless Brush training. GPU drivers come from the host via
# nvidia-container-toolkit or by mounting /usr/share/vulkan/icd.d.
# Falls back to mesa software rendering if neither is available.
#
#   docker build -t brush -f extras/Dockerfile .
#   docker run --gpus all -v ./data:/data brush /data/my_scene

FROM rust:1.93 AS builder
WORKDIR /build
COPY . .
RUN cargo build --release -p brush-app

FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
ENV NVIDIA_VISIBLE_DEVICES=all
ENV NVIDIA_DRIVER_CAPABILITIES=all

RUN apt-get update && apt-get install -y --no-install-recommends \
        libvulkan1 mesa-vulkan-drivers \
    && rm -rf /var/lib/apt/lists/*

COPY --from=builder /build/target/release/brush /usr/local/bin/brush

RUN useradd -m brush && mkdir /data && chown brush:brush /data
USER brush
WORKDIR /data
ENTRYPOINT ["brush"]