Skip to content
/ sludge Public

experimental live streaming server, written in deno 🔊⚰️

License

Notifications You must be signed in to change notification settings

lowshow/sludge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sludge • web audio streams

experimental live streaming server

Summary

This project is a component of _noisecrypt. The component acts as the streaming server where recorded audio is live streamed to, and then served from to be consumed by a compatible system. Streams are created via the sludge UI (or API) and can be added to a sortition hub using the same UI. The recording/encoding interface is part of the splutter component. The decoding/playback interface is part of the syllid component.

Component communication

  • sludge communicates information to splutter via local storage, due to shared root domain
  • sortition hub urls are copied into "add hub" section of the sludge admin UI

Install

  • Download deno (tested with v1.1.0)

Setup

UI

  • Add env data for the UI, in a file at: ui/public/env.js
export const env = () => ({
    mode: "live",
    streamUI: "https://some.url/splutter"
})

API

  • Before running, ensure files and directories exist:
make init

NOTE: You will need to provide values for these variables

Nginx port

This is the port from which the nginx proxy server for sludge will run

Service hostname

This is the base URL hostname where sludge will be accessed

Additional hostnames

More hostnames (not required)

Sludge port

Port to run the sludge deno app

Public url

The URL (including any paths, without trailing slash) where sludge app is accessed

Files url

Base URL (including any paths, with trailing slash) where audio file segments are accessed

Splutter url

Full URL for the splutter app associated with this sludge instance (they must belong on the same domain)

Dev

Server

  • Pass environment variables and run:
SLUDGE_PUBLIC="http://some.url/" SLUDGE_FILES="http://some.url/audio/" SLUDGE_PORT="8000" make run

NOTE: trailing slash should be included at the end of the URLs

UI

cd ui
npm i
npm run dev