Something went wrong. Try again.
Streamplace AtmosphereConf 2026 VOD JAM
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394# Build stageFROM rust:1-trixie AS builder
WORKDIR /app
RUN rustup default nightly-2026-03-30 && rustup component add rust-src llvm-tools-preview --toolchain nightly-2026-03-30
# Install build dependenciesRUN apt-get update && apt-get install -y \ pkg-config \ libssl-dev \ clang \ llvm \ build-essential \ curl \ wget \ file \ binutils \ libavcodec-dev \ libavformat-dev \ libavdevice-dev \ libavutil-dev \ libswscale-dev \ libavfilter-dev \ libsqlite3-dev \ binaryen \ && rm -rf /var/lib/apt/lists/*
# Install wasm target and toolsRUN rustup target add wasm32-unknown-unknownRUN cargo install wasm-bindgen-cli --locked --version 0.2.117
# Install dioxus-cliRUN curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bashRUN cargo binstall dioxus-cli --root /usr/local -y --force
# Copy source codeCOPY . .
RUN cp .env-prod .env
# Build wasm workerRUN RUSTFLAGS='--cfg getrandom_backend="wasm_js"' cargo build -p vodplace-player-worker --bin player_worker \ --target wasm32-unknown-unknown --profile worker-release
# Run wasm-bindgen on workerRUN wasm-bindgen target/wasm32-unknown-unknown/worker-release/player_worker.wasm \ --out-dir public \ --target web \ --no-typescript
# Optimize wasm if binaryen is availableRUN wasm-opt public/player_worker_bg.wasm \ -O4 \ --enable-bulk-memory \ --enable-simd \ --enable-nontrapping-float-to-int \ --enable-sign-ext \ -o public/player_worker_bg.wasm
# Bundle the appRUN dx bundle --verbose --release --debug-symbols false -p vodplace
# Runtime stageFROM debian:trixie-slim
RUN apt-get update && apt-get install -y \ ca-certificates \ libssl3 \ libavcodec61 \ libavformat61 \ libavdevice61 \ libavutil59 \ libswscale8 \ libsqlite3-0 \ && rm -rf /var/lib/apt/lists/*
WORKDIR /app
# Copy the bundled appCOPY --from=builder /app/target/dx/vodplace/release/web/ /app/# COPY --from=builder /app/public/ /app/public
# Create data directory for sqlite cacheRUN mkdir -p /app/data
ENV PORT=8090ENV IP=0.0.0.0ENV VODPLACE_CACHE_DIR=/app/data
EXPOSE 8090
ENTRYPOINT ["/app/server"]