Cloudron makes it easy to run web apps like WordPress, Nextcloud, GitLab on your server. Find out more or install now.


Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Bookmarks
  • Search
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo

Cloudron Forum

Apps | Demo | Docs | Install
  1. Cloudron Forum
  2. MiroTalk
  3. MiroTalk SFU: Recording not possible?

MiroTalk SFU: Recording not possible?

Scheduled Pinned Locked Moved Unsolved MiroTalk
24 Posts 4 Posters 134 Views 4 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • nebulonN Offline
    nebulonN Offline
    nebulon
    Staff
    wrote last edited by
    #12

    Thanks for all the insights here. So I think the folder to store recordings should then default to /app/data/rec or so with an option to configure that to use a different volume (not sure how large those recordings are)

    For RTMP_DIR is this some kind of temporary directory and thus maybe should be configured as /tmp/... or maybe even /run/... ?

    1 Reply Last reply
    0
    • MiroTalkM Offline
      MiroTalkM Offline
      MiroTalk
      wrote last edited by MiroTalk
      #13

      Yeah, setting the recordings directory RECORDING_DIR to /app/data/rec makes sense. This keeps all generated recordings inside the application’s persistent data area, which is consistent and easy to manage.

      Regarding RTMP_DIR, it is not a temporary directory.
      This directory is used to store the media files that will be streamed via RTMP. Since these files may need to remain available for repeated or scheduled streaming, it’s better to keep them in a persistent and organized location. Can be also in /app/data/rtmp as consistent with the rest of the project’s data layout.

      So in summary:

      • RECORDING_DIR → /app/data/rec
        Stores recordings generated by the application.

      • RTMP_DIR → /app/data/rtmp
        Stores video files intended for RTMP streaming, not temporary, should persist.

      1 Reply Last reply
      0
      • nebulonN Offline
        nebulonN Offline
        nebulon
        Staff
        wrote last edited by
        #14

        perfect, I will prepare a package update then. So just to double check, this only applies to the SFU flavor of mirotalk?

        1 Reply Last reply
        0
        • MiroTalkM Offline
          MiroTalkM Offline
          MiroTalk
          wrote last edited by
          #15

          perfect, I will prepare a package update then. So just to double check, this only applies to the SFU flavor of mirotalk?

          WIP on MiroTalk SFU: Let me fix this first, then I’ll ping you when done 🙂

          1 Reply Last reply
          1
          • nebulonN Offline
            nebulonN Offline
            nebulon
            Staff
            wrote last edited by
            #16

            in case your code would ensure the paths via "mkdirp()" it would make the package code easier 🙂

            1 Reply Last reply
            1
            • MiroTalkM Offline
              MiroTalkM Offline
              MiroTalk
              wrote last edited by MiroTalk
              #17

              @nebulon @James @shrey

              Implemented in MiroTalk SFU v2.0.14 — Docker image is building now (available in ~1 hour).

              • Commit
              • Build

              For Cloudron deployments, server-side recording should now work using the following configuration:

              Recording

              RECORDING_ENABLED=true
              RECORDING_DIR='../data/rec'            # Path relative to /app/code → resolves to /app/data/rec
              RECORDING_MAX_FILE_SIZE=1073741824     # Max file size in bytes (default: 1GB)
              

              RTMP

              RTMP_DIR='../data/rtmp'                # Path relative to /app/code → resolves to /app/data/rtmp
              

              Note

              If the target directories do not exist, MiroTalk SFU will automatically create them at runtime, just like before.

              Cloudron automatically mounts /app/data, so using ../data/... ensures the app writes to the persistent, writable directory.

              1 Reply Last reply
              6
              • nebulonN Offline
                nebulonN Offline
                nebulon
                Staff
                wrote last edited by
                #18

                New package is out. Thanks for all the work @mirotalk-57bab571 and being so proactive here!

                MiroTalkM 1 Reply Last reply
                4
                • nebulonN nebulon

                  New package is out. Thanks for all the work @mirotalk-57bab571 and being so proactive here!

                  MiroTalkM Offline
                  MiroTalkM Offline
                  MiroTalk
                  wrote last edited by MiroTalk
                  #19

                  @nebulon said in MiroTalk SFU: Recording not possible?:

                  New package is out. Thanks for all the work @mirotalk-57bab571 and being so proactive here!

                  Good! I’m always here to help. Thanks to Cloudron for trusting MiroTalk and supporting us! By the way, I love the new Cloudron UI v.9.0.10, it looks amazing!

                  1 Reply Last reply
                  3
                  • MiroTalkM Offline
                    MiroTalkM Offline
                    MiroTalk
                    wrote last edited by
                    #20

                    PS: Thanks also to @James for his IT support and excellent debugging and suggestions.

                    1 Reply Last reply
                    3
                    • S Offline
                      S Offline
                      shrey
                      wrote last edited by
                      #21

                      Hi @nebulon @mirotalk-57bab571
                      So, i'm still unable to boot up the app after setting RECORDING_ENABLED=true :

                      Nov 15 09:36:54 node:fs:1364
                      Nov 15 09:36:54 const result = binding.mkdir(
                      Nov 15 09:36:54 ^
                      Nov 15 09:36:54 2025-11-15T04:06:54Z
                      Nov 15 09:36:54 Error: ENOENT: no such file or directory, mkdir '/app/code/app/rec/'
                      Nov 15 09:36:54 at Object.mkdirSync (node:fs:1364:26)
                      Nov 15 09:36:54 at Object.<anonymous> (/app/code/app/src/Server.js:280:12)
                      Nov 15 09:36:54 at Module._compile (node:internal/modules/cjs/loader:1554:14)
                      Nov 15 09:36:54 at Object..js (node:internal/modules/cjs/loader:1706:10)
                      Nov 15 09:36:54 at Module.load (node:internal/modules/cjs/loader:1289:32)
                      Nov 15 09:36:54 at Function._load (node:internal/modules/cjs/loader:1108:12)
                      Nov 15 09:36:54 at TracingChannel.traceSync (node:diagnostics_channel:322:14)
                      Nov 15 09:36:54 at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
                      Nov 15 09:36:54 at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:170:5)
                      Nov 15 09:36:54 at node:internal/main/run_main_module:36:49 {
                      Nov 15 09:36:54 errno: -2,
                      Nov 15 09:36:54 code: 'ENOENT',
                      Nov 15 09:36:54 syscall: 'mkdir',
                      Nov 15 09:36:54 path: '/app/code/app/rec/'
                      Nov 15 09:36:54 }
                      Nov 15 09:36:54 2025-11-15T04:06:54Z
                      Nov 15 09:36:54 Node.js v22.14.0
                      Nov 15 09:36:54 \
                      
                      MiroTalkM 1 Reply Last reply
                      0
                      • S shrey

                        Hi @nebulon @mirotalk-57bab571
                        So, i'm still unable to boot up the app after setting RECORDING_ENABLED=true :

                        Nov 15 09:36:54 node:fs:1364
                        Nov 15 09:36:54 const result = binding.mkdir(
                        Nov 15 09:36:54 ^
                        Nov 15 09:36:54 2025-11-15T04:06:54Z
                        Nov 15 09:36:54 Error: ENOENT: no such file or directory, mkdir '/app/code/app/rec/'
                        Nov 15 09:36:54 at Object.mkdirSync (node:fs:1364:26)
                        Nov 15 09:36:54 at Object.<anonymous> (/app/code/app/src/Server.js:280:12)
                        Nov 15 09:36:54 at Module._compile (node:internal/modules/cjs/loader:1554:14)
                        Nov 15 09:36:54 at Object..js (node:internal/modules/cjs/loader:1706:10)
                        Nov 15 09:36:54 at Module.load (node:internal/modules/cjs/loader:1289:32)
                        Nov 15 09:36:54 at Function._load (node:internal/modules/cjs/loader:1108:12)
                        Nov 15 09:36:54 at TracingChannel.traceSync (node:diagnostics_channel:322:14)
                        Nov 15 09:36:54 at wrapModuleLoad (node:internal/modules/cjs/loader:220:24)
                        Nov 15 09:36:54 at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:170:5)
                        Nov 15 09:36:54 at node:internal/main/run_main_module:36:49 {
                        Nov 15 09:36:54 errno: -2,
                        Nov 15 09:36:54 code: 'ENOENT',
                        Nov 15 09:36:54 syscall: 'mkdir',
                        Nov 15 09:36:54 path: '/app/code/app/rec/'
                        Nov 15 09:36:54 }
                        Nov 15 09:36:54 2025-11-15T04:06:54Z
                        Nov 15 09:36:54 Node.js v22.14.0
                        Nov 15 09:36:54 \
                        
                        MiroTalkM Offline
                        MiroTalkM Offline
                        MiroTalk
                        wrote last edited by MiroTalk
                        #22

                        @shrey said in MiroTalk SFU: Recording not possible?:

                        So, i'm still unable to boot up the app after setting RECORDING_ENABLED=true

                        Forget the previous env configuration. In the latest Cloudron commit, recording is enabled by default, and the app/data path now appears to be automatically resolved as well.

                        rec.png

                        1 Reply Last reply
                        0
                        • S Offline
                          S Offline
                          shrey
                          wrote last edited by
                          #23

                          @mirotalk-57bab571

                          I restarted the updated app, but i still get only this:
                          image.png

                          No rec folder available, and no default recording taking place.

                          image.png

                          1 Reply Last reply
                          0
                          • S Offline
                            S Offline
                            shrey
                            wrote last edited by shrey
                            #24

                            @mirotalk-57bab571

                            It seems like 2 separate updated packages have been released for this.
                            Just came across the 2nd one and updated the app again.

                            1. The rec folder is now available in /app/data/
                            2. All recordings are still being saved on the local device only. No server-side recording. No S3 recording.
                            1 Reply Last reply
                            0
                            Reply
                            • Reply as topic
                            Log in to reply
                            • Oldest to Newest
                            • Newest to Oldest
                            • Most Votes


                            • Login

                            • Don't have an account? Register

                            • Login or register to search.
                            • First post
                              Last post
                            0
                            • Categories
                            • Recent
                            • Tags
                            • Popular
                            • Bookmarks
                            • Search