2020-04-30 15:23:44 -04:00
< img width = "40%" src = "https://miro.medium.com/max/5198/1*bTVuL2THG_0mpwmE-n7Ezg.png" / >
2017-01-16 14:06:53 -05:00
2020-04-30 15:23:44 -04:00
# LBRY App - https://lbry.tv
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 03:45:01 +05:30
2020-04-30 15:23:44 -04: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 03:45:01 +05:30
2020-04-30 15:23:44 -04:00
< h2 >
2019-10-18 03:45:01 +05:30
< 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-04-30 15:23:44 -04:00
< / h2 >
2018-07-19 11:56:05 -04:00
2017-01-16 14:06:53 -05:00
2020-01-22 16:14:16 -05:00
![App GIF ](https://spee.ch/@lbrynews:0/lbry-joule.gif )
2019-10-07 09:27:37 +05:30
## 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 07:25:32 +05:30
## Install
2020-01-22 16:14:16 -05:00
2019-10-15 13:25:28 -04:00
[![Windows ](https://img.shields.io/badge/Windows-Install-blue )](https://lbry.com/get/lbry.exe)
2019-10-15 23:20:43 +08:00
[![Linux ](https://img.shields.io/badge/Linux-Install-blue )](https://lbry.com/get/lbry.deb)
2019-10-15 13:25:28 -04:00
[![MacOS ](https://img.shields.io/badge/MacOS-Install-blue )](https://lbry.com/get/lbry.dmg)
2019-10-15 23:21:48 +08:00
2018-12-11 16:24:44 -05: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 11:37:49 -04:00
2019-03-20 17:43:00 -04: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 10:30:13 -04:00
2018-07-12 14:39:12 -04:00
Our [releases page ](https://github.com/lbryio/lbry-desktop/releases ) also contains the latest
2019-01-22 11:44:34 -05:00
release, pre-releases, and past builds.
_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 14:06:53 -05:00
2019-01-22 11:44:34 -05:00
To install from source or make changes to the application, continue to the next section below.
2018-07-12 01:28:04 -04:00
2018-10-22 21:55:36 -04: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 17:43:00 -04: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 01:28:04 -04:00
2020-03-23 12:56:37 -04:00
| | Flatpak | Arch | Raspberry Pi |
| -------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ------------------------------------------- |
| Latest Release | [FlatHub Page ](https://flathub.org/apps/details/io.lbry.lbry-app ) | [AUR Package ](https://aur.archlinux.org/packages/lbry-app-bin/ ) | [Pi Installer ](https://lbrypi.com ) |
| Maintainers | [@kcSeb ](https://keybase.io/kcseb ) | [@kcSeb ](https://keybase.io/kcseb )/[@TimurKiyivinski ](https://github.com/TimurKiyivinski ) | [@Madiator2011 ](https://github.com/kodxana ) |
2017-01-16 14:06:53 -05:00
2019-10-09 07:25:32 +05:30
## Usage
2019-01-22 11:44:34 -05:00
2018-10-22 21:55:36 -04:00
Double click the installed application to interact with the LBRY network.
2017-12-28 14:36:48 -03:00
2019-10-09 07:25:32 +05:30
## Running from Source
2017-12-28 14:36:48 -03:00
2019-11-14 10:26:29 -05:00
You can run the web version (lbry.tv), the electron app, or both at the same time.
2019-08-23 12:08:20 -04:00
2018-05-11 01:12:53 -04:00
#### Prerequisites
2017-12-28 14:36:48 -03:00
2019-01-22 11:44:34 -05:00
- [Git ](https://git-scm.com/downloads )
2019-03-20 16:52:45 -04:00
- [Node.js ](https://nodejs.org/en/download/ ) (v10 required)
2019-01-22 11:44:34 -05:00
- [Yarn ](https://yarnpkg.com/en/docs/install )
2017-01-16 14:06:53 -05:00
2019-08-23 12:08:20 -04: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-29 03:12:18 +05:30
2. Change directory into the cloned repository: `cd lbry-desktop`
2019-08-23 12:08:20 -04:00
3. Install the dependencies: `yarn`
#### Run the electron app
2020-03-23 12:56:37 -04:00
`yarn compile:electron` (this is only needed the first time you run the app)
2020-03-23 12:57:54 -04:00
2019-08-23 12:08:20 -04: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 14:44:11 -04:00
#### Run the web app for development
2019-08-23 12:08:20 -04:00
2020-03-23 12:56:37 -04:00
`yarn compile:web` (this is only needed the first time you run the app)
2020-03-23 12:57:54 -04:00
2019-08-23 12:08:20 -04: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 14:44:11 -04:00
#### Customize the web app
- Enter web directory, copy .env.defaults to .env and make changes
```
cd web
cp .env.defaults .env
nano .env
```
- If you want to customize the homepage content
1. add `CUSTOM_HOMEPAGE=true` to the 'web/.env' file
2. copy `/custom/homepage.example.js` to `/custom/homepage.js` and make desired changes to `homepage.js`
#### Deploy the web app (*experimental*)
1. Create a server with a domain name and a reverse proxy https to port 1337.
2. Install pm2, node v10, yarn
3. Clone this repo
4. Make any customizations as above
5. Run 'yarn' to install
6. Run yarn compile:web to build
7. Set up pm2 to start ./web/index.js
2019-08-23 12:08:20 -04:00
#### Run both at the same time
Run the two commands above in separate terminal windows
2017-01-16 14:06:53 -05:00
2019-08-23 12:08:20 -04:00
```
yarn dev
2017-12-28 09:47:17 -08:00
2019-08-23 12:08:20 -04:00
// in another terminal window
yarn dev:web
```
2017-12-28 14:36:48 -03:00
2018-05-14 23:55:12 -04:00
#### Resetting your Packages
2018-07-12 14:39:12 -04: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-14 23:55:12 -04:00
2019-03-19 16:50:21 -05: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 07:25:32 +05:30
## Contributing
2019-01-22 11:44:34 -05:00
2018-10-31 23:07:47 +05:30
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 14:36:48 -03:00
2018-10-31 23:07:47 +05:30
## [![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 07:25:32 +05:30
## License
2017-05-31 12:59:58 +02:00
2018-10-22 21:55:36 -04:00
This project is MIT licensed. For the full license, see [LICENSE ](LICENSE ).
2017-12-28 14:36:48 -03:00
2019-10-09 07:25:32 +05:30
## Security
2018-05-11 01:12:53 -04:00
2020-04-22 22:48:17 -04: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 01:12:53 -04:00
2019-10-09 07:25:32 +05:30
## Contact
2017-12-28 14:36:48 -03:00
2018-10-22 21:55:36 -04:00
The primary contact for this project is [@seanyesmunt ](https://github.com/seanyesmunt ).