docker icon indicating copy to clipboard operation
docker copied to clipboard

Breakout Rooms - Saving / converting whiteboard doesn't work

Open michelleDeko opened this issue 8 months ago • 8 comments

Hi!

I just tried installing BBB via docker for my private server and realized that after creating a breakout room with the setting "Save whiteboard", going into the breakout room to write / draw something and closing the breakout room, the presentation apparentaly can't get saved / converted.

Image

Inside the logs I get the following error:

bbb-export-annotations-1  | 2025-04-19T13:58:06.699Z INFO        [presAnn Process Worker] Saved PDF at  /var/bigbluebutton/6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508/6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508/2322a3eb3618ee7fc79cf6a500ff586be6288d32-1745071062516/pdfs/6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508-slides/6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508-slides/Room_1_Whiteboard.pdf
webrtc-sfu-1              | {"level":30,"time":"2025-04-19T13:58:06.668Z","pid":271,"hostname":"mii-server","mod":"fullaudio","roomId":"439382756","meetingId":"5aee665061afa7e8f7d7ef7f28e5b9f6f6b12dea-1745071042846","userId":"w_s9oxfif2tjjq","connectionId":"fa19f477-dc60-4a21-b677-ebb921ef948e","mediaId":"932f6878-2b39-43de-b869-47e8bb270b95","bridgeStatus":"MEDIA_STARTED","bridgeMediaId":"79c58657-3cda-446d-a42d-b253e2cf25ca","transceiverMode":"recv","listenOnly":false,"msg":"Client audio is FLOWING"}
bbb-export-annotations-1  | (node:19) [DEP0044] DeprecationWarning: The `util.isArray` API is deprecated. Please use `Array.isArray()` instead.
bbb-export-annotations-1  | (Use `node --trace-deprecation ...` to show where the warning was created)
bbb-export-annotations-1  | 2025-04-19T13:58:06.988Z ERROR       [presAnn Notifier Worker] Could not upload job 6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508-slides: Error: ENOENT: no such file or directory, open '/var/bigbluebutton/6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508/6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508/2322a3eb3618ee7fc79cf6a500ff586be6288d32-1745071062516/pdfs/6a3388002410f268a8e3d1571cc115e9fa5bfb4c-1745071057508-slides/Room_1_Whiteboard.pdf'

Any ideas of what could be the issue?

michelleDeko avatar Apr 19 '25 14:04 michelleDeko

For me, the conversion at all doesn't work. I fixed it by recreate the image with a modified process.js

So first question is, does the export on the "main room" works?

https://github.com/bigbluebutton/bigbluebutton/blob/v3.0.x-release/bbb-export-annotations/workers/process.js#L428 i removed the quotes there.

ps: the deprecation warning can be ignored at the moment. pps: the problem is the process.js doesn't catch any error from ghostscript

ben-ba avatar Jun 25 '25 09:06 ben-ba

After seeing another issue, the presentation itself wouldn't be exported, i rebuild the image, on ubuntu base. i will create a pull requests the next days.

ben-ba avatar Jun 26 '25 18:06 ben-ba

Which image you talking about benjamin? Is it the [bbb-export-annotations]?(https://github.com/bigbluebutton/docker/blob/bbb3.0/mod/bbb-export-annotations/Dockerfile)

haimeo1201 avatar Jul 03 '25 03:07 haimeo1201

Exactly

Am 03.07.2025 um 05:46, haimeo1201 @.***> schrieb:

haimeo1201 left a comment (bigbluebutton/docker#356)

Which image you talking about benjamin? Is it the [bbb-export-annotations]?(https://github.com/bigbluebutton/docker/blob/bbb3.0/mod/bbb-export-annotations/Dockerfile)

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you commented.Message ID: @.***>

ben-ba avatar Jul 03 '25 04:07 ben-ba

I don't understand the ubuntu base mean, i can't find that image in node docker hub, correct me if i'm wrong :D Here is bbb-export-annotations base "FROM node:22-bookworm-slim AS builder"

haimeo1201 avatar Jul 03 '25 04:07 haimeo1201

@ben-ba hey Benjamin can you take a little time to look at this? Really appreciate your help

haimeo1201 avatar Jul 24 '25 10:07 haimeo1201

Yes, I have a working image, i will deploy it during the day and push it here.

ben-ba avatar Jul 24 '25 10:07 ben-ba

Which image you talking about benjamin? Is it the [bbb-export-annotations]?(https://github.com/bigbluebutton/docker/blob/bbb3.0/mod/bbb-export-annotations/Dockerfile)

this is my updated, working Dockerfile, main differences,

  • using ubuntu instead of node as base image (the node image using an debian base image)
  • proxy support, if you don't need it, remove the http(s)_proxy vars / lines

notes:

  • installing node, because no official node image based on ubuntu is available
  • using ubuntu instead of debian, because the debian ghostscript return an uncatched error - by bbb
  • should also work without the packages poppler-utils, imagemagick; see https://github.com/bigbluebutton/bigbluebutton/issues/19703#issuecomment-3138094933 , but atm untested
  • 172.17.0.1 is the docker0 interface on your host machine
#FROM node:22-bookworm-slim AS builder
FROM  ubuntu:22.04 AS builder
RUN http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt update && \
    http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt install -y \
    curl gpg
RUN curl -fsSL --proxy "http://172.17.0.1:8888" https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
ENV NODE_MAJOR=22
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
RUN http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt update && \
    http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt install -y \
    nodejs
#npm get installed automatically
COPY --from=src / /bbb-export-annotations
RUN cd /bbb-export-annotations && npm --proxy http://172.17.0.1:8888 ci
# --------------------
#FROM node:22-bookworm-slim
FROM  ubuntu:22.04
RUN groupadd -g 998 bigbluebutton \
    && useradd -m -u 998 -g bigbluebutton bigbluebutton
RUN http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt update && \
    http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt install -y \
    curl gpg cairosvg ghostscript imagemagick poppler-utils
RUN curl -fsSL --proxy "http://172.17.0.1:8888" https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
ENV NODE_MAJOR=22
RUN echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list
RUN http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt update && \
    http_proxy=http://172.17.0.1:8888 \
    https_proxy=http://172.17.0.1:8888 \
    apt install -y \
    nodejs
#npm get installed automatically
COPY --from=builder /bbb-export-annotations /bbb-export-annotations
COPY ./config/settings.json /bbb-export-annotations/config/settings.json
USER bigbluebutton
WORKDIR /bbb-export-annotations
ENV NODE_ENV=production
ENTRYPOINT npm start

ben-ba avatar Aug 13 '25 17:08 ben-ba