174 lines
4 KiB
Markdown
174 lines
4 KiB
Markdown
# Create Your Own Spee.ch!
|
||
|
||
## 1. Prerequisites
|
||
### You will need the following tools installed
|
||
|
||
* Node (v8 LTS).
|
||
* Make sure you install from the **Node** website [link](https://nodejs.org/en/download/).
|
||
* npm (should come installed with Node).
|
||
* Git
|
||
* Curl
|
||
* Tmux
|
||
* Unzip
|
||
|
||
### Make sure **npm** is up-to-date.
|
||
```
|
||
$ npm update
|
||
```
|
||
|
||
### Setup a Webserver to serve **Spee.ch** from Port **3000**.
|
||
* If you are using a server provided by **lbry**, we will have **caddy** installed already.
|
||
* If you are using your own server, make sure to have a web server installed and set up to serve from port **3000**.
|
||
* Nginx instructions (recommended).
|
||
* Insert directions for certbot before installing.
|
||
* Install [Nginx](http://nginx.org/en/docs/install.html).
|
||
* Create a config file called `spee.ch` in */etc/nginx/sites-available*
|
||
* see example: [config file](https://github.com/lbryio/spee.ch/blob/master/nginx_example_config).
|
||
* Rename all mentions of *sub.domain.com* with your subdomain name.
|
||
* Run this command to link the sites-available.
|
||
|
||
`$ ln -s /etc/nginx/sites-available/speech /etc/nginx/sites-enabled/speech`
|
||
|
||
* Restart Nginx.
|
||
|
||
`$ sudo service nginx restart`
|
||
|
||
* Try visiting your website.
|
||
* If Nginx is working, you should get a **502** error because there is nothing running on **3000** yet.
|
||
* If you get the default Nginx greeting, you have not properly configured it to serve from port **3000**.
|
||
* You can find logs in */var/log/nginx/* too.
|
||
* Caddy tutorial: [https://caddyserver.com/tutorial](https://caddyserver.com/tutorial)
|
||
### MySql
|
||
|
||
* Install MySql
|
||
* [Instructions](https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en)
|
||
* Create user **root**.
|
||
* Note: We are going to access **mysql** as **root** for this setup, but you may want to create a separate user in the future.
|
||
* Keep your password somewhere handy!
|
||
* Create a database called **lbry** and make sure you can use it.
|
||
|
||
`CREATE DATABASE lbry;`
|
||
|
||
`$ USE lbry;`
|
||
|
||
`$ exit; (or press ‘ctl + d’)`
|
||
|
||
* Try logging into mysql.
|
||
|
||
`$ mysql -u username -p`
|
||
|
||
* If you are using a **LBRY** server, your **password** is the one provided for **ssh**.
|
||
* Note: If it fails, try using `sudo`.
|
||
|
||
##2. Install & Run the LBRY Daemon
|
||
|
||
### Install **lbrynet**
|
||
_note: if you have a server from LBRY, lbrynet is already installed, you can skip to 2.4._
|
||
```
|
||
$ wget --quiet -O ~/latest_daemon.zip https://lbry.io/get/lbrynet.linux.zip
|
||
$ unzip -o -u "~/latest_daemon.zip"
|
||
```
|
||
### Start lbrynet
|
||
```
|
||
$ tmux
|
||
$ ./lbrynet-daemon
|
||
```
|
||
|
||
### Detach (exit) the tmux session and leave **lbrynet** running in the background.
|
||
|
||
press `ctrl` + `b` then `d` to detach
|
||
|
||
### Get LBC!
|
||
|
||
Get a list of your wallets:
|
||
|
||
```
|
||
$ ~/lbrynet-cli wallet_list
|
||
```
|
||
|
||
Send some LBC to one of the addresses from your wallet.
|
||
|
||
Check your balance again:
|
||
|
||
```
|
||
$ ~/lbrynet-cli wallet_balance
|
||
```
|
||
|
||
You should have **LBC**!
|
||
|
||
### Install ffmpeg
|
||
|
||
directions: [here](https://www.ffmpeg.org/download.html)
|
||
|
||
## 3. Set up Spee.ch
|
||
|
||
### Clone the spee.ch repo
|
||
|
||
```
|
||
$ git clone https://github.com/lbryio/www.spee.ch.git
|
||
```
|
||
|
||
Change directory into your site’s folder
|
||
|
||
```
|
||
$ cd <name-of-your-site>` or `$ cd www.spee.ch
|
||
```
|
||
|
||
Install dependencies
|
||
|
||
```
|
||
$ npm install
|
||
```
|
||
|
||
Run the config cli:
|
||
|
||
```
|
||
$ npm run configure
|
||
```
|
||
|
||
Check your site configs
|
||
```
|
||
$ cd config/
|
||
$ nano siteConfig.json
|
||
```
|
||
|
||
### Build & run
|
||
|
||
Run the below command to transpile, build, and start your server.
|
||
```
|
||
$ npm run start
|
||
```
|
||
|
||
_**Note:** if you had to use `sudo` to login to **mysql** above, you may have issues with this step._
|
||
|
||
Spee.ch should now be running !
|
||
|
||
Visit your site in the browser. Try publishing an image!
|
||
|
||
|
||
## 4. Bonus:
|
||
|
||
### Install PM2 and run your server with PM2
|
||
|
||
Install PM2
|
||
```
|
||
$ sudo npm i -g pm2
|
||
```
|
||
|
||
From inside your project’s folder, start your server with PM2.
|
||
```
|
||
$ pm2 start server.js
|
||
```
|
||
|
||
Visit your site and see if it is running!
|
||
|
||
### Sync Your Spee.ch Instance with the full **Blockchain**
|
||
|
||
Install **lbrycrdd**
|
||
|
||
Install **lbry-decoder**
|
||
|
||
Start **lbry-decoder**
|
||
|
||
Install & run [spee.ch-sync](https://github.com/billbitt/spee.ch-sync)
|
||
|