An image hosting service on top of the LBRY protocol.
Find a file
2018-07-31 16:43:08 -07:00
cli cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
client cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
client_custom moved www.spee.ch components into repo 2018-07-31 16:01:16 -07:00
config moved www.spee.ch components into repo 2018-07-31 16:01:16 -07:00
devConfig fixed conflicts for merging 2018-04-17 12:57:53 -07:00
public moved www.spee.ch components into repo 2018-07-31 16:01:16 -07:00
server cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
test updated the iframe test page 2018-07-12 11:30:27 -07:00
utils moved www.spee.ch components into repo 2018-07-31 16:01:16 -07:00
.babelrc added babel to transpile SSR jsx 2018-04-18 12:01:26 -07:00
.eslintignore cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
.eslintrc added standard-jsx to eslint and fixed issues 2018-02-21 17:02:57 -08:00
.gitignore cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
.npmignore added spee.ch-components under client 2018-05-22 19:06:37 -07:00
.sequelizerc updated sequelize cli paths via .sequelizerc 2018-07-26 15:32:33 -07:00
LICENSE create initial LICENSE file 2018-02-05 12:43:14 -08:00
package-lock.json moved www.spee.ch components into repo 2018-07-31 16:01:16 -07:00
package.json cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
README.md cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
server.js cleaned up errors and updated build scripts 2018-07-31 16:43:08 -07:00
webpack.config.js moved www.spee.ch components into repo 2018-07-31 16:01:16 -07:00

Spee.ch

This repo packages the spee.ch server for use with spee.ch implementations.

Quick start

Install dependencies

npm install

create config file

npm run configure

build from source code

npm run transpile

create client bundle with webpack

npm run bundle

start the sever

npm run start

System dependencies

Spee.ch relies on the following programs being installed on your server:

Development

  • the server/ folder contains all of the server code
    • index.js is the entry point for the server. It creates the express app, requires the routes, syncs the database, and starts the server listening on the PORT designated in the config file.
    • the server/routes folder contains all of the routes for the express app
    • the server/models folder contains all of the models which the app uses to interact with the mysql database. Note: this app uses the sequelize ORM.
  • the client/ folder contains all of the client code

Tests

  • This package uses mocha with chai for testing.
  • Before running tests, create a testingConfig.js file in devConfig/ by copying testingConfig.example.js
  • To run tests:
    • To run all tests, including those that require LBC (like publishing), simply run npm test
    • To run only tests that do not require LBC, run npm run test:no-lbc

API

  • (post) /api/claim/publish
    • example: curl -F 'name=MyPictureName' -F 'file=@/path/to/myPicture.jpeg' https://spee.ch/api/claim/publish
    • Parameters:
      • name (required)
      • file (required) (must be type .mp4, .jpeg, .jpg, .gif, or .png)
      • nsfw (optional)
      • license (optional)
      • title (optional)
      • description (optional)
      • thumbnail url to thumbnail image, for .mp4 uploads only (optional)
      • channelName(optional)
      • channelPassword (optional,; required if channelName is provided)
  • (get) /api/claim/resolve/:name/:claimId
    • example: curl https://spee.ch/api/claim/resolve/doitlive/xyz
  • (get) /api/claim/list/:name
    • example: curl https://spee.ch/api/claim/list/doitlive
  • (get) /api/claim/availability/:name
    • returns the name if it is available
    • example: curl https://spee.ch/api/claim/availability/doitlive
  • (get) /api/channel/availability/:name
    • returns the name if it is available
    • example: curl https://spee.ch/api/channel/availability/@CoolChannel

Bugs

If you find a bug or experience a problem, please report your issue here on github and find us in the lbry discord!

Contribute

Below is a guide to the issue tags in this repo

level 1

Issues with spee.ch that anyone with basic web development can handle, little-to-no experience with the spee.ch codebase is required.

level 2

Issues with spee.ch familiarity with the spee.ch codebase is required, but little-to-no familiarity with the lbry daemon is necessary

level 3

Issues with spee.ch strong familiarity with the spee.ch code base and how the lbry daemon functions is required

level 4

Issues with lbry (e.g. the spee.ch wallet, lbrynet configuration, etc.) that require strong familiarity with the lbry daemon and/or network to fix. Generally these issues are best suited for the lbry protocol team but are placed in this repo because of they are part of the spee.ch implementation

Stack

URL formats

Below is a list of all possible urls for the content on spee.ch

  • controlling, free LBRY claim
    • spee.ch/claim (show)
    • spee.ch/claim.ext (serve)
  • specific LBRY claim
    • spee.ch/claim_id/claim
    • spee.ch/claim_id/claim.ext
  • all free contents for the controlling LBRY channel
    • spee.ch/@channel
  • a specific LBRY channel
    • spee.ch/@channel:channel_id
  • a specific claim within the controlling LBRY channel
    • spee.ch/@channel/claim (show)
    • spee.ch/@channel/claim.ext (serve)
  • a specific claim within a specific LBRY channel
    • spee.ch/@channel:channel_id/claim
    • spee.ch/@channel:channel_id/claim.ext