- DNS-level ad blocking: 385K+ domains via Hagezi Pro blocklist, subdomain matching, one-click allowlist, pause/toggle, background refresh every 24h - Live dashboard at :5380 with real-time stats, query log, override management (create/edit/delete), blocking controls - System DNS auto-discovery: parses scutil --dns on macOS to find conditional forwarding rules (Tailscale, VPN split-DNS) - REST API expanded to 18 endpoints (blocking, overrides, diagnostics) - Startup banner with colored system info - Performance benchmarks (bench/dns-bench.sh) - Landing page updated with new positioning and comparison table - CI, Dockerfile, LICENSE, development plan docs Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
16 lines
427 B
Docker
16 lines
427 B
Docker
FROM rust:1.85-alpine AS builder
|
|
RUN apk add --no-cache musl-dev
|
|
WORKDIR /app
|
|
COPY Cargo.toml Cargo.lock ./
|
|
RUN mkdir src && echo 'fn main() {}' > src/main.rs && echo '' > src/lib.rs
|
|
RUN cargo build --release 2>/dev/null || true
|
|
RUN rm -rf src
|
|
COPY src/ src/
|
|
RUN touch src/main.rs src/lib.rs
|
|
RUN cargo build --release
|
|
|
|
FROM scratch
|
|
COPY --from=builder /app/target/release/numa /numa
|
|
EXPOSE 53/udp 5380/tcp
|
|
ENTRYPOINT ["/numa"]
|