**Please note: the spee.ch code base and setup instructions are no longer actively maintained now that we have lbry.tv. Proceed at your own caution. Setup will require dev ops skills.**
- run this as a service exposing ports 3333 and 4444
- _note_: once the daemon is running, issue commands in another terminal session (tmux) to retrieve an address for your wallet to recieve 5+ LBC credits (or join us in the [#speech discord channel](https://discord.gg/YjYbwhS) and we will send you a few)
-`./lbrynet commands` gets a list of commands
-`./lbrynet account_balance` gets your balance (initially 0.0)
-`./lbrynet address_list` gets addresses you can use to recieve LBC
_note: If you are opt to run a local chainquery, such as from [lbry-docker/chainquery](https://github.com/lbryio/lbry-docker/tree/master/chainquery) you will need to specify connection details at this time in:_ ~/spee.ch/docs/setup/conf/speech/chainqueryConfig.json
Instructions are coming at [lbry-docker] to install your own chainquery instance using docker-compose. This will require 50GB of preferably SSD space and at least 10 minutes to download, possibly much longer.
The spee.ch stack is MySQL, Express.js, Node.js, and React.js. Spee.ch also runs `lbrynet` on its server, and it uses the `lbrynet` API to make requests -- such as `publish`, `create_channel`, and `get` -- on the `LBRY` network.
Spee.ch also runs a sync tool, which decodes blocks from the `LBRY` blockchain as they are mined, and stores the information in MySQL. It stores all claims in the `Claims` table, and all channel claims in the `Certificates` table.
-`cli/` contains the code for the CLI tool. Running the tool will create `.json` config files and place them in the `site/config/` folder
-`configure.js` is the entry point for the CLI tool
-`cli/defaults/` holds default config files
-`cli/questions/` holds the questions that the CLI tool asks to build the config files
-`client/` contains all of the client code
- The client side of spee.ch uses `React` and `Redux`
-`client/src/index.js` is the entry point for the client side js. It checks for preloaded state, creates the store, and places the `<App />` component in the document.
-`client/src/app.js` holds the `<App />` component, which contains the routes for `react-router-dom`
-`client/src/` contains all of the JSX code for the app. When the app is built, the content of this folder is transpiled into the `client/build/` folder.
- The Redux code is broken up into `actions/``reducers/` and `selectors/`
- The React components are broken up into `containers/` (components that pull props directly from the Redux store), `components/` ('dumb' components), and `pages/`
- spee.ch also uses sagas which are in the `sagas/` folders and `channels/`
-`client/scss/` contains the CSS for the project \*
-`site/custom` is a folder which can be used to override the default components in `client/`
- The folder structure mimics that of the `client/` folder
- to customize spee.ch, place your own components and scss in the `site/custom/src/` and `site/custom/scss` folders.
-`server/` contains all of the server code
-`index.js` is the entry point for the server. It creates the [express app](https://expressjs.com/), requires the routes, syncs the database, and starts the server listening on the `PORT` designated in the config files.
-`server/routes/` contains all of the routes for the express app
-`server/controllers/` contains all of the controllers for all of the routes
-`server/models/` contains all of the models which the app uses to interact with the `MySQL` database.
- Spee.ch uses the [sequelize](http://docs.sequelizejs.com/) ORM for communicating with the database.
-`tests/` holds the end-to-end tests for this project
- Spee.ch uses `mocha` with the `chai` assertion library
- unit tests are located inside the project in-line with the files being tested and are designated with a `xxxx.test.js` file name
Spee.ch has a few types of URL formats that return different assets from the LBRY network. Below is a list of all possible URLs for the content on spee.ch. You can learn more about LBRY URLs [here](https://lbry.tech/resources/uri).
- [chainquery](https://github.com/lbryio/chainquery) - a normalized database of the blockchain data. We've provided credentials to use a public chainquery service. You can also install it on your own server to avoid being affected by the commons.
- [lbrynet](https://github.com/lbryio/lbry) - a daemon that handles your wallet and transactions.
We take security seriously. Please contact security@lbry.com regarding any security issues. [Our GPG key is here](https://lbry.com/faq/gpg-key) if you need it.