startAudio() now dynamically loads the selected WZP client variant: - /audio-variant [pure|hybrid|full|ws|ws-fec|ws-full] - Loads variant JS from wzp-web's /audio/js/ path via Caddy - Falls back to inline pure implementation if variant fails to load - Variant persisted in localStorage across sessions - Call bar shows active variant: "In call [ws-fec] with 0x..." Variants: pure — raw PCM over WS (bridge needed, no WASM) hybrid — raw PCM + WASM FEC over WS (bridge needed) full — WebTransport + FEC + crypto (no bridge, future) ws — WZP protocol over WS (relay direct) ws-fec — WZP + WASM FEC over WS (relay direct) ws-full — WZP + FEC + E2E crypto over WS (relay direct) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
31 lines
1.2 KiB
Docker
31 lines
1.2 KiB
Docker
# WZP relay + web bridge — multi-stage build
|
|
# Build context: featherChat repo root (../../..)
|
|
FROM rust:latest AS builder
|
|
|
|
RUN apt-get update && apt-get install -y cmake pkg-config libssl-dev && rm -rf /var/lib/apt/lists/*
|
|
|
|
WORKDIR /build
|
|
|
|
# Copy warzone-phone workspace (feature/wzp-web-variants branch)
|
|
COPY warzone-phone/Cargo.toml warzone-phone/Cargo.lock ./warzone-phone/
|
|
COPY warzone-phone/crates ./warzone-phone/crates
|
|
|
|
# wzp-crypto depends on warzone-protocol via deps/featherchat/warzone/...
|
|
COPY warzone/crates/warzone-protocol ./warzone-phone/deps/featherchat/warzone/crates/warzone-protocol
|
|
|
|
# Build both binaries
|
|
WORKDIR /build/warzone-phone
|
|
RUN cargo build --release --bin wzp-relay --bin wzp-web
|
|
|
|
# Runtime — use same distro as builder to match glibc
|
|
FROM debian:trixie-slim
|
|
RUN apt-get update && apt-get install -y ca-certificates && rm -rf /var/lib/apt/lists/*
|
|
|
|
COPY --from=builder /build/warzone-phone/target/release/wzp-relay /usr/local/bin/
|
|
COPY --from=builder /build/warzone-phone/target/release/wzp-web /usr/local/bin/
|
|
|
|
# Copy static files for wzp-web (HTML, JS, WASM)
|
|
COPY --from=builder /build/warzone-phone/crates/wzp-web/static /data/static
|
|
|
|
WORKDIR /data
|