Files
felis f79852d8e6 add account localization and switchable rooms
Centralize control and OBS copy in a shared TOML catalog, persist the selected locale per account, and broadcast language changes to component streams. Allow account owners to atomically switch their Bilibili room and restart the shared listener without changing component URLs.
2026-07-18 23:28:05 -07:00

31 lines
1.4 KiB
Docker

FROM node:22-bookworm-slim AS web-build
WORKDIR /app/apps/overlay
COPY apps/overlay/package.json apps/overlay/package-lock.json ./
RUN npm ci
COPY resources /app/resources
COPY apps/overlay ./
RUN npm run build
FROM rust:1.97-bookworm AS rust-build
WORKDIR /app
COPY apps/server-rust/Cargo.toml apps/server-rust/Cargo.lock ./apps/server-rust/
# `libilibili` is a sibling checkout in local development. Compose exposes it
# as a named build context so the image always compiles the same local source
# without copying a second, drifting crate into this repository.
COPY --from=libilibili . /libilibili
COPY apps/server-rust/src ./apps/server-rust/src
COPY apps/server-rust/migrations ./apps/server-rust/migrations
COPY resources ./resources
RUN --mount=type=cache,target=/usr/local/cargo/registry \
--mount=type=cache,target=/app/target-cache \
CARGO_TARGET_DIR=/app/target-cache cargo build --manifest-path apps/server-rust/Cargo.toml --release && \
cp /app/target-cache/release/lxc-stream-server /app/lxc-stream-server
FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y --no-install-recommends ca-certificates curl && rm -rf /var/lib/apt/lists/*
WORKDIR /app
COPY --from=rust-build /app/lxc-stream-server /app/lxc-stream-server
COPY --from=web-build /app/apps/overlay/dist /app/web
EXPOSE 9719
CMD ["/app/lxc-stream-server", "--config", "/app/config.toml"]