2020-04-30 21:23:44 +02:00
< img width = "40%" src = "https://miro.medium.com/max/5198/1*bTVuL2THG_0mpwmE-n7Ezg.png" / >
2017-01-16 20:06:53 +01:00
2020-04-30 21:23:44 +02:00
# LBRY App - https://lbry.tv
2020-06-29 19:48:28 +02:00
2020-04-30 21:23:44 +02:00
This repo contains the UI code that powers the official LBRY desktop app, as well as lbry.tv. The LBRY app is a graphical browser for the decentralized content marketplace provided by the
[LBRY ](https://lbry.com ) protocol. It is essentially the
[lbry daemon ](https://github.com/lbryio/lbry ) bundled with a UI using
[Electron ](https://electron.atom.io/ ).
2019-10-18 00:15:01 +02:00
2020-04-30 21:23:44 +02:00
< a href = "https://github.com/lbryio/lbry-desktop/blob/master/LICENSE" title = "MIT licensed" >
< img alt = "npm" src = "https://img.shields.io/dub/l/vibe-d.svg?style=flat" >
< / a >
< a href = "https://GitHub.com/lbryio/lbry-desktop/releases/" title = "GitHub release" >
< img src = "https://img.shields.io/github/release/lbryio/lbry-desktop.svg" / >
< / a >
< a href = "https://travis-ci.org/lbryio/lbry-desktop" >
< img src = "https://travis-ci.org/lbryio/lbry-desktop.svg?branch=master" alt = "Build Status" / >
< / a >
< a href = "https://chat.lbry.com" >
< img alt = "GitHub contributors" src = "https://img.shields.io/discord/362322208485277697.svg?logo=discord" alt = "chat on Discord" >
< / a >
2019-10-18 00:15:01 +02:00
2020-04-30 21:23:44 +02:00
< h2 >
2019-10-18 00:15:01 +02:00
< a href = "https://forthebadge.com" title = "forthebadge" >
< img alt = "forthebadge" src = "https://forthebadge.com/images/badges/60-percent-of-the-time-works-every-time.svg" >
< / a >
2020-06-29 19:48:28 +02:00
< a href = "https://forthebadge.com" title = "forthebadge" >
< img alt = "forthebadge" src = "https://forthebadge.com/images/badges/approved-by-veridian-dynamics.svg" >
< / a >
2020-04-30 21:23:44 +02:00
< / h2 >
2020-11-30 18:39:06 +01:00
![App GIF ](https://spee.ch/ba/lbry-joule.gif )
2019-10-07 05:57:37 +02:00
## Table of Contents
1. [Install ](#install )
2. [Usage ](#usage )
3. [Running from Source ](#running-from-source )
4. [Contributing ](#contributing )
5. [License ](#license )
6. [Security ](#security )
7. [Contact ](#contact )
2019-10-09 03:55:32 +02:00
## Install
2020-01-22 22:14:16 +01:00
2019-10-15 19:25:28 +02:00
[![Windows ](https://img.shields.io/badge/Windows-Install-blue )](https://lbry.com/get/lbry.exe)
2019-10-15 17:20:43 +02:00
[![Linux ](https://img.shields.io/badge/Linux-Install-blue )](https://lbry.com/get/lbry.deb)
2019-10-15 19:25:28 +02:00
[![MacOS ](https://img.shields.io/badge/MacOS-Install-blue )](https://lbry.com/get/lbry.dmg)
2019-10-15 17:21:48 +02:00
2018-12-11 22:24:44 +01:00
We provide installers for Windows, macOS (v10.12.4, Sierra, or greater), and Debian-based Linux. See community maintained builds section for alternative Linux installations.
2017-03-13 16:37:49 +01:00
2019-03-20 22:43:00 +01:00
| | Windows | macOS | Linux |
| --------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- |
| Latest Stable Release | [Download ](https://lbry.com/get/lbry.exe ) | [Download ](https://lbry.com/get/lbry.dmg ) | [Download ](https://lbry.com/get/lbry.deb ) |
| Latest Pre-release | [Download ](https://lbry.com/get/lbry.pre.exe ) | [Download ](https://lbry.com/get/lbry.pre.dmg ) | [Download ](https://lbry.com/get/lbry.pre.deb ) |
2017-05-19 16:30:13 +02:00
2018-07-12 20:39:12 +02:00
Our [releases page ](https://github.com/lbryio/lbry-desktop/releases ) also contains the latest
2021-04-17 00:58:56 +02:00
release, pre-releases, and past builds.
2019-01-22 17:44:34 +01:00
_Note: If the deb fails to install using the Ubuntu Software Center, install manually via `sudo dpkg -i <path to deb>` . You'll need to run `sudo apt-get install -f` if this is the first time installing it to install dependencies_
2017-01-16 20:06:53 +01:00
2019-01-22 17:44:34 +01:00
To install from source or make changes to the application, continue to the next section below.
2018-07-12 07:28:04 +02:00
2018-10-23 03:55:36 +02:00
**Community maintained** builds for Arch Linux and Flatpak are available, see below. These installs will need to be updated manually as the in-app update process only supports Debian installs at this time.
2019-03-20 22:43:00 +01:00
_Note: If coming from a deb install, the directory structure is different and you'll need to [migrate data ](https://lbry.com/faq/backup-data )._
2018-07-12 07:28:04 +02:00
2021-04-17 00:58:56 +02:00
| | Flatpak | Arch | Nixpkgs | ARM/ARM64 |
| -------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------- |
| Latest Release | [FlatHub Page ](https://flathub.org/apps/details/io.lbry.lbry-app ) | [AUR Package ](https://aur.archlinux.org/packages/lbry-app-bin/ ) | [Nixpkgs ](https://search.nixos.org/packages?channel=unstable&show=lbry&query=lbry ) | [Build Guide ](https://lbry.tv/@LBRYarm:5 ) |
| Maintainers | [@kcSeb ](https://keybase.io/kcseb ) | [@kcSeb ](https://keybase.io/kcseb )/[@TimurKiyivinski](https://github.com/TimurKiyivinski) | [@Enderger ](https://github.com/enderger ) | [@Madiator2011 ](https://github.com/kodxana ) |
2017-01-16 20:06:53 +01:00
2019-10-09 03:55:32 +02:00
## Usage
2019-01-22 17:44:34 +01:00
2018-10-23 03:55:36 +02:00
Double click the installed application to interact with the LBRY network.
2017-12-28 18:36:48 +01:00
2019-10-09 03:55:32 +02:00
## Running from Source
2017-12-28 18:36:48 +01:00
2019-11-14 16:26:29 +01:00
You can run the web version (lbry.tv), the electron app, or both at the same time.
2019-08-23 18:08:20 +02:00
2018-05-11 07:12:53 +02:00
#### Prerequisites
2017-12-28 18:36:48 +01:00
2019-01-22 17:44:34 +01:00
- [Git ](https://git-scm.com/downloads )
2019-03-20 21:52:45 +01:00
- [Node.js ](https://nodejs.org/en/download/ ) (v10 required)
2019-01-22 17:44:34 +01:00
- [Yarn ](https://yarnpkg.com/en/docs/install )
2017-01-16 20:06:53 +01:00
2019-08-23 18:08:20 +02:00
1. Clone (or [fork ](https://help.github.com/articles/fork-a-repo/ )) this repository: `git clone https://github.com/lbryio/lbry-desktop`
2019-10-28 22:42:18 +01:00
2. Change directory into the cloned repository: `cd lbry-desktop`
2019-08-23 18:08:20 +02:00
3. Install the dependencies: `yarn`
#### Run the electron app
2020-03-23 17:56:37 +01:00
`yarn compile:electron` (this is only needed the first time you run the app)
2020-03-23 17:57:54 +01:00
2019-08-23 18:08:20 +02:00
`yarn dev`
- If you want to build and launch the production app you can run `yarn build` . This will give you an executable inside the `/dist` folder. We use [electron-builder ](https://github.com/electron-userland/electron-builder ) to create distributable packages.
2020-05-07 20:44:11 +02:00
#### Run the web app for development
2019-08-23 18:08:20 +02:00
2020-03-23 17:56:37 +01:00
`yarn compile:web` (this is only needed the first time you run the app)
2020-03-23 17:57:54 +01:00
2019-08-23 18:08:20 +02:00
`yarn dev:web`
- This uses webpack-dev-server and includes hot-reloading. If you want to debug the [web server we use in production ](https://github.com/lbryio/lbry-desktop/blob/master/src/platforms/web/server.js ) you can run `yarn dev:web-server` . This starts a server at `localhost:1337` and does not include hot reloading.
2020-05-07 20:44:11 +02:00
#### Customize the web app
2021-01-19 12:08:03 +01:00
- In root directory, duplicate the .env.default file and rename it to .env then copy the code below and paste it anywhere in the .env file.
2020-06-29 19:48:28 +02:00
2020-05-07 20:44:11 +02:00
```
cp .env.defaults .env
nano .env
```
2020-07-06 23:39:35 +02:00
- To specify your own OG-IMAGE
You can either place a png named v2-og.png in the /custom folder or specify the OG_IMAGE_URL in .env
2020-06-29 19:48:28 +02:00
2020-07-15 00:49:10 +02:00
- To specify your own channels to be followed on first run
`AUTO_FOLLOW_URLS=lbry://@chan#123...a lbry://@chan2#456...a`
2020-06-29 19:48:28 +02:00
- If you want to customize the homepage content
2020-07-02 03:34:50 +02:00
1. add `CUSTOM_HOMEPAGE=true` to the '.env' file
2020-05-07 20:44:11 +02:00
2. copy `/custom/homepage.example.js` to `/custom/homepage.js` and make desired changes to `homepage.js`
2020-05-26 23:22:42 +02:00
- If you want up to two custom sidebar links
2020-06-29 19:48:28 +02:00
2020-05-26 23:22:42 +02:00
```
PINNED_URI_1=@someurl#2/someclaim#4
PINNED_LABEL_1=Linktext
PINNED_URI_2=$/discover?t=tag& [queryparams]
PINNED_LABEL_2=OtherLinkText
```
- Finally `NODE_ENV=production yarn compile:web` to rebuild
2020-07-02 03:34:50 +02:00
_Note: You don't need to edit the .env file in the /web folder - that is copied during compile._
2020-05-26 23:22:42 +02:00
2020-06-29 19:48:28 +02:00
#### Deploy the web app (_experimental_)
2020-05-07 20:44:11 +02:00
1. Create a server with a domain name and a reverse proxy https to port 1337.
2. Install pm2, node v10, yarn
2020-06-29 19:48:28 +02:00
3. Clone this repo
2020-05-07 20:44:11 +02:00
4. Make any customizations as above
2020-05-26 23:22:42 +02:00
5. Run `yarn` to install
6. Run `NODE_ENV=production yarn compile:web` to build
2020-05-07 20:44:11 +02:00
7. Set up pm2 to start ./web/index.js
2019-08-23 18:08:20 +02:00
#### Run both at the same time
Run the two commands above in separate terminal windows
2017-01-16 20:06:53 +01:00
2019-08-23 18:08:20 +02:00
```
yarn dev
2017-12-28 18:47:17 +01:00
2019-08-23 18:08:20 +02:00
// in another terminal window
yarn dev:web
```
2017-12-28 18:36:48 +01:00
2018-05-15 05:55:12 +02:00
#### Resetting your Packages
2018-07-12 20:39:12 +02:00
If the app isn't building, or `yarn xxx` commands aren't working you may need to just reset your `node_modules` . To do so you can run: `rm -r node_modules && yarn` or `del /s /q node_modules && yarn` on Windows.
2018-05-15 05:55:12 +02:00
2019-03-19 22:50:21 +01:00
If you _really_ think something might have gone wrong, you can force your repo to clear everything that doesn't match the repo with `git reset --hard HEAD && git clean -fxd && git pull -r`
2019-10-09 03:55:32 +02:00
## Contributing
2019-01-22 17:44:34 +01:00
2018-10-31 18:37:47 +01:00
We :heart: contributions from everyone and contributions to this project are encouraged, and compensated. We welcome [bug reports ](https://github.com/lbryio/lbry-desktop/issues/ ), [bug fixes ](https://github.com/lbryio/lbry-desktop/pulls ) and feedback is always appreciated. For more details, see [CONTRIBUTING.md ](CONTRIBUTING.md ).
2017-12-28 18:36:48 +01:00
2018-10-31 18:37:47 +01:00
## [![contributions welcome](https://img.shields.io/badge/contributions-welcome-brightgreen.svg?style=flat)](https://github.com/lbryio/lbry-desktop/issues) [![GitHub contributors](https://img.shields.io/github/contributors/lbryio/lbry-desktop.svg)](https://GitHub.com/lbryio/lbry-desktop/graphs/contributors/)
2017-05-31 12:59:58 +02:00
2019-10-09 03:55:32 +02:00
## License
2017-05-31 12:59:58 +02:00
2018-10-23 03:55:36 +02:00
This project is MIT licensed. For the full license, see [LICENSE ](LICENSE ).
2017-12-28 18:36:48 +01:00
2019-10-09 03:55:32 +02:00
## Security
2018-05-11 07:12:53 +02:00
2020-04-23 04:48:17 +02:00
We take security seriously. Please contact security@lbry.com regarding any security issues. Our PGP key is [here ](https://keybase.io/lbry/key.asc ) if you need it. All releases are signed by [Sean Yesmunt ](https://keybase.io/seanyesmunt/key.asc ).
2018-05-11 07:12:53 +02:00
2019-10-09 03:55:32 +02:00
## Contact
2017-12-28 18:36:48 +01:00
2018-10-23 03:55:36 +02:00
The primary contact for this project is [@seanyesmunt ](https://github.com/seanyesmunt ).