All Projects → Glimesh → Glimesh.tv

Glimesh / Glimesh.tv

Licence: other
Glimesh is a next generation live streaming platform built by the community, for the community.

Programming Languages

elixir
2628 projects

Labels

Projects that are alternatives of or similar to Glimesh.tv

Prolink Tools
User friendly tools for accessing and using PRO DJ LINK information.
Stars: ✭ 97 (-14.91%)
Mutual labels:  streaming
Leafplayer
LeafPlayer is a fast and modern personal music streaming server, easily installable by using Docker.
Stars: ✭ 101 (-11.4%)
Mutual labels:  streaming
Streaming Room
Streaming room in Node.js, rtmp, hsl, html5 videojs player
Stars: ✭ 106 (-7.02%)
Mutual labels:  streaming
Node Tcp Streaming Server
Experimental TCP video streaming server written in node.js. Streaming over TCP and redistributing using WebSockets.
Stars: ✭ 100 (-12.28%)
Mutual labels:  streaming
Pulsar Dotpulsar
The official .NET client library for Apache Pulsar
Stars: ✭ 101 (-11.4%)
Mutual labels:  streaming
Flixerr
The best free movie torrent streaming app.
Stars: ✭ 103 (-9.65%)
Mutual labels:  streaming
Nivirtualcam
OpenNI 2 Virtual Webcam - Directshow Filter
Stars: ✭ 95 (-16.67%)
Mutual labels:  streaming
River
🌊 Online machine learning in Python
Stars: ✭ 2,980 (+2514.04%)
Mutual labels:  streaming
Nginx Vod Module
NGINX-based MP4 Repackager
Stars: ✭ 1,378 (+1108.77%)
Mutual labels:  streaming
Pravega
Pravega is 100% open source and community-driven. All components are available under Apache 2 License on GitHub.
Stars: ✭ 1,653 (+1350%)
Mutual labels:  streaming
Kit Kat
kit-kat (Toolkit-kat) is a FREE Wireless Capture-card to stream your 3DS screen to your PC!
Stars: ✭ 100 (-12.28%)
Mutual labels:  streaming
Fiflow
flink-sql 在 flink 上运行 sql 和 构建数据流的平台 基于 apache flink 1.10.0
Stars: ✭ 100 (-12.28%)
Mutual labels:  streaming
Enime
Desktop application for anime fans :D
Stars: ✭ 104 (-8.77%)
Mutual labels:  streaming
Hls.js
HLS.js is a JavaScript library that plays HLS in browsers with support for MSE.
Stars: ✭ 10,791 (+9365.79%)
Mutual labels:  streaming
Flink Learning
flink learning blog. http://www.54tianzhisheng.cn/ 含 Flink 入门、概念、原理、实战、性能调优、源码解析等内容。涉及 Flink Connector、Metrics、Library、DataStream API、Table API & SQL 等内容的学习案例,还有 Flink 落地应用的大型项目案例(PVUV、日志存储、百亿数据实时去重、监控告警)分享。欢迎大家支持我的专栏《大数据实时计算引擎 Flink 实战与性能优化》
Stars: ✭ 11,378 (+9880.7%)
Mutual labels:  streaming
Mern Mediastream
A MERN stack based media streaming application [Full-Stack React Projects]
Stars: ✭ 98 (-14.04%)
Mutual labels:  streaming
Twitch Channel Points Miner V2
A simple script that will watch a stream for you and earn the channel points.
Stars: ✭ 100 (-12.28%)
Mutual labels:  streaming
Soundtrack
Self-hosted collaborative music playing application.
Stars: ✭ 114 (+0%)
Mutual labels:  streaming
Bae
react made easy
Stars: ✭ 113 (-0.88%)
Mutual labels:  streaming
Nymphcast
Audio and video casting system with support for custom applications.
Stars: ✭ 2,010 (+1663.16%)
Mutual labels:  streaming

Glimesh.tv

Elixir CI Coverage Status

Glimesh is a next generation streaming platform built by the community, for the community. Our platform focuses on increasing discoverability for content creators and implementing the latest in streaming technology to level the playing field. We understand the importance of interaction between content creators and their fans and we’re dedicated to innovating new ways to bring communities closer together.

This repository houses the Glimesh.tv back-end and browser front-end.

Table of Contents

Development Installation

These instructions serve as a reference for getting Glimesh running whatever type of local machine you have for development. Some instructions may be specific to various distributions, substitution may be required with the correct procedure for your configuration.

General Dependencies

You will need the following tools to clone, build, and run Glimesh:

  • git: Source control
  • erlang: Runtime
  • elixir: Language and tooling
  • postgresql: Database
  • nodejs / npm: Front-end package management
  • inotify-tools: Filesystem monitoring dependencies for developer convenience (watching changes)

You may need to translate these exact dependencies into their appropriate names for your OS distribution.

Cloning

To clone a local copy of Glimesh.tv, run

git clone https://github.com/Glimesh/glimesh.tv.git
# or if you have permissions to the repository, or prefer to use SSH authentication
# git clone [email protected]:Glimesh/glimesh.tv.git

NOTE: If you are using WSL2, ensure you are cloning inside of your WSL2 instance (ex. /home/user/...) and not inside of a mounted Windows drive (ex. /mnt/c/Users/...) as this can have a significant negative impact on performance.

Windows Installation

Running Glimesh.tv natively on Windows is not yet understood. However you can run the application very well with WSL2. If you are interested in running Glimesh.tv natively, have a go at us and let us know!

WSL2 with Ubuntu 18.04 & 20.04 has been tested successfully for development on Windows.

Ubuntu Installation (including WSL2 + Ubuntu)

On modern versions of Ubuntu, you can install these packages with the following command:

sudo apt install git esl-erlang elixir postgresql npm inotify-tools

Configuring Postgres

After installing the postgresql package, you may need to fire up the postgresql server:

sudo pg_ctlcluster 12 main start

You will then need to add a password for the default postgres user so that the Glimesh service can access the database. The password Glimesh is configured to use by default in a dev environment is postgres. Postgres by default will only allow connections from localhost - for a development environment this is generally acceptable. If you are more concerned about securing your Postgres instance, consider using a different password.

Run the following command to enter a postgres prompt:

sudo -u postgres psql

When presented with the postgres=# prompt, you can run \password postgres to change the password for the postgres user. Enter postgres as the password, enter it again to confirm, then enter \quit to exit the postgres prompt.

postgres=# \password postgres
Enter new password:
Enter it again:
\quit

macOS Installation

Installation is simple with Homebrew.

# Required dependencies
brew install elixir imagemagick node
# Graphical Postgres, if you do not want a graphical Postgres, you are on your own!
brew install --cask postgres

After you've completed these install steps, launch the Postgres.app and Initialize the server. You are ready to run Glimesh.tv at this point.

Preparing to run

cd into the directory where you cloned Glimesh.tv and run the following to pull Elixir dependencies:

mix deps.get

Then, run the following to set up the database:

mix ecto.setup

Then, pull the front-end dependencies from the assets directory.

npm ci --prefix=assets

Then, run the following to generate local SSL certificates (for HTTPS)

mix phx.gen.cert

Run!

Finally, you can run the following command to start the Glimesh.tv service:

mix phx.server

Now you can visit localhost:4000 from your browser.

SSL/HTTPS

Note: In order to connect with HTTPS, you will need to add the generated self-signed certificate to your trusted store.

To do this on Windows, find the priv/cert/selfsigned.pem file that was generated earlier. In WSL2, you can navigate to your WSL2 machine via \\wsl$ in Windows Explorer.

Copy the selfsigned.pem file to your Windows machine and change the file extension from .pem to .crt.

Double click the .crt file and select "Install Certificate...".

Choose "Current User" for Store Location and press "Next".

Select "Place all certificates in the following store" and press the "Browse..." button.

Select "Trusted Root Certification Authorities" and press "OK".

Press "Next" and finish the Certificate Import Wizard. When prompted to trust the certificate, press "Okay".

Now you can visit your local Glimesh dev instance via HTTPS at localhost:4001!

Docker

Glimesh.tv can also be set up for development use only using docker-compose.

To do so, run the following commands from the GitHub repository:

  1. touch .env
  2. docker-compose -f docker-compose.yml -f docker-compose.dev.yml up

Customizing your local environment

You can create a config/local.exs config file to change any local settings to make development easier. This file is ignored from git, so you don't have to worry about committing any secrets.

use Mix.Config

config :glimesh, GlimeshWeb.Endpoint,
  url: [host: "glimesh.dev", port: 443]

Developing

Most of the core code behind the project is located is clear directories, grouped with other similar code. Here are a couple of the directories you'll frequently be working with:

Directory Frontend Backend Description
assets/css SCSS directory for all of our styles, using Bootstrap 4.5
assets/js Our simple JavaScript hooks. Generally triggered directly from a LiveView based on an action. We strive to keep the JavaScript minimal
lib/glimesh_web/{live, templates} Phoenix LiveView's and regular controller based views (called templates in Phoenix)
lib/glimesh Core Elixir domain logic & DB interactions
lib/glimesh_web/{live, controllers} Phoenix LiveView's and regular controllers
priv/repo/migrations Ecto migrations for the Postgres database
test All testing, both functional and integrated using ExUnit
config Configuration for local, testing, and production releases

Modifying Code

All code inside any known directory is automatically watched for changes and triggers the appropriate build. Some frontend code and live views will automatically refresh your browser, but for more complex domain logic you may be required to refresh your browser.

Running Static Code Analysis

Before submitting a pull request, be sure to run Credo which will run a static code analysis over the entire project.

mix code_quality

Contributing

  1. Fork it!
  2. Create your feature branch (git checkout -b feature/my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin feature/my-new-feature)
  5. Create new Pull Request

Testing

Glimesh includes a comprehensive and very fast test suite, so you should be encouraged to run tests as frequently as possible.

mix test

Any broken tests will be called out with the file and line number. If you are working on a single test, or a single test file you can easily specify a smaller test sample with:

mix test test/glimesh/your_test.exs
# Or specifying a specific line
mix test test/glimesh/your_test.exs:15

Help

If you need help with anything, please feel free to open a GitHub Issue.

Security Policy

Our security policy can be found in SECURITY.md.

License

Glimesh.tv is licensed under the MIT License.

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].