• Stars
    star
    1,557
  • Rank 28,909 (Top 0.6 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created almost 9 years ago
  • Updated about 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Official OSX, Windows, and Linux Desktop Clients for Rocket.Chat

Rocket.Chat Desktop App

Travis CI Build Status AppVeyor Build Status Codacy Badge Project Dependencies GitHub All Releases GitHub

Desktop application for Rocket.Chat available for macOS, Windows and Linux using Electron.

Rocket.Chat Desktop App


Engage with us

Share your story

We’d love to hear about your experience and potentially feature it on our Blog.

Subscribe for Updates

Once a month our marketing team releases an email update with news about product releases, company related topics, events and use cases. Sign Up!


Download

You can download the latest version from the Releases page.

Get it from the Snap Store

Install

Launch the installer and follow the instructions to install.

Windows Options

On Windows you can run a silent install by adding the /S flag. You can also add the options below:

  • /S - Silent install
  • /allusers - Install for all users (requires admin)
  • /currentuser - Install only the for current user (default)
  • /disableAutoUpdates - Disable automatic updates

Development

Quick start

Prerequisites:

Now just clone and start the app:

git clone https://github.com/RocketChat/Rocket.Chat.Electron.git
cd Rocket.Chat.Electron
yarn
yarn start

Structure of the project

The source is located in the src folder. Everything in this folder will be built automatically when running the app with yarn start.

The build process compiles all stuff from the src folder and puts it into the app folder, so after the build has finished, your app folder contains the full, runnable application.

TypeScript

Following the ongoing changes in Rocket.Chat codebase, the app was rewritten in TypeScript 4 to address issues regarding maintainability.

The build pipeline

The build process is founded upon rollup bundler. There are three entry files for your code:

  • src/main.ts, the script running at the main Electron process, orchestrating the whole application;

  • src/rootWindow.ts, the script that renders the UI of the root window, the app's main window;

  • and src/preload.ts, which runs in a privileged mode to connect the app and the webviews rendering Rocket.Chat's web client.

Adding Node.js modules

Remember to respect the split between dependencies and devDependencies in package.json file. Only modules listed in dependencies will be included into distributable app.

Troubleshooting

node-gyp

Follow the installation instruction on node-gyp readme.

Ubuntu

You will need to install the following packages:

build-essential
libevas-dev
libxss-dev

Fedora

You will need to install the following packages:

libX11
libXScrnSaver-devel
gcc-c++

Windows 7

On Windows 7 you may have to follow option 2 of the node-gyp install guide and install Visual Studio.

Testing

Unit tests

yarn test

We use Jest testing framework with the Jest electron runner. It searches for all files in src directory that match the glob pattern *.(spec|test).{js,ts,tsx}.

Making a release

To package your app into an installer use command:

yarn release

It will start the packaging process for operating system you are running this command on. Ready for distribution file will be outputted to dist directory.

All packaging actions are handled by electron-builder. It has a lot of customization options.

Default servers

The servers.json file will define what servers the client will connect to and will populate the server list in the sidebar. It contains a list of default servers which will be added the first time the user runs the app (or when all servers are removed from the list). The file syntax is as follows:

{
  "Demo Rocket Chat": "https://demo.rocket.chat",
  "Open Rocket Chat": "https://open.rocket.chat"
}

Pre-Release Configuration

You can bundle a servers.json with the install package, the file should be located in the root of the project application (same level as the package.json). If the file is found, the initial "Connect to server" screen will be skipped and it will attempt to connect to the first server in the array that has been defined and drop the user right at the login screen. Note that the servers.json will only be checked if no other servers have already been added, even if you uninstall the app without removing older preferences, it will not be triggered again.

Post-Install Configuration

If you can't (or don't want to) bundle the file inside the app, you can create a servers.json in the user preferences folder which will overwrite the packaged one. The file should be located in the %APPDATA%/Rocket.Chat/ folder or the installation folder in case of an installation for all users (Windows only).

For Windows, the full paths are:

  • ~\Users\<username>\AppData\Roaming\Rocket.Chat\
  • ~\Program Files\Rocket.Chat\Resources\

On macOS, the full path is:

  • ~/Users/<username>/Library/Application Support/Rocket.Chat/
  • /Library/Preferences/Rocket.Chat/

On Linux, the full paths are:

  • /home/<username>/.config/Rocket.Chat/
  • /opt/Rocket.Chat/resources/

Overridden settings

You can override the user settings by creating an overridden-settings.json in the user preferences folder. The file should be located in the %APPDATA%/Rocket.Chat/ folder or the installation folder in case of an installation for all users (Windows only).

Every setting set on the file will override the default and user settings. Then you can use it for disabling the default features like auto-update and even create a single server mode.

The settings that can be overridden are:

Setting Description
"isReportEnabled": true, Sets if the bugs will be reported to developers.
"isInternalVideoChatWindowEnabled": true, Sets the video calls will be opened in an internal window.
"isFlashFrameEnabled": true, Sets if the flash frame will be enabled.
"isMinimizeOnCloseEnabled": false, Sets if the app will be minimized on close.
"doCheckForUpdatesOnStartup": true, Sets if the app will check for updates on startup.
"isMenuBarEnabled": true, Sets if the menu bar will be enabled.
"isTrayIconEnabled": true, Enables Tray Icon, the app will be hidden to the tray on close. Overrides "isMinimizeOnCloseEnabled"
"isUpdatingEnabled": true, Sets if the app can be updated by the user.
"isAddNewServersEnabled": true, Sets if the user can add new servers.
Single server mode

If the setting "isAddNewServersEnabled": false is set, the user will not be able to add new servers. The buttons and shortcuts will be disabled. Then you will have to add the server to the servers.json file. With this, you can create a single server mode or just don't let the user to add new servers by his own.

Example configuration

overridden-settings.json file:

{
   "isTrayIconEnabled": false,
   "isMinimizeOnCloseEnabled": false
}

When isTrayIconEnabled is enabled, the app will be hidden on close. When isMinimizeOnCloseEnabled is enabled, the app will be minimized on close. When both are disabled, the app will quit on close.

License

Released under the MIT license.

More Repositories

1

Rocket.Chat

The communications platform that puts data protection first.
TypeScript
38,542
star
2

Rocket.Chat.ReactNative

Rocket.Chat mobile clients
TypeScript
1,851
star
3

Rocket.Chat.iOS

Legacy mobile Rocket.Chat client in Swift for iOS
Swift
1,031
star
4

Rocket.Chat.Android

Legacy mobile Rocket.Chat client in Kotlin for Android
Kotlin
875
star
5

hubot-rocketchat

Rocket.Chat Hubot adapter
JavaScript
541
star
6

docs-old

Rocket.Chat's user documentation.
TypeScript
338
star
7

Rocket.Chat.RaspberryPi

Run a private social network on your Pi for iPhone and Android devices !
Shell
323
star
8

Docker.Official.Image

Docker hub - community managed image
Dockerfile
256
star
9

Rocket.Chat.Livechat

New Livechat client written in Preact
JavaScript
247
star
10

hubot-natural

Natural Language Processing Chatbot for RocketChat
CoffeeScript
144
star
11

Rocket.Chat.js.SDK

Utility for apps and bots to interact with Rocket.Chat via DDP and/or API
TypeScript
132
star
12

Rocket.Chat.Ops

Integrate your apps to Rocket.Chat ! Powered by Hubot.
JavaScript
123
star
13

Rocket.Chat.Cordova

Rocket.Chat Cross-Platform Mobile Application via Cordova (DEPRECATED)
JavaScript
104
star
14

fuselage

React port of Rocket.Chat's design system, Fuselage
TypeScript
103
star
15

EmbeddedChat

An easy to use full-stack component (ReactJS) embedding Rocket.Chat into your webapp
JavaScript
101
star
16

Rocket.Chat.Apps-engine

The Rocket.Chat Apps engine and definitions.
TypeScript
99
star
17

Rocket.Chat.Ansible

Deploy Rocket.Chat with Ansible!
Jinja
93
star
18

meteor-streamer

2 way communication over DDP with better performance.
JavaScript
83
star
19

Rocket.Chat.PWA

Bandwidth efficient, simplified client built with Angular.
TypeScript
78
star
20

Rocket.Chat.Kotlin.SDK

Rocket.Chat's Kotlin SDK (REST & WebSocket abstractions)
Kotlin
63
star
21

Rocket.Chat.Go.SDK

Go SDK for REST API and Realtime api
Go
55
star
22

Rocket.Chat.Federation

Chat servers. United.
Shell
54
star
23

Rocket.Chat.Apps-cli

The CLI for interacting with Rocket.Chat Apps
TypeScript
43
star
24

Rocket.Chat.OpenAI.Completions.App

Rocket.Chat OpenAI ChatGPT Integration App
TypeScript
42
star
25

RC4Community

Full-stack components for building, engaging, and growing your massive on-line community
JavaScript
41
star
26

Rocket.Chat.PWA.React

React Implementation of Rocket.Chat.PWA
JavaScript
37
star
27

Opensource-Contribution-Leaderboard

Open Source project contributors tracking leaderboard built with ❀️ in NodeJS πŸ˜‰
JavaScript
34
star
28

WordPressPlugin

Rocket.Chat.Livechat plug-in for WordPress
PHP
34
star
29

hubot-rocketchat-boilerplate

An example Hubot demonstrating usage of the Rocket.Chat adaptor.
JavaScript
33
star
30

helm-charts

Repository for RocketChat helm charts
Smarty
32
star
31

install.sh

command line tool to help you install and configure a RocketChat server in a Linux host
Shell
32
star
32

Apps.Github22

The ultimate AI-powered app extending Rocket.Chat for global developers collaborating on Github (2024 and beyond)
TypeScript
31
star
33

rocketchat-oauth2-server

OAuth 2 Server package
CoffeeScript
31
star
34

rocketchat_nextcloud

App that allows Rocket Chat to live inside NextCloud and become seamless for the NextCloud Users
PHP
29
star
35

botpress-channel-rocketchat

Botpress module channel for Rocket.Chat
JavaScript
28
star
36

Rocket.Chat.Java.SDK

[DEPRECATED, NOT MAINTAINED] Java/Android SDK for Rocket.Chat
Java
28
star
37

Rocket.Chat.Metrics

Monitoring setup for Rocket.Chat servers
26
star
38

RC4Conferences

A set of scalable components for communities to build, manage, and run virtual conferences of any size.
JavaScript
24
star
39

handbook

The Rocket.Chat team handbook is the central repository for how we run the company.
TypeScript
24
star
40

iframe-auth-example

iFrame auth example app
JavaScript
22
star
41

Rocket.Chat.Hubot

The hubot-rocketchat sample implementation used on our demo.
CoffeeScript
22
star
42

feature-requests

This repository is used to track Rocket.Chat feature requests and discussions. Click here to open a new feature request.
21
star
43

Rocket.Chat.ScreenShare.Extensions

JavaScript
20
star
44

developer-docs

These developer guides and APIs help you start developing on Rocket.Chat quickly.
TypeScript
19
star
45

Rocket.Chat.Artwork

Rocket.Chat Artwork
HTML
19
star
46

alexa-rocketchat

Innovating incredible new user experiences in the Alexa ecosystem - powered by Rocket.Chat
JavaScript
18
star
47

Rocket.Chat.GitHub.Action.Notification

Rocket.Chat Notification for GitHub Actions πŸ”” πŸš€
TypeScript
18
star
48

google-summer-of-code

Rocket.Chat as mentoring organization for Google Summer of Code
18
star
49

Rocket.Chat.Embedded.arm64

An open source journey bringing the latest Rocket.Chat releases to the arm64 universe
Shell
18
star
50

server-snap

Rocket.Chat server snap
Shell
17
star
51

Apps.Rasa

Integration between Rocket.Chat and the RASA Chatbot platform
TypeScript
17
star
52

Apps.Whiteboard

Whiteboard Integration App for Rocket.Chat
TypeScript
17
star
53

Apps.Google.Calendar

Rocket.Chat app to integrate Google Calendar into your chat
TypeScript
15
star
54

Rocket.Chat.Integrations

Rocket.Chat Integrations
JavaScript
14
star
55

Chat.Code.Ship

docker-compose file to start a full chatops stack, with gitlab, rocketchat and hubot
CoffeeScript
14
star
56

Apps.Jitsi

Rocket.Chat App for Jitsi
TypeScript
14
star
57

filestore-migrator

Go
13
star
58

koko

Rocket.Chat App Koko
TypeScript
13
star
59

rn-user-defaults

Use UserDefaults (iOS) and SharedPreferences (AndroidOS) with React Native, this can help you to share credentials between apps or between app and extensions on iOS.
Java
13
star
60

RocketChatViewController

RocketChatViewController Messages Library
Swift
13
star
61

docs

Rocket.Chat's user documentation.
JavaScript
13
star
62

Rocket.Chat.Flutter.SDK

Easily integrate Rocket.Chat into all your Flutter projects
C++
12
star
63

hubot-freddie

hubot bridge between Rocket.Chat and synapse (home) server from matrix.org
JavaScript
11
star
64

Rocket.Chat.PCL

Portable Class Libraries - Xamarin implementation of the Rocket.Chat Real-Time API
C#
10
star
65

Android-DDP

Java
10
star
66

Rocket.Chat.Apps-ts-definition

Deprecated, please use the Apps Engine.
TypeScript
10
star
67

Rocket.Chat.Demo.App

The best Rocket.Chat Apps Engine Demo out there.
TypeScript
10
star
68

contributors-program

This repository contains comprehensive information about the Rocket.Chat annual contributors program.
10
star
69

GSoC-Community-Hub

Ready-to-run hub to engage and extend your Google Summer of Code Community
JavaScript
10
star
70

botkit-starter-rocketchat

A starter kit for building a custom Rocket.Chat bot with Botkit Studio
JavaScript
10
star
71

Apps.Dialogflow

Integration between Rocket.Chat and the Dialogflow Chatbot platform
TypeScript
9
star
72

Rocket.Chat.Android.SDK

Rocket.Chat's Android Native SDK - DEPRECATED
Java
9
star
73

botkit-rocketchat-connector

A Botkit platform connector for Rocket.Chat
JavaScript
9
star
74

rocketchat-tui

Go
9
star
75

rocket.chat.load.tester

TypeScript
9
star
76

rocketchat-botpress-lab-bot

A bot that integrates RocketChat and Botpress
JavaScript
9
star
77

Tauri.Desktop.App

TypeScript
8
star
78

hubot-rocketchat-gitlab

JavaScript
8
star
79

Apps.Figma

[GSoC Project] Rocket.Chat App that connects with Figma
TypeScript
8
star
80

Apps.ClickUp

This Repository is for the GSOC 2022 ClickUp app integration for Rocket.Chat
TypeScript
8
star
81

rasa-kick-starter

Rocket.Chat connector kick starter for Rasa.AI
Python
8
star
82

RCMarkdownParser

Markdown parser for Rocket.Chat.iOS (a modified version of @LyokoTech/LTMarkdownParser)
Swift
8
star
83

TenableAgent-Daemonset

This repository contains Kubernetes resource files for deploying the Tenable agent as a DaemonSet in a Kubernetes cluster. The Tenable agent runs on all nodes in the cluster and provides visibility into the security posture of your cluster.
Dockerfile
8
star
84

botpress-kick-starter

Simple bot using botpress
JavaScript
8
star
85

Apps.teams.bridge

Connecting collaborators across Rocket.Chat and Microsoft Teams
TypeScript
7
star
86

Docker.Base.Image

Dockerfile
7
star
87

Rocket.Chat.Embedded.armhf

Sustaining 32 bit ARMHF snap and docker for Raspberry Pi until EOL
Shell
6
star
88

Rocket.Chat.Houston

Rocket.Chat internal command line tools for releases
JavaScript
6
star
89

hubot-gitsy

Gitlab BOT for Rocket.Chat built on Hubot v3
JavaScript
6
star
90

botswana-snap

BOTSwana : The Kalahari of bots. Run any bot on any chat, painlessly!
Shell
5
star
91

Apps.RocketChat.Tester

An app that provides endpoints to test Apps integration to Rocket.Chat
TypeScript
5
star
92

eslint-config-rocketchat

Rocket.Chat Style Guide
JavaScript
5
star
93

puppet-rocketchat

Puppet module that install Rocket.Chat
Ruby
5
star
94

tsmatrixserverlib

federation support module : low level common methods
TypeScript
5
star
95

Apps.Cloudflare

TypeScript
5
star
96

slack-compatibility-for-apps

Initialize your Rocket.Chat App with bindings that makes it compatible your Slack implementation
TypeScript
5
star
97

google-action-rocketchat

Innovating incredible new voice based user experiences - powered by Rocket.Chat
JavaScript
5
star
98

Apps.GitHub

Integrates GitHub with your Rocket.Chat Server
TypeScript
5
star
99

airlock

Kubernetes operator that manages access and secrets for MongoDB clusters
Go
5
star
100

Rocket.UI

ELM + Node.js + Webpack Frontend for Rocket.Platform
JavaScript
4
star