kapil commited on
Commit
6b285c0
·
1 Parent(s): f972a86

Add Dockerfile and HF Space config

Browse files
Files changed (2) hide show
  1. Dockerfile +46 -0
  2. src/server.rs +6 -2
Dockerfile ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # --- Build Stage ---
2
+ FROM rust:1.80-slim as builder
3
+
4
+ WORKDIR /usr/src/app
5
+
6
+ # Install build dependencies
7
+ RUN apt-get update && apt-get install -y \
8
+ pkg-config \
9
+ libssl-dev \
10
+ cmake \
11
+ g++ \
12
+ && rm -rf /var/lib/apt/lists/*
13
+
14
+ # Copy source code and config
15
+ COPY . .
16
+
17
+ # Build for release
18
+ RUN cargo build --release
19
+
20
+ # --- Run Stage ---
21
+ FROM debian:bookworm-slim
22
+
23
+ WORKDIR /usr/src/app
24
+
25
+ # Install runtime dependencies (Mesa/Vulkan for wgpu fallback)
26
+ RUN apt-get update && apt-get install -y \
27
+ ca-certificates \
28
+ libssl3 \
29
+ libvulkan1 \
30
+ mesa-vulkan-drivers \
31
+ libfontconfig1 \
32
+ && rm -rf /var/lib/apt/lists/*
33
+
34
+ # Copy the binary from builder
35
+ COPY --from=builder /usr/src/app/target/release/rust_auto_score_engine /usr/local/bin/dartvision
36
+
37
+ # Copy assets
38
+ COPY --from=builder /usr/src/app/static ./static
39
+ COPY --from=builder /usr/src/app/model_weights.bin ./model_weights.bin
40
+
41
+ # Environment variables for HF Spaces
42
+ ENV PORT=7860
43
+ EXPOSE 7860
44
+
45
+ # Run the GUI
46
+ CMD ["dartvision", "gui"]
src/server.rs CHANGED
@@ -29,8 +29,12 @@ struct PredictRequest {
29
  }
30
 
31
  pub async fn start_gui(device: WgpuDevice) {
32
- let addr = SocketAddr::from(([127, 0, 0, 1], 8080));
33
- println!("🚀 [DartVision-GUI] Starting on http://127.0.0.1:8080",);
 
 
 
 
34
 
35
  let (tx, mut rx) = mpsc::channel::<PredictRequest>(10);
36
 
 
29
  }
30
 
31
  pub async fn start_gui(device: WgpuDevice) {
32
+ let port = std::env::var("PORT")
33
+ .unwrap_or_else(|_| "8080".to_string())
34
+ .parse::<u16>()
35
+ .unwrap_or(8080);
36
+ let addr = SocketAddr::from(([0, 0, 0, 0], port));
37
+ println!("🚀 [DartVision-GUI] Starting on http://0.0.0.0:{}", port);
38
 
39
  let (tx, mut rx) = mpsc::channel::<PredictRequest>(10);
40