mirror of
https://github.com/CringeStudios/element-desktop.git
synced 2025-01-18 15:34:59 +01:00
95 lines
3.1 KiB
Plaintext
95 lines
3.1 KiB
Plaintext
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:
|
|
```
|
|
# Run this once to make the docker image
|
|
yarn run docker:setup
|
|
|
|
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.
|