A glossy Matrix collaboration client for desktop.
Go to file
David Baker 19ee3d4aff Add some checks for the tools we need
May not be exhastive, but useful on Windows where you need to
remember to install stuff.
2020-02-17 15:44:06 +00:00
.buildkite Files I've added 2019-12-06 18:20:31 +00:00
build Initial copy of files from the riot-web repo 2019-12-06 18:17:34 +00:00
hak/matrix-seshat Add some checks for the tools we need 2020-02-17 15:44:06 +00:00
pkg More appropriate section 2019-12-13 15:48:56 +00:00
res/img Initial copy of files from the riot-web repo 2019-12-06 18:17:34 +00:00
riot.im Working seshat building on Windows 2020-02-15 16:52:41 +00:00
scripts Add some checks for the tools we need 2020-02-17 15:44:06 +00:00
src ElectronPlatform: Add the indexSize method. 2020-02-03 16:23:42 +00:00
.eslintrc.js Lint scripts dir 2020-02-17 14:49:26 +00:00
.gitignore Initial commit of native dependency building. 2020-02-13 23:52:16 +00:00
LICENSE Initial commit 2019-12-06 13:07:37 +00:00
package.json Lint hak scripts 2020-02-17 14:52:24 +00:00
README Merge pull request #17 from vector-im/dbkr/moredocker 2019-12-13 17:18:16 +00:00
yarn.lock Initial commit of native dependency building. 2020-02-13 23:52:16 +00:00

Riot Desktop
============

This is *not* where the source for Riot desktop lives... yet. As of now,
it still lives in the main riot-web repo: https://github.com/vector-im/riot-web

This is an experimental split-out of the Riot desktop code from the main repo.

Fetching Riot
=============
Since this package is just the Electron wrapper for Riot, it doesn't contain any of the Riot code,
so the first step is to get a working copy of Riot. There are a few ways of doing this:

```
# Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version
# fetched will be the same as the local riot-desktop package.
# We're explicitly asking for no config, so the package Riot will have no config.json.
yarn run fetch --noverify --cfgdir ''
```

...or if you'd like to use GPG to verify the downloaded package:
```
# Fetch the Riot public key from the riot.im web server over a secure connection and import
# it into your local GPG keychain (you'll need GPG installed). You only need to to do this
# once.
yarn run fetch --importkey
# Fetch the package and verify the signature
yarn run fetch --cfgdir ''
```

...or either of the above, but fetching a specific version of Riot:
```
# Fetch the prebuilt release Riot package from the riot.im GitHub releases page. The version
# fetched will be the same as the local riot-desktop package.
yarn run fetch --noverify --cfgdir '' v1.5.6
```

If you only want to run the app locally and don't need to build packages, you can
provide the `webapp` directory directly:
```
# Assuming you've checked out and built a copy of riot-web in ../riot-web
ln -s ../riot-web/webapp ./
```

[TODO: add support for fetching develop builds, arbitrary URLs and arbitrary paths]


Building
========
Now you have a copy of Riot, you're ready to build packages. If you'd just like to
run Riot locally, skip to the next section.

```
yarn run build
```
This will do a couple of things:
 * Run the `setversion` script to set the local package version to match whatever
   version of Riot you installed above.
 * Run electron-builder to build a package. The package built will match the operating system
   you're running the build process on.

You can also build using docker, which will always produce the linux package:
```
yarn run docker:install
yarn run docker:build
```

After running, the packages should be in `dist/`.

Starting
========
If you'd just like to run the electron app locally for development:
```
# Install electron - we don't normally need electron itself as it's provided
# by electron-builder when building packages
yarn add electron
yarn start
```

Config
======
If you'd like the packaged Riot to have a configuration file, you can create a
config directory and place `config.json` in there, then specify this directory
with the `--cfgdir` option to `yarn run fetch`, eg:
```
mkdir myconfig
cp /path/to/my/config.json myconfig/
yarn run fetch --cfgdir myconfig
```
The config dir for the official Riot.im app is in `riot.im`. If you use this,
your app will auto-update itself using builds from Riot.im.