Locally hosted web application for media streaming.
Commits to main
will use GitHub Actions to run an automatic build and deployment process. This build compiles the Docker image to both an amd64 and arm/v7 (for RasbianOS) compiled image. Either can be pulled as follows:
amd64
docker pull ghcr.io/alehechka/streamr:amd64
arm/v7
docker pull ghcr.io/alehechka/streamr:arm
To run the Docker image, it is required to mount a volume to the container to be able to retain any media upload via the upload process on the frontend. This can done when starting the container as follows:
amd64
docker run -d --rm -p 8080:8080 -v path/to/media:/app/media ghcr.io/alehechka/streamr:amd64
arm/v7
docker run -d --rm -p 8080:8080 -v ~/path/to/media:/app/media ghcr.io/alehechka/streamr:arm
Backend: Written in GoLang with gin and ffmpeg for media file conversion.
Frontend: Written in TypeScript with React and styled-components for CSS.
The frontend and backend must be run concurrently while in development.
For local development or build, it is necessary to download (ffmpeg)[https://www.ffmpeg.org/] and add the path to the
bin
file inside to your OS's environment PATH.
cd client
yarn install
yarn start
While developing the frontend, the app will automatically proxy axios requests to the backend running at: http://localhost:8080
cd server
yarn get
yarn start
Backend uses gin to reload files on save. Globally install with:
go get github.com/codegangsta/gin
In a more production ready standpoint, the React app is built and added to the folder structure of the GoLang server and hosted as static files via the http server. This can be automated by running the following at the root of the repository:
yarn local:build
yarn local:run