{"id":13512472,"url":"https://github.com/getstation/desktop-app","last_synced_at":"2025-05-14T11:09:59.708Z","repository":{"id":37498605,"uuid":"385179469","full_name":"getstation/desktop-app","owner":"getstation","description":"One app to rule them all!","archived":false,"fork":false,"pushed_at":"2025-03-17T09:40:20.000Z","size":30823,"stargazers_count":1572,"open_issues_count":99,"forks_count":214,"subscribers_count":30,"default_branch":"main","last_synced_at":"2025-04-12T07:00:03.250Z","etag":null,"topics":["browser","electron","saas"],"latest_commit_sha":null,"homepage":"https://getstation.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/getstation.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-07-12T08:36:14.000Z","updated_at":"2025-04-05T07:18:59.000Z","dependencies_parsed_at":"2023-09-28T18:17:31.186Z","dependency_job_id":"55466b2a-73d9-44bf-ae0e-86d4a87136ff","html_url":"https://github.com/getstation/desktop-app","commit_stats":{"total_commits":383,"total_committers":16,"mean_commits":23.9375,"dds":"0.47519582245430814","last_synced_commit":"aaf367b85ac0a3bf0fc116c7264e08c0106955ae"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getstation%2Fdesktop-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getstation%2Fdesktop-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getstation%2Fdesktop-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/getstation%2Fdesktop-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/getstation","download_url":"https://codeload.github.com/getstation/desktop-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129489,"owners_count":22019628,"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":["browser","electron","saas"],"created_at":"2024-08-01T03:01:53.369Z","updated_at":"2025-05-14T11:09:59.701Z","avatar_url":"https://github.com/getstation.png","language":"TypeScript","readme":"# Station Desktop Application\n\n## Table of Contents\n- [Installation](#installation)\n  - [Requirements](#requirements)\n  - [MacOS](#macos)\n  - [Windows](#windows)\n  - [Ubuntu](#ubuntu)\n  - [CentOS / Amazon Linux 2](#centos-or-amazon-linux-2)\n- [Run](#run)\n- [DevTools](#devtools)\n  - [Toggle Chrome DevTools](#toggle-chrome-devtools)\n  - [Library DevTools](#library-devtools)\n    - [Redux DevTools](#redux-devtools)\n  - [Main proces debugging](#main-proces-debugging)\n  - [Debugging in VSCode](#debugging-in-vscode)\n- [Useful env variables for dev](#useful-env-variables-for-dev)\n- [Migrations](#migrations)\n  - [Inspect DB](#inspect-db)\n- [Packaging](#packaging)\n  - [Code signing](#code-signing)\n- [Development tools](#development-tools)\n- [Releases](#releases)\n- [Select documentation topics](#docs)\n\n## Installation\n\n### Requirements\n* node \u003e= `18.x`\n* yarn \u003e= `1.19.x`\n\n```bash\n$ git clone https://github.com/getstation/desktop-app.git\n$ cd desktop-app\n$ yarn\n```\n\n### MacOS\n\nNo additional requirements.\n\n### Windows\n\nInstall `node-gyp` dependencies\n\n```bash\n$ npm --add-python-to-path install --global --production windows-build-tools\n```\n\n### Ubuntu\n\n```bash\n$ sudo apt install graphicsmagick icnsutils libxtst-dev libx11-dev libxrender-dev libxkbfile-dev libgconf-2-4\n```\n\n### CentOS or Amazon Linux 2\n\nCentOS 9 is required.\n\n```bash\n$ sudo yum install clang dbus-devel gtk3-devel libnotify-devel xorg-x11-server-utils libcap-devel \\\n                   cups-devel libXtst-devel alsa-lib-devel libXrandr-devel nss-devel\n```\n\n\u003e See [dotenv](#dotenv) for further configuration.\n\n## Run\n```bash\nyarn run dev\n```\n\n### Natives modules errors\n\nIf for any reason you have some error with binding module you could run `npm run rebuild-all-native` to check if you still have the problem\n\n## DevTools\n\n### Toggle Chrome DevTools\n\n- MacOS: \u003ckbd\u003eCmd\u003c/kbd\u003e \u003ckbd\u003eAlt\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e or \u003ckbd\u003eF12\u003c/kbd\u003e\n- Linux: \u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eShift\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e or \u003ckbd\u003eF12\u003c/kbd\u003e\n- Windows: \u003ckbd\u003eCtrl\u003c/kbd\u003e \u003ckbd\u003eShift\u003c/kbd\u003e \u003ckbd\u003eI\u003c/kbd\u003e or \u003ckbd\u003eF12\u003c/kbd\u003e\n\n*See [electron-debug](https://github.com/sindresorhus/electron-debug) for more information.*\n\n### Library DevTools\n- [React DevTools](https://github.com/facebook/react-devtools) is available in Chrome DevTools\n- [Apollo Client DevTools](https://github.com/apollographql/apollo-client-devtools) is available in Chrome DevTools\n- [Redux DevTools](https://github.com/zalmoxisus/redux-devtools-extension) see below\n\n#### Redux Devtools\nIn order to see redux transactions and state,\ninstall [Redux DevTools](https://github.com/gaearon/redux-devtools)\n(or the [browser extension](https://github.com/zalmoxisus/redux-devtools-extension))\nand click on `Open Remote DevTools`. Make sure `Use (custom) local server` on `localhost:8000` is activated in the settings.\n\n### Main proces debugging\nTo inspect the main process, connect Chrome by visiting `chrome://inspect` and selecting to inspect the launched Electron app.\n\n## Useful env variables for dev\n- `STATION_NO_WEBVIEWS` if exists, webviews are not loaded\n- `STATION_REDUX_LOGGER` if exists, will enable redux-logger in renderer\n- `STATION_AUTOUPDATER_MOCK_SCENARIO` set the scenario for the mock of `AutoUpdater` module:\n  - `available` (default), mock an update is available and downloaded\n  - `not-available` mock an update is not available\n- `OVERRIDE_USER_DATA_PATH` override `userData` path (example: `OVERRIDE_USER_DATA_PATH=\"Station Canary\" yarn run dev`)\n- `STATION_CHECK_INACTIVE_TAB_EVERY_MS` override the interval period between each check for inactive tabs\n- `STATION_WAIT_MS_BEFORE_KILL_TAB` override the time to wait before considering a tab is inactive and killing it\n- `STATION_QUICK_TRANSITIONS` all transitions are quick (used to test changing colors)\n- `STATION_REACT_PERF` add the react-addons-perf for react perf debugging\n- `STATION_NO_CHECK_FOR_UPDATE` if exists, the app will not check for update\n- `DEBUG=service:*` Will print debug info of Service framework on all processes\n- `STATION_SHOW_REQUIRE_TIME` if exists, the app will display the execution time of requiring modules upon quit\n  - ~~Main: timers shown upon quit~~ (disabled for now)\n  - ~~Renderer: to show timers, execute this in a console: `require('@getstation/time-require').default()`~~  (disabled for now)\n- `STATION_DISABLE_ECX` if exists, `electron-chrome-extension` will not be loaded\n\n## Migrations\n\nDatabases migrations are using [umzug](https://github.com/sequelize/umzug) and [umzug-cli](https://github.com/marcbachmann/umzug-cli).\n\nTo test migrations manually:\n```bash\n// Apply migrations\n$ yarn run database migrations up\n// Revert last applied migration\n$ yarn run database migrations down\n```\n\n### Inspect DB\nInstall [TablePlus](https://tableplus.io/) and create a new SQLite connection with the database file located at `~/Library/Application\\ Support/Station\\ Dev/db/station.db`\n\n## Manual Packaging\n\nTo package apps for the local platform:\n\n```bash\n$ yarn run build\n```\n\n#### Code signing\nThe application will be automatically signed by the CI on the `release` branch\n\n## Development tools\n\nHere is a list of tools used during the development process. Consider adding the corresponding plugins to your IDE.\n\n- [Editorconfig](http://editorconfig.org/#download)\n- [ESLint](http://eslint.org/docs/user-guide/integrations#editors)\n- [TSLint](https://github.com/palantir/tslint)\n\nWebStorm and VSCode should be correctly configured by default.\n\n## Workspace management (TODO)\nThis repository should be used as a proper monorepo. Packages that should be impacted:\n- appstore (already in this repo but not handled by any monorepo tool yet)\n- @getstation/sdk\n- @getstation/theme\n\n## Releases\n\n1. [Draft a new release](https://github.com/getstation/desktop-app/releases/new) tagged with the desired version\n2. Apply your changes on [`release`](https://github.com/getstation/desktop-app/tree/release) branch\n3. On `release` branch, bump the version with `yarn version` to the corresponding version number\n4. Let the CI build artifacts for each platform\n5. Publish the draft\n\nNote: you can remove artifacts and push changes over the same draft\n\n## Docs\n\n- [Services](packages/app/src/services/README.md)\n- [Score Engine](packages/app/src/lib/score-engine/README.md)\n- [Bang Lifecyle](packages/app/src/bang/README.md)\n- [Persistence](docs/persistence.md)\n- [Webpack](docs/webpack.md)\n- [Test Auto-Update](packages/app/test/auto-update/how_to_test.md)\n- [Local GraphQL](packages/app/src/graphql/README.md)\n","funding_links":[],"categories":["TypeScript","browser","Browsers"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetstation%2Fdesktop-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgetstation%2Fdesktop-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgetstation%2Fdesktop-app/lists"}