A glossy Matrix collaboration client for desktop.
Go to file
2020-02-17 09:58:55 +00:00
.buildkite Files I've added 2019-12-06 18:20:31 +00:00
build Port 51f2afb7b7 from riot-web 2020-02-17 09:58:55 +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 Fix the remainder of the cookie links 2020-02-03 16:25:50 +00:00
scripts Typo 2020-02-04 22:19:28 +00:00
src ElectronPlatform: Add the indexSize method. 2020-02-03 16:23:42 +00:00
.eslintrc.js Fix the linting errors 2019-12-10 18:10:15 +00:00
.gitignore Slightly better docker support 2019-12-13 12:17:54 +00:00
LICENSE Initial commit 2019-12-06 13:07:37 +00:00
package.json Port 2c0968e40e from riot-web 2020-02-17 09:57:48 +00:00
README Merge pull request #17 from vector-im/dbkr/moredocker 2019-12-13 17:18:16 +00:00
yarn.lock Pack the webapp into an asar 2019-12-10 15:54:17 +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.