{"id":13406889,"url":"https://github.com/RocketChat/Rocket.Chat.Electron","last_synced_at":"2025-03-14T11:30:46.643Z","repository":{"id":34784311,"uuid":"38767563","full_name":"RocketChat/Rocket.Chat.Electron","owner":"RocketChat","description":"Official  OSX, Windows, and Linux Desktop Clients for Rocket.Chat ","archived":false,"fork":false,"pushed_at":"2024-10-28T12:00:56.000Z","size":99179,"stargazers_count":1593,"open_issues_count":224,"forks_count":704,"subscribers_count":117,"default_branch":"master","last_synced_at":"2024-10-29T15:03:22.992Z","etag":null,"topics":["chat","collaboration","desktop","electron","foss","hacktoberfest","linux","macos","mit","opensource","rocketchat","windows"],"latest_commit_sha":null,"homepage":"https://rocket.chat/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RocketChat.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-08T16:56:41.000Z","updated_at":"2024-10-28T13:45:52.000Z","dependencies_parsed_at":"2023-10-15T03:23:58.284Z","dependency_job_id":"3780d8bf-4aad-47d5-93dc-6f4b06c4b84b","html_url":"https://github.com/RocketChat/Rocket.Chat.Electron","commit_stats":{"total_commits":2097,"total_committers":173,"mean_commits":"12.121387283236995","dds":0.7849308536003815,"last_synced_commit":"945b7981ebb2cdd8ad1cb76fa5a4448282307cba"},"previous_names":[],"tags_count":322,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2FRocket.Chat.Electron","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2FRocket.Chat.Electron/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2FRocket.Chat.Electron/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RocketChat%2FRocket.Chat.Electron/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RocketChat","download_url":"https://codeload.github.com/RocketChat/Rocket.Chat.Electron/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243179897,"owners_count":20249186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chat","collaboration","desktop","electron","foss","hacktoberfest","linux","macos","mit","opensource","rocketchat","windows"],"created_at":"2024-07-30T19:02:42.166Z","updated_at":"2025-03-14T11:30:46.616Z","avatar_url":"https://github.com/RocketChat.png","language":"TypeScript","readme":"# Rocket.Chat Desktop App\n\n[![Travis CI Build Status](https://img.shields.io/travis/RocketChat/Rocket.Chat.Electron/master.svg?logo=travis)](https://travis-ci.org/RocketChat/Rocket.Chat.Electron)\n[![AppVeyor Build Status](https://img.shields.io/appveyor/ci/RocketChat/rocket-chat-electron/master.svg?logo=appveyor)](https://ci.appveyor.com/project/RocketChat/rocket-chat-electron)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3a87141c0a4442809d9a2bff455e3102)](https://www.codacy.com/app/tassoevan/Rocket.Chat.Electron?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=RocketChat/Rocket.Chat.Electron\u0026amp;utm_campaign=Badge_Grade)\n[![Project Dependencies](https://david-dm.org/RocketChat/Rocket.Chat.Electron.svg)](https://david-dm.org/RocketChat/Rocket.Chat.Electron)\n[![GitHub All Releases](https://img.shields.io/github/downloads/RocketChat/Rocket.Chat.Electron/total.svg)](https://github.com/RocketChat/Rocket.Chat.Electron/releases/latest)\n![GitHub](https://img.shields.io/github/license/RocketChat/Rocket.Chat.Electron.svg)\n\nDesktop application for [Rocket.Chat][] available for macOS, Windows and Linux\nusing [Electron][].\n\n![Rocket.Chat Desktop App](https://user-images.githubusercontent.com/2263066/91490997-c0bd0c80-e889-11ea-92c7-2cbcc3aabc98.png)\n\n---\n\n## Engage with us\n\n### Share your story\nWe’d love to hear about [your experience][] and potentially feature it on our\n[Blog][].\n\n### Subscribe for Updates\nOnce a month our marketing team releases an email update with news about product\nreleases, company related topics, events and use cases. [Sign Up!][]\n\n---\n\n## Download\n\nYou can download the latest version from the [Releases][] page.\n\n[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/rocketchat-desktop)\n\n## Install\n\nLaunch the installer and follow the instructions to install.\n\n### Windows Options\n\nOn Windows you can run a silent install by adding the `/S` flag. You can also\nadd the options below:\n\n- `/S` - Silent install\n- `/allusers` - Install for all users (requires admin)\n- `/currentuser` - Install only the for current user (default)\n- `/disableAutoUpdates` - Disable automatic updates\n\n## Development\n\n### Quick start\n\nPrerequisites:\n\n- [Git](http://git-scm.com/book/en/v2/Getting-Started-Installing-Git)\n- [Node.js](https://nodejs.org)\n- [node-gyp](https://github.com/nodejs/node-gyp#installation)\n- [Yarn](http://yarnpkg.com/) is recommended instead of npm.\n\nNow just clone and start the app:\n\n```sh\ngit clone https://github.com/RocketChat/Rocket.Chat.Electron.git\ncd Rocket.Chat.Electron\nyarn\nyarn start\n```\n\n### Structure of the project\n\nThe source is located in the `src` folder. Everything in this folder will be\nbuilt automatically when running the app with `yarn start`.\n\nThe build process compiles all stuff from the `src` folder and puts it into the\n`app` folder, so after the build has finished, your `app` folder contains the\nfull, runnable application.\n\n### TypeScript\n\nFollowing the [ongoing changes in Rocket.Chat codebase][], the app was\nrewritten in TypeScript 4 to address issues regarding maintainability.\n\n### The build pipeline\n\nThe build process is founded upon [rollup][] bundler. There are three entry files\nfor your code:\n\n- `src/main.ts`, the script running at the main Electron process, orchestrating\n  the whole application;\n\n- `src/rootWindow.ts`, the script that renders the UI of the *root window*, the\n  app's main window;\n\n- and `src/preload.ts`, which runs in a privileged mode to connect the app and\n  the webviews rendering Rocket.Chat's web client.\n\n#### Adding Node.js modules\n\nRemember to respect the split between `dependencies` and `devDependencies` in\n`package.json` file. Only modules listed in `dependencies` will be included into\ndistributable app.\n\n### Troubleshooting\n\n#### node-gyp\n\nFollow the installation instruction on [node-gyp readme][].\n\n#### Ubuntu\n\nYou will need to install the following packages:\n\n```sh\nbuild-essential\nlibevas-dev\nlibxss-dev\n```\n\n#### Fedora\n\nYou will need to install the following packages:\n\n```sh\nlibX11\nlibXScrnSaver-devel\ngcc-c++\n```\n\n#### Windows 7\n\nOn Windows 7 you may have to follow option 2 of the [node-gyp install guide]\nand install Visual Studio.\n\n### Testing\n\n#### Unit tests\n\n```sh\nyarn test\n```\n\nWe use [Jest][] testing framework with the [Jest electron runner][]. It searches\nfor all files in `src` directory that match the glob pattern\n`*.(spec|test).{js,ts,tsx}`.\n\n### Making a release\n\nTo package your app into an installer use command:\n\n```sh\nyarn release\n```\n\nIt will start the packaging process for operating system you are running this\ncommand on. Ready for distribution file will be outputted to `dist` directory.\n\nAll packaging actions are handled by [electron-builder][]. It has a lot of\n[customization options][].\n\n## Default servers\n\nThe `servers.json` file will define what servers the client will connect to and\nwill populate the server list in the sidebar. It contains a list of default\nservers which will be added the first time the user runs the app (or when all\nservers are removed from the list).\nThe file syntax is as follows:\n\n```json\n{\n  \"Demo Rocket Chat\": \"https://demo.rocket.chat\",\n  \"Open Rocket Chat\": \"https://open.rocket.chat\"\n}\n```\n\n### Pre-Release Configuration\n\nYou can bundle a `servers.json` with the install package, the file should be\nlocated in the root of the project application (same level as the\n`package.json`). If the file is found, the initial \"Connect to server\" screen\nwill be skipped and it will attempt to connect to the first server in the array\nthat has been defined and drop the user right at the login screen. Note that the\n`servers.json` will only be checked if no other servers have already been added,\neven if you uninstall the app without removing older preferences, it will not be\ntriggered again.\n\n### Post-Install Configuration\n\nIf you can't (or don't want to) bundle the file inside the app, you can create a\n`servers.json` in the user preferences folder which will overwrite the packaged\none. The file should be located in the `%APPDATA%/Rocket.Chat/` folder or the\ninstallation folder in case of an installation for all users (Windows only).\n\nFor Windows, the full paths are:\n\n- `~\\Users\\\u003cusername\u003e\\AppData\\Roaming\\Rocket.Chat\\`\n- `~\\Program Files\\Rocket.Chat\\Resources\\`\n\nOn macOS, the full path is:\n\n- `~/Users/\u003cusername\u003e/Library/Application Support/Rocket.Chat/`\n- `/Library/Preferences/Rocket.Chat/`\n\nOn Linux, the full paths are:\n\n- `/home/\u003cusername\u003e/.config/Rocket.Chat/`\n- `/opt/Rocket.Chat/resources/`\n\n### Overridden settings\n\nYou can override the user settings by creating an `overridden-settings.json` in\nthe user preferences folder.\nThe file should be located in the `%APPDATA%/Rocket.Chat/` folder or the\ninstallation folder in case of an installation for all users (Windows only).\n\nEvery setting set on the file will override the default and user settings. Then\nyou can use it for disabling the default features like auto-update and even create\na single server mode.\n\n#### The settings that can be overridden are:\n\n| Setting      | Description |\n| ----------- | ----------- |\n| `\"isReportEnabled\": true,`                   | Sets if the bugs will be reported to developers.\n| `\"isInternalVideoChatWindowEnabled\": true,`  | Sets the video calls will be opened in an internal window.\n| `\"isFlashFrameEnabled\": true,`               | Sets if the flash frame will be enabled.\n| `\"isMinimizeOnCloseEnabled\": false,`         | Sets if the app will be minimized on close.\n|`\"doCheckForUpdatesOnStartup\": true,`         | Sets if the app will check for updates on startup.\n| `\"isMenuBarEnabled\": true,`                  | Sets if the menu bar will be enabled.\n|`\"isTrayIconEnabled\": true,`                  | Enables Tray Icon, the app will be hidden to the tray on close. Overrides `\"isMinimizeOnCloseEnabled\"`\n|`\"isUpdatingEnabled\": true,`                  | Sets if the app can be updated by the user.\n|`\"isAddNewServersEnabled\": true,`              | Sets if the user can add new servers.\n\n##### Single server mode\nIf the setting `\"isAddNewServersEnabled\": false` is set, the user will not be able to add new servers.\nThe buttons and shortcuts will be disabled. Then you will have to add the server to the `servers.json` file.\nWith this, you can create a single server mode or just don't let the user to add new servers by his own.\n\n##### Example configuration\n`overridden-settings.json` file:\n\n    {\n\t   \"isTrayIconEnabled\": false,\n\t   \"isMinimizeOnCloseEnabled\": false\n    }\nWhen `isTrayIconEnabled` is enabled, the app will be hidden on close.\nWhen `isMinimizeOnCloseEnabled` is enabled, the app will be minimized on close.\nWhen both are disabled, the app will quit on close.\n## License\n\nReleased under the MIT license.\n\n[Rocket.Chat]: https://rocket.chat\n\n[Electron]: https://electronjs.org/\n\n[your experience]: https://survey.zohopublic.com/zs/e4BUFG\n\n[Blog]: https://rocket.chat/case-studies/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=community\n\n[Sign Up!]: https://rocket.chat/newsletter/?utm_source=github\u0026utm_medium=readme\u0026utm_campaign=community\n\n[Releases]: https://github.com/RocketChat/Rocket.Chat.Electron/releases/latest\n\n[ongoing changes in Rocket.Chat codebase]: https://forums.rocket.chat/t/moving-away-from-meteor-and-beyond/3270\n\n[rollup]: https://github.com/rollup/rollup\n\n[node-gyp readme]: https://github.com/nodejs/node-gyp#installation\n\n[Jest]: https://jestjs.io/\n\n[Jest electron runner]: https://github.com/facebook-atom/jest-electron-runner\n\n[electron-builder]: https://github.com/electron-userland/electron-builder\n\n[customization options]: https://github.com/electron-userland/electron-builder/wiki/Options\n\n[node-gyp install guide]: https://github.com/nodejs/node-gyp#installation\n","funding_links":[],"categories":["TypeScript","Applications"],"sub_categories":["Chat","💬 Chat (19)"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRocketChat%2FRocket.Chat.Electron","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FRocketChat%2FRocket.Chat.Electron","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FRocketChat%2FRocket.Chat.Electron/lists"}