Jitsi Meet desktop application powered by
Go to file
csett86 ae306f5c5d
mac: Enable autoupdate by sign and notarize via github action (#581)
mac: Enable autoupdate by sign and notarize via github action

Signed and notarized binaries are the precondition for autoupdates on
mac. Additionally Gatekeeper on 10.15+ is happy and allows to open the
app instead of blocking it.

The notarize step is added unconditionally, as it only emits a warning if
the notarization API key is not set, but it does not break the build.

This is an upstreaming of https://github.com/csett86/jitsi-meet-electron
where it worked since March 2020.

On CI, only sign if not triggered by pull request, as these will fail (as secrets
are not available to pull request builds).

The required github secrets (signing key, cert and notarize API login, password and team id) are:

Signing

Open the Keychain Access app. Export all certificates (Developer ID Certificate) related to your app into a single file (e.g. certs.p12) and set a strong password.

Base64-encode your certificates using the following command: base64 -i certs.p12 -o encoded.txt

In the GitHub repository, go to Settings → Secrets and add the following two variables:

    mac_certs: Your base64 encoded certificates, i.e. the content of the encoded.txt file you created before
    mac_certs_password: The password you set when exporting the certificates

Notarization

Create an app-specific password for your apple id: https://support.apple.com/de-de/HT204397

In the GitHub repository, go to Settings → Secrets and add the following three variables:

    apple_id: your apple id
    apple_id_password: the just created app-specific password for your apple id
    team_id: your team short name: https://github.com/electron/electron-notarize#notes-on-your-team-short-name

Co-authored-by: Saúl Ibarra Corretgé <s@saghul.net>
2021-11-04 22:29:34 +01:00
.github mac: Enable autoupdate by sign and notarize via github action (#581) 2021-11-04 22:29:34 +01:00
app Switch to local storage and migrate old settings (#638) 2021-09-20 10:40:27 +02:00
resources fix(mas) WebRTC UDP connections 2021-05-02 17:47:26 +02:00
.eslintignore Update bundled external API 2021-03-03 16:58:05 +01:00
.eslintrc.js Updated eslint-config-jitsi 2018-06-11 08:26:57 +02:00
.flowconfig Update dependencies 2018-12-27 16:56:51 +00:00
.gitignore Configured electron-builder for app release 2018-07-05 21:00:19 +02:00
.npmrc Update package-lock.json file to npm 8 2021-11-02 12:44:47 +01:00
.nvmrc Update package-lock.json file to npm 8 2021-11-02 12:44:47 +01:00
LICENSE Initial commit 2016-12-12 14:52:17 -06:00
README.md Update package-lock.json file to npm 8 2021-11-02 12:44:47 +01:00
SECURITY.md Add SECURITY.md 2020-06-02 09:54:20 +02:00
entitlements.mac.plist Fix Camera permissions for signed Apps 2020-05-26 09:39:41 +02:00
linux-sandbox-fix.js Linux: Fix running AppImage on Debian 10+ (#231) 2021-03-31 00:23:20 +02:00
main.js Switch to local storage and migrate old settings (#638) 2021-09-20 10:40:27 +02:00
notarize.js mac: Enable autoupdate by sign and notarize via github action (#581) 2021-11-04 22:29:34 +01:00
package-lock.json mac: Enable autoupdate by sign and notarize via github action (#581) 2021-11-04 22:29:34 +01:00
package.json mac: Enable autoupdate by sign and notarize via github action (#581) 2021-11-04 22:29:34 +01:00
screenshot.png Update README 2018-08-14 09:37:08 +02:00
webpack.main.js fix security issue / update deps 2020-04-07 14:30:36 +02:00
webpack.renderer.js Update dependencies 2021-02-23 14:22:54 +01:00

README.md

Jitsi Meet Electron

Desktop application for Jitsi Meet built with Electron.

Features

  • End-to-End Encryption support (BETA)
  • Works with any Jitsi Meet deployment
  • Builtin auto-updates
  • ~Remote control~ (currently disabled due to security issues)
  • Always-On-Top window
  • Support for deeplinks such as jitsi-meet://myroom (will open myroom on the configured Jitsi instance) or jitsi-meet://jitsi.mycompany.com/myroom (will open myroom on the Jitsi instance running on jitsi.mycompany.com)

Installation

Download our latest release and you're off to the races!

Windows macOS GNU/Linux (AppImage) GNU/Linux (Deb)
Download Download Download Download

NOTE: The GNU/LInux builds are 64-bit only.

Third-Party builds

Download On Flathub

Homebrew

For macOS user, you can install the application using the following command:

brew install --cask jitsi-meet

Using it with your own Jitsi Meet installation

⚠️ The following additional HTTP headers are known to break the Electron App:

Content-Security-Policy "frame-ancestors [looks like any value is bad]";
X-Frame-Options "DENY";

A working Content Security Policy looks like that:

Content-Security-Policy "img-src 'self' 'unsafe-inline' data:; script-src 'self' 'unsafe-inline' 'wasm-eval'; style-src 'self' 'unsafe-inline'; font-src 'self'; object-src 'none'; base-uri 'self'; form-action 'none';";

Development

If you want to hack on this project, here is how you do it.

Show building instructions

Installing dependencies

Install Node.js 16 first (or if you use nvm, switch to Node.js 16 by running nvm use).

Extra dependencies for Windows
npm install --global --production windows-build-tools
npm config set msvs_version 2017
Extra dependencies for GNU/Linux

X11, PNG and zlib development packages are necessary. On Debian-like systems then can be installed as follows:

sudo apt install libx11-dev zlib1g-dev libpng-dev libxtst-dev

Install all required packages:

npm install

Starting in development mode

npm start

The debugger tools are available when running in dev mode and can be activated with keyboard shortcuts as defined here https://github.com/sindresorhus/electron-debug#features.

It can also be displayed automatically from the SHOW_DEV_TOOLS environment variable such as:

SHOW_DEV_TOOLS=true npm start

or from the application --show-dev-tools command line flag.

Building the production distribution

npm run dist

Working with jitsi-meet-electron-utils

jitsi-meet-electron-utils is a helper package which implements many features such as remote control and the always-on-top window. If new features are to be added / tested, running with a local version of these utils is very handy, here is how to do that.

By default the jitsi-meet-electron-utils is build from its git repository sources. The default dependency path in package.json is:

"jitsi-meet-electron-utils": "jitsi/jitsi-meet-electron-utils"

To work with local copy you must change the path to:

"jitsi-meet-electron-utils": "file:///Users/name/jitsi-meet-electron-utils-copy",

To build the project you must force it to take the sources as npm update will not do it.

npm install jitsi-meet-electron-utils --force

NOTE: Also check the jitsi-meet-electron-utils README to see how to configure your environment.

Known issues

Windows

A warning will show up mentioning the app is unsigned upon first install. This is expected.

macOS

On macOS Catalina a warning will be displayed on first install. The app won't open unless "open" is pressed. This dialog is only shown once. Builtin auto-updates are not yet handled in macOS due to unsigned build.

GNU/Linux

If after downloading it, you can't execute the file directly, try running chmod u+x ./jitsi-meet-x86_64.AppImage

NOTE for old GNU/Linux distributions

You might get the following error:

FATAL:nss_util.cc(632)] NSS_VersionCheck("3.26") failed. NSS >= 3.26 is required.
Please upgrade to the latest NSS, and if you still get this error, contact your
distribution maintainer.

If you do, please install NSS (example for Debian / Ubuntu):

sudo apt-get install libnss3

Translations

The json files are for all the strings inside the application and can be translated here.

New translations require the addition of a line in index.js.

Localize desktop file on linux requires the addition of a line in package.json. Please search for Comment[hu] as an example to help add your translation of the English string Jitsi Meet Desktop App for your language.

License

Apache 2. See the LICENSE file.

Community

Jitsi is built by a large community of developers, if you want to participate, please join community forum.