All Projects → resonatecoop → stream

resonatecoop / stream

Licence: GPL-3.0 license
Monorepo for Resonate Coop player

Programming Languages

javascript
184084 projects - #8 most used programming language
CSS
56736 projects
typescript
32286 projects
HTML
75241 projects

Projects that are alternatives of or similar to stream

Daily Apps
Everything you see on Daily 👀
Stars: ✭ 141 (-14.02%)
Mutual labels:  lerna
hyperscript-attribute-to-property
Convert hyperscript attributes to properties
Stars: ✭ 19 (-88.41%)
Mutual labels:  choo
choo-pwa
PWA with Choo
Stars: ✭ 18 (-89.02%)
Mutual labels:  choo
Styleguide
🖌 Conjunction of design patterns, components and resources used across our products.
Stars: ✭ 162 (-1.22%)
Mutual labels:  lerna
Puppeteer Extra
💯 Teach puppeteer new tricks through plugins.
Stars: ✭ 3,397 (+1971.34%)
Mutual labels:  lerna
nanoconstruct
Tiny tool to test and develop nanocomponents
Stars: ✭ 12 (-92.68%)
Mutual labels:  choo
Zmi Nerd
😃 Simple transform tool
Stars: ✭ 139 (-15.24%)
Mutual labels:  lerna
pattern-library
AXA CH UI component library. Please share, comment, create issues and work with us!
Stars: ✭ 103 (-37.2%)
Mutual labels:  lerna
choo-test
🚂🚋🚋🚋 Easy choo app unit testing
Stars: ✭ 23 (-85.98%)
Mutual labels:  choo
cache-component
DEPRECATED: Use nanocomponent. Will continue to operate as normal
Stars: ✭ 16 (-90.24%)
Mutual labels:  choo
Monorepo Run
Run scripts in monorepo with colors, streaming and separated panes
Stars: ✭ 167 (+1.83%)
Mutual labels:  lerna
Lerna Yarn Workspaces Monorepo
🐉 A Monorepo with multiple packages and a shared build, test, and release process.
Stars: ✭ 201 (+22.56%)
Mutual labels:  lerna
awesome-yo-yo
Modules & resources related to yo-yo
Stars: ✭ 27 (-83.54%)
Mutual labels:  choo
Melos
🌋 A tool for managing Dart projects with multiple packages (sometimes called monorepos). With IntelliJ and Vscode IDE support. Supports automated versioning, changelogs & publishing via Conventional Commits.
Stars: ✭ 155 (-5.49%)
Mutual labels:  lerna
component-box
A little component cacher 📦
Stars: ✭ 25 (-84.76%)
Mutual labels:  choo
Yerna
A Lerna-like tool for managing Javascript monorepos using Yarn
Stars: ✭ 140 (-14.63%)
Mutual labels:  lerna
olaf
A P2P chat using Dat.
Stars: ✭ 24 (-85.37%)
Mutual labels:  choo
vulcan-npm
The full-stack JavaScript App Framework
Stars: ✭ 26 (-84.15%)
Mutual labels:  lerna
Choo
🚂🚋 - sturdy 4kb frontend framework
Stars: ✭ 6,637 (+3946.95%)
Mutual labels:  choo
choo-offline
🔧 offline first support for choo apps
Stars: ✭ 12 (-92.68%)
Mutual labels:  choo

🛠 Status: Maintenance Mode | Stable

This project is currently in maintenance mode - users should feel free to continue to use this app and expect bug fixes, but not expect many additional features.

stream2own

Play fair.


Resonate is an open-source music streaming service run by a cooperative of artists and software developers.

If you want to know what we're building or want to get more involved, head over to the Platform category on our forum or read the Developer Guide in our Resonate Handbook.

If you're looking for a good first task, feel encouraged to take on an un-assigned 'help wanted' issues.

Are you building something using the Resonate API and would like to request a change? Resonate welcomes #proposals in the Co-Operation section of the forum.

Table of Contents

Getting Started

Quickstart

Quick-n-dirty instructions to get the player up and running on your computer using http and pointing to the existing production API (see API to learn more about the API). Assumes the latest version of node.js.

Stuck? Make an issue on Github! Curious about the roadmap? Ask in the forum.

Clone the repo and cd into it:

[email protected]:resonatecoop/stream.git
cd stream

Install dependencies:

npm install

Create your env file:

cp beta/.env.example beta/.env

Run the app:

npm run dev

You should see the app running at http://localhost:8080.

Try logging in at http://localhost:8080/login.

You can run the app at a different port using the command below:

npm run dev -- --port 8089

The embed app (optional)

npm run dev:embed

Testing on Mobile: Using HTTPS

HTTPS is required to test PWAs on mobile. Read more about Progressive Web Apps.

Nginx

You can find a reference nginx configuration file in the docs. Note that the reference is not a complete nginx.conf file, it should fit within your existing configuration or be wrapped in a http block directive:

http {
  server {
  }
}

In the example nginx.conf, note the lines referring to the ssl_certificate_key and the ssl_certificate_key.

Generating a Custom Certificate

You can generate a custom certificate using mkcert for beta.resonate.localhost. This origin is whitelisted in our CORS config.

Generate the certificate (cert.pem) and key (key.pem) for beta.resonate.localhost:

mkcert -key-file key.pem -cert-file cert.pem beta.resonate.localhost

In your nginx.conf file, update the ssl_certificate_key and the ssl_certificate_key to refer to your new key and certificate files.

Update your Hosts file

Update your hosts file to include:

127.0.0.1       beta.resonate.localhost

Update on your .env file

APP_DOMAIN=beta.resonate.localhost
APP_HOST=https://beta.resonate.localhost

Run the app!

npm run dev

You should now see the player running on https://beta.resonate.localhost or

Development

API

If you want to build on the API for personal use, consider checking the backlog in our community forum. The Tracks API repo is currently private, but you may ask for access in the forum.

The Swagger API documentation is currently in flux and split across the Resonate Search API (see the top right corner for the different services) and Resonate Service Documentation: User.

Other Commands

Add a package

Installing one of the monorepo packages into one of the other ones is as easy as this:

npm install @resonate/button --workspace "beta"

This installs @resonate/button into the beta package.

Add a dev dependency

Here's how you would add gulp so that it can be used in any package in this repo:

npm install -D gulp

Build

npm run build

To compile a specific package

npm run build --workspace "@resonate/rangeslider"

Testing

Run all tests (lint, dependency-check)

npm test

Test a specific component

npm run test --workspace "@resonate/player-component"

A package can have browser tests (tape-run)

npm run test:browser --workspace "@resonate/api-factory-generator"

Commands

Command Description
$ npm run dev Start beta app development server
$ npm test Lint, validate deps & run dependency-check for all packages
$ npm run build Compile all beta app files into beta/dist/

Code style

We use eslint together with the standard config as a linter and javascript style guide. Make sure to add appropriate plugin for your editor, unless it is already supported out-of-box. It can also be handy to install the pre-commit hook (see .pre-commit-config.yaml) to automatically apply the standard style.

Maintainers

See Also

  • choo - sturdy 4kb frontend framework
  • nanohtml - HTML template strings for the Browser with support for Server Side Rendering in Node. strings
  • nanocomponent - create performant HTML components
  • tachyons - functional CSS for humans
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].