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
  • 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. App Wishlist
  3. opentalk videoconferencing

opentalk videoconferencing

Scheduled Pinned Locked Moved App Wishlist
9 Posts 6 Posters 1.1k Views 7 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.
    • BerlinerB Offline
      BerlinerB Offline
      Berliner
      wrote on last edited by Berliner
      #1

      From the founder of mailbox.org. For me the best alternative to Zoom

      https://opentalk.eu
      Bring teams together, collaborate productively and creatively, delight customers online, and enjoy true data protection.

      on premise
      https://opentalk.eu/de/on-premise-videokonferenzen

      maybe cloudron compatible
      https://gitlab.opencode.de/opentalk/ot-setup

      1 Reply Last reply
      13
      • necrevistonnezrN Offline
        necrevistonnezrN Offline
        necrevistonnezr
        wrote on last edited by necrevistonnezr
        #2

        Interesting!

        The source code was just recently released:

        German video conferencing provider OpenTalk has published the code for its eponymous communications platform under the EUPL (European Public License) open source license on OpenCode.de. That the common platform of public administration for the exchange of open source software was chosen as the repository of the program sources is only logical: because OpenTalk, developed by the Berlin Linux and mailbox specialist Heinlein Support, sees the software as particularly suitable for use in politics and administration, universities and schools.

        Front-end and back-end code is ready
        On the Git server of OpenCode.de, the code of the frontend created with the JavaScript library as well as the backend programmed in Rust including the server components has been published. Further building blocks such as a Keycloak for participant authentication and a Postgres server are required for operation, which are automatically installed and configured in provided Docker containers. For interested administrators, a guide is available that describes how to install the community version of the video conferencing software on their own systems.

        As is common with many commercial open source projects, the community version of OpenTalk includes only basic features. The paid enterprise edition includes additional features such as audit-proof reconciliation or high scalability based on Kubernetes clusters. It can be licensed individually and includes support assistance during productive operation. Hosters and platform operators can also integrate the software into their own products and services and offer OpenTalk-based services. Control is then based on a REST API. In the medium term, the manufacturer also hopes for an active community that develops supplements around OpenTalk. However, the necessary coordination processes are currently still lacking.

        translated from https://www.heise.de/news/Videokonferenzen-DSGVO-konformes-OpenTalk-jetzt-quelloffen-7495132.html

        About the Project:

        Berlin-based company OpenTalk is taking on established video telephony apps that have often been used in German offices to date. According to SPIEGEL information, the first authorities are already testing the system.
        The company OpenTalk is launching a new video conferencing service starting Wednesday that aims to compete with offerings such as Microsoft Teams, Zoom or Cisco's WebEx. The calls will run via cloud servers operated exclusively in Germany, according to the company. The service was developed by Berlin-based Heinlein Support GmbH over a period of around two and a half years.
        OpenTalk is aimed in particular at companies and public authorities. According to SPIEGEL, the service is already being tested in several state institutions or has been commissioned or scheduled for pilot projects, for example at the Federal Environment Agency or by the state chancellery in Schleswig-Holstein. The system is currently being tested in the Thuringian administration. Public authorities in Germany still regularly use video call services from the USA.
        The head of OpenTalk, Peer Heinlein, sees this as "a question of national security." It's a problem when numerous government agencies use systems from U.S. providers, he said. "The last attack hit a gas pipeline, the next one could hit a submarine Internet cable. Video telephony by authorities is also a kind of critical infrastructure and should be able to run autonomously in Germany," Heinlein told SPIEGEL.
        Another fundamental problem for government video service systems so far has also been that they run over federal or agency infrastructure, with bandwidth restrictions due to security requirements. OpenTalk would also have to run over these systems in most cases. Nevertheless, Heinlein believes it is well equipped for such problems with various measures - including the fact that its service also works relatively well with mediocre bandwidths.
        Heinlein also emphasizes that the company's own systems are run entirely out of its own data centers in Berlin and that no data flows abroad.
        OpenTalk calls, like many other services designed for high numbers of subscribers, are not yet protected with the particularly secure end-to-end encryption. However, company sources say that they are working on such a function.
        New accounts with the service will cost between 7.50 and 12.50 euros per account per month, depending on the features booked. The calls are initially designed for 200 subscribers per call, but tests have shown a much higher limit, they say.

        translated from https://www.spiegel.de/netzwelt/apps/opentalk-deutscher-videotelefonie-anbieter-will-webex-zoom-und-teams-in-behoerden-ersetzen-a-7089489b-aa73-4e0d-bc34-489961bd2b57

        1 Reply Last reply
        3
        • robiR Offline
          robiR Offline
          robi
          wrote on last edited by
          #3

          Hmm, it's a pretty big app.
          Here's the contents of the docker-compose file:

          ---
          version: "3.9"
          services:
            # *** KEYCLOAK ***
            keycloak:
              image: quay.io/keycloak/keycloak:${KC_IMAGE_TAG:-20.0}
              profiles: ["core", "keycloak", "controller"]
              restart: always
              environment:
                KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN:-admin}
                KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD}
                KC_REALM_ID: ${KC_REALM_ID:-opentalk}
                KC_REALM_NAME: ${KC_REALM_NAME:-opentalk}
                KC_REALM_DISPLAYNAME: ${KC_REALM_DISPLAYNAME:-opentalk}
                KC_CLIENT_SECRET: ${KC_CLIENT_SECRET}
                KC_DOMAIN: ${OT_DOMAIN:-opentalk.example.com}
                KC_HOSTNAME: "accounts.${OT_DOMAIN:-opentalk.example.com}"
                KC_HTTP_RELATIVE_PATH: ${KC_HTTP_RELATIVE_PATH:-/auth}
                KC_PROXY: ${KC_PROXY:-edge}
                KC_TESTUSER_ENABLE: ${KC_TESTUSER_ENABLE:-false}
              entrypoint: []
              command:
                - /bin/sh
                - -c
                - |
                    /opt/keycloak/bin/kc.sh build --health-enabled=true
                    /opt/keycloak/bin/kc.sh start --import-realm --optimized
              user: 0:0
              volumes:
                - ${KC_HOST_DATA_DIR:-./data/kc_data}:/opt/keycloak/data/:Z
                - ${KC_HOST_POVIDER_DIR:-./data/kc_provider}:/opt/keycloak/providers:Z
              ports:
                - ${KC_EXP_PORT:-8087}:8080
              healthcheck:
                test: curl -fsS http://keycloak:8080/auth/health/ready -o - | grep UP
                interval: 20s
                timeout: 120s
                retries: 10
           
            # *** POSTGRES ***
            postgres:
              image: postgres:${POSTGRES_IMAGE_TAG:-13-alpine}
              profiles: ["core", "postgres", "controller"]
              volumes:
                - ${POSTGRES_HOST_DATA_DIR:-./data/pg_data}:/var/lib/postgresql/data
              restart: always
              # ports:
              #  - ${POSTGRES_EXP_PORT:-5432}:5432
              environment:
                POSTGRES_DB: ${POSTGRES_DB:-k3k}
                POSTGRES_USER: ${POSTGRES_USER:-ot}
                POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
           
            # *** AUTOHEAL ***
            autoheal:
              image: willfarrell/autoheal:${AUTOHEAL_IMAGE_TAG:-latest}
              profiles: ["core", "keycloak", "postgres", "rabbit", "web-frontend", "controller", "janus"]
              restart: always
              environment:
                AUTOHEAL_CONTAINER_LABEL: all
              volumes:
                - /var/run/docker.sock:/var/run/docker.sock
          
            # *** RabbitMQ ***
            rabbit:
              image: rabbitmq:${RABBITMQ_IMAGE_TAG:-3.10-management-alpine}
              profiles: ["core", "rabbit", "janus", "controller", "obelisk", "mail-worker", "recorder"]
              restart: always
              ports:
                - ${RABBITMQ_EXP_NODE_PORT:-5672}:5672
              # - ${RABBITMQ_EXP_UI_PORT:-15672}:15672
              environment:
                RABBITMQ_SERVER_ADDITIONAL_ERL_ARGS: -rabbit consumer_timeout 30000
              healthcheck:
                test: rabbitmq-diagnostics -q check_running && rabbitmq-diagnostics -q check_local_alarms
                interval: 10s
                timeout: 15s
                retries: 5
           
            # *** Redis ***
            redis:
              image: redis:${REDIS_IMAGE_TAG:-alpine}
              profiles: ["core", "redis", "controller"]
              restart: always
              # ports:
              #  - ${REDIS_EXP_PORT:-6379}:${REDIS_EXP_PORT:-6379}
           
            # *** Web-Frontend
            web-frontend:
              image: registry.opencode.de/opentalk/web-frontend:${OT_FRONTEND_IMAGE_TAG:-v1}
              profiles: ["core", "web-frontend"]
              restart: always
              ports:
                - ${OT_FRONTEND_EXP_PORT:-8080}:80
              environment:
                CONTROLLER_HOST: controller.${OT_DOMAIN:-opentalk.example.com}
                BASE_URL: https://${OT_DOMAIN:-opentalk.example.com}
                OIDC_ISSUER: https://accounts.${OT_DOMAIN:-opentalk.example.com}/auth/realms/${KC_REALM_ID:-opentalk}
                OIDC_CLIENT_ID: ${OIDC_CLIENT_ID:-OtFrontend}
                NDT_SERVER: ${NDT_SERVER:-ndt.example.com}
                CHANGE_PASSWORD_URL: https://accounts.${OT_DOMAIN:-opentalk.example.com}/auth/realms/${KC_REALM_ID:-opentalk}/account/
                ERROR_REPORT_ADDRESS: ${ERROR_REPORT_ADDRESS:-reports@example.com}
                LIBRAVATAR_DEFAULT_IMAGE: ${LIBRAVATAR_DEFAULT_IMAGE:-identicon}
                VIDEO_BACKGROUNDS: >-
                  [{
                    altText: 'OpenTalk',
                    url: '/assets/videoBackgrounds/elevate-bg.png',
                    thumb: '/assets/videoBackgrounds/thumbs/elevate-bg-thumb.png',
                  }]
                IS_BETA_RELEASE: ${IS_BETA_RELEASE:-false}
                FEATURE_USER_SEARCH: ${FEATURE_USER_SEARCH:-false}
                FEATURE_TIMER: ${FEATURE_TIMER:-true}
                FEATURE_WHITEBOARD: ${FEATURE_WHITEBOARD:-false}
                FEATURE_PROTOCOL: ${FEATURE_PROTOCOL:-false}
                FEATURE_RECORDING: ${FEATURE_RECORDING:-false}
          
            # *** controller ***
            controller:
              image: registry.opencode.de/opentalk/controller:${OT_CONTROLLER_IMAGE_TAG:-v0.1}
              profiles: ["core", "controller"]
              restart: always
              depends_on:
                keycloak:
                  condition: service_healthy
                rabbit:
                  condition: service_healthy
                janus:
                  condition: service_healthy
                minio:
                  condition: service_healthy
              ports:
                - ${OT_CONTROLLER_EXP_PORT:-8090}:11311
              volumes:
                - ${OT_CONTROLLER_CONFIG_FILE:-./config/controller.toml}:/controller/config.toml
          
            # *** minio ***
            minio:
              image: minio/minio:${MINIO_IMAGE_TAG:-RELEASE.2023-01-02T09-40-09Z.hotfix.5c99bdd49}
              profiles: ["core", "minio", "controller"]
              restart: always
              command: minio server /data
              volumes:
                - ./data/minio:/data
              healthcheck:
                test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
                interval: 30s
                timeout: 20s
                retries: 3
              environment:
                MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
                MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
          
            # *** janus gateway***
            janus:
              image: registry.opencode.de/opentalk/janus-gateway:${JANUS_IMAGE_TAG:-latest}
              profiles: ["core", "janus", "controller", "obelisk"]
              restart: always
              network_mode: host
              depends_on:
                - rabbit
              command:
                - janus
              environment:
                WAITTIMEOUT: ${JANUS_WAITTIMEOUT:-30}
                RABBITMQ_HOST: ${RABBITMQ_HOST:-rabbit}
                RABBITMQ_PORT: ${RABBITMQ_EXP_NODE_PORT:-5672}
                JANUS_DISABLE_WEBSOCKET: ${JANUS_DISABLE_WEBSOCKET:-true}
                JANUS_DISABLE_HTTP: ${JANUS_DISABLE_HTTP:-true}
                JANUS_EXCHANGE: ${JANUS_EXCHANGE:-janus-exchange}
                JANUS_QUEUE_NAME: ${JANUS_QUEUE_NAME:-janus-gateway}
                JANUS_EXCHANGE_TYPE: ${JANUS_EXCHANGE_TYPE:-topic}
                JANUS_QUEUE_INCOMING: ${JANUS_QUEUE_INCOMING:-to-janus}
                JANUS_ROUTING_KEY_OUTGOING: ${JANUS_ROUTING_KEY_OUTGOING:-from-janus}
                JANUS_ICE_IF: ${JANUS_ICE_IF:-eth0}
                JANUS_UDP_PORT_RANGE: ${JANUS_UDP_PORT_RANGE:-20000-25000}
                JANUS_ICE_LITE: ${JANUS_ICE_LITE:-true}
                JANUS_EVENT_LOOPS: ${JANUS_EVENT_LOOPS:-8}
                JANUS_IGNORE_MDNS: ${JANUS_IGNORE_MDNS:-true}
          
            # *** obelisk ***
            obelisk:
              image: registry.opencode.de/opentalk/obelisk:${OT_OBELISK_IMAGE_TAG:-latest}
              profiles: ["obelisk"]
              network_mode: host
              restart: always
              depends_on:
                rabbit:
                  condition: service_healthy
                janus:
                  condition: service_healthy
              environment:
                RUST_LOG: ${RUST_LOG:-info}
                GST_DEBUG: ${GST_DEBUG:-2}
                CONTROLLER_DOMAIN: ${CONTROLLER_DOMAIN:-controller.$OT_DOMAIN}
                SIP_ADDR: "${SIP_ADDR:-0.0.0.0}"
                SIP_PORT: "${SIP_PORT:-5060}"
                SIP_USER: "${SIP_USER:-mysipuser}"
                SIP_PASSWORD: "${SIP_PASSWORD:-mysippw}"
                SIP_REALM: "${SIP_REALM:-SIP_REALM}"
                SIP_REGISTRAR: "${SIP_REGISTRAR:-sip:yoursipprovider.com}"
                SIP_STUN_SERVER: "${SIP_STUN_SERVER:-stun.yoursipprovider.com:3478}"
                SIP_ENFORCE_QOP: "${SIP_ENFORCE_QOP:-true}"
                SIP_RTP_PORT_RANGE_START: "${SIP_RTP_PORT_RANGE_START:-40000}"
                SIP_RTP_PORT_RANGE_END: "${SIP_RTP_PORT_RANGE_END:-49999}"
          
            # *** mail worker ***
            mail-worker:
              image: registry.opencode.de/opentalk/smtp-mailer:${OT_MAIL_WORKER_IMAGE_TAG:-latest}
              profiles: ["mail-worker"]
              restart: always
              depends_on:
                rabbit:
                  condition: service_healthy
              #volumes:
              #  - ${OT_MAIL_WORKER_CONFIG_FILE:-./config/mail-worker.toml}:/opt/smtp-mailer/config.toml
              environment:
                RUST_LOG: ${RUST_LOG:-info}
                MAILER_SMTP__SERVER: "${SMTP_SERVER:-}"
                MAILER_FRONTEND__BASE_URL: "https://$OT_DOMAIN"
                MAILER_LANGUAGES__DEFAULT_LANGUAGE: "${LANGUAGES_DEFAULT_LANGUAGE:-de-DE}"
                MAILER_RABBITMQ__MAIL_TASK_QUEUE: "${RABBITMQ_MAIL_TASK_QUEUE:-opentalk_mailer}"
                MAILER_RABBITMQ__URL: "${RABBITMQ_URL:-amqp://rabbit/%2F}"
          
            # *** spacedeck ***
            spacedeck:
              image: registry.opencode.de/opentalk/spacedeck:${SD_IMAGE_TAG:-latest}
              profiles: ["spacedeck"]
              restart: always
              environment:
                SD_HOST: ${SD_HOST:-0.0.0.0}
                SD_PORT: ${SD_PORT:-9666}
                SD_ENDPOINT: ${SD_ENDPOINT:-}
                SD_API_TOKEN: ${SD_API_TOKEN:-}
                SD_INVITE_CODE: ${SD_INVITE_CODE:-}
              ports:
                - "${SD_EXP_PORT:-9666}:${SD_PORT:-9666}"
          
            # *** etherpad ***
            etherpad:
              image: registry.opencode.de/opentalk/etherpad:${EP_IMAGE_TAG:-latest}
              profiles: ["etherpad"]
              restart: always
              environment:
                EP_APIKEY: ${EP_APIKEY:-}
                TRUST_PROXY: ${TRUST_PROXY:-true}
                SUPPRESS_ERRORS_IN_PAD_TEXT: ${SUPPRESS_ERRORS_IN_PAD_TEXT:-true}
                DEFAULT_PAD_TEXT: ${DEFAULT_PAD_TEXT:-Willkommen bei OpenTalk!}
              ports:
                - "${EP_EXP_PORT:-9001}:${EP_PORT:-9001}"
          

          Conscious tech

          1 Reply Last reply
          2
          • robiR Offline
            robiR Offline
            robi
            wrote on last edited by
            #4

            It seems the deployment was simplified a bit, still using Keycloak and RabbitMQ.
            https://gitlab.opencode.de/opentalk/ot-setup/-/blob/1.6-release/docker-compose.yaml

            New features page: https://mailbox.org/en/post/hello-opentalk-the-gdpr-compliant-video-conferencing-solution

            Self-hosting page: https://opentalk.eu/en/on-premise-videoconferencing

            Conscious tech

            1 Reply Last reply
            2
            • potemkin_aiP Offline
              potemkin_aiP Offline
              potemkin_ai
              wrote on last edited by
              #5

              Keycloack - is quite a behemoth on itself

              1 Reply Last reply
              0
              • micmcM Offline
                micmcM Offline
                micmc
                wrote on last edited by micmc
                #6

                A quick read spreads doubts to me that this might not be possible to run on Cloudron at all. Sadly enough.

                OpenTalk utilizes modern container technology. Each conference will be launched within a container. For small-scale installations, that's usually "localhost", or alternatively, a Kubernetes cluster for anything bigger. OpenTalk takes care of the provisioning, operation and shutdown of each conference container.

                Containerization ensures vertical & horizontal scaling as wells as clear data separation between conferences and participants. OpenTalk allows hassle-free operation, good management of CPUs and other resources, and avoids the "10K" scale-out issues that other solutions may suffer from. A conference container runs largely independently, which is great for administrators, as configuration changes and even system updates can be performed at all times without causing disruption.

                Ignorance is not an excuse anymore!
                https://AutomateKit.com

                1 Reply Last reply
                1
                • jdaviescoatesJ Online
                  jdaviescoatesJ Online
                  jdaviescoates
                  wrote on last edited by
                  #7

                  I may give Kopano Meet another try... (although tbh mostly still happy with out of date Jitsi and Nextcloud Talk for my limited needs)

                  I use Cloudron with Gandi & Hetzner

                  1 Reply Last reply
                  0
                  • potemkin_aiP Offline
                    potemkin_aiP Offline
                    potemkin_ai
                    wrote on last edited by
                    #8

                    I'm sorry, but:

                    Each conference will be launched within a container.

                    Sounds like a nice marketing wording for what's happening already for any docker-ized app. Every docker-ized app launch it's context within a container.

                    And I seriously doubt that for every call they deploy separate container and kill it afterwards - especially on Kubernetes, that would make calls setup extremely slow.

                    micmcM 1 Reply Last reply
                    1
                    • potemkin_aiP potemkin_ai

                      I'm sorry, but:

                      Each conference will be launched within a container.

                      Sounds like a nice marketing wording for what's happening already for any docker-ized app. Every docker-ized app launch it's context within a container.

                      And I seriously doubt that for every call they deploy separate container and kill it afterwards - especially on Kubernetes, that would make calls setup extremely slow.

                      micmcM Offline
                      micmcM Offline
                      micmc
                      wrote on last edited by
                      #9

                      @potemkin_ai said in opentalk videoconferencing:

                      I'm sorry, but:

                      You can...

                      Each conference will be launched within a container.

                      That's a quote from OpenTalk's website, I do not invent and propagate hearings lol

                      Sounds like a nice marketing wording for what's happening already for any docker-ized app. Every docker-ized app launch it's context within a container.

                      It's in no way a "marketing wording" it's how they've implemented their app's environment apparently. To run an app built to run from within a docker container, obviously it runs in a container. Though the self-contained apps

                      And I seriously doubt that for every call they deploy separate container and kill it afterwards - especially on Kubernetes, that would make calls setup extremely slow.

                      Well, I get you but this is not my saying, this is what I quoted from their own website so this is their OWN explanation of how their conference server works. If you don't believe them, maybe you should go and argue with them what you know about Docker and Kubernetes? 😁

                      For my part, according to their OWN explanation, it reminds me much of how Cloudron works, somehow...

                      Ignorance is not an excuse anymore!
                      https://AutomateKit.com

                      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