Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Docker and Gitpod support #103

Merged
merged 29 commits into from
Jul 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
63d3bf7
Initial Docker and Gitpod support
MatteoGheza Jul 8, 2021
91e5c63
Fix Docker npm install, added vscode extensions
MatteoGheza Jul 8, 2021
b1383ea
Removed vsc extensions since Gitpod is not working
MatteoGheza Jul 8, 2021
dea58a7
fix
MatteoGheza Jul 8, 2021
2957b5e
fix2
MatteoGheza Jul 8, 2021
10fc66f
fix3
MatteoGheza Jul 8, 2021
88ef034
fix4
MatteoGheza Jul 8, 2021
67ad39c
Fix Dockerfile and Github Action
MatteoGheza Jul 9, 2021
ca8572b
Add workflow_dispatch in Github Action
MatteoGheza Jul 9, 2021
fd9b716
multi-arch Docker image build
MatteoGheza Jul 9, 2021
35c70d1
Removed arch linux/arm/v7
MatteoGheza Jul 9, 2021
a5241b6
Replaced platforms with QEMU-supported platforms
MatteoGheza Jul 9, 2021
39c414f
Removed mips64le, mips64, riscv64
MatteoGheza Jul 9, 2021
154e943
Build Docker image without compiling UI
MatteoGheza Jul 9, 2021
10d95a2
Docker build multiarch only if release
MatteoGheza Jul 9, 2021
8724efa
fix
MatteoGheza Jul 9, 2021
df24040
Typo fix
MatteoGheza Jul 9, 2021
aa21394
Docker and Gitpod in documentation (TODOs)
MatteoGheza Jul 9, 2021
39f79ac
fix2
MatteoGheza Jul 9, 2021
c016805
Logic fix
MatteoGheza Jul 9, 2021
a561dc8
add docker image info
josephdadams Jul 12, 2021
3144af2
add link to official docker image
josephdadams Jul 12, 2021
1d39cea
small fix
josephdadams Jul 12, 2021
bdc5a82
add NDI tally instructions
josephdadams Jul 12, 2021
4965449
add panasonic info
josephdadams Jul 12, 2021
ad046f9
add ndi info
josephdadams Jul 12, 2021
f9e121f
Added "config.json mount" in Docker doc
MatteoGheza Jul 13, 2021
8ea9042
Added docker-compose example
MatteoGheza Jul 13, 2021
151522f
Update docker.md
MatteoGheza Jul 13, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
.git/
.github/
bin/
docs/
node_modules/
UI/node_modules/
57 changes: 56 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
name: Build

on: [push]
on: [push, workflow_dispatch]

jobs:
build_cli:
Expand Down Expand Up @@ -29,6 +29,61 @@ jobs:
## name: 'TallyArbiter-${{ steps.package-version.outputs.version }}'
## path: 'TallyArbiter-${{ steps.package-version.outputs.version }}.tgz'

build_docker:
name: Build Docker image on Ubuntu
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Setup Node.js
uses: actions/setup-node@v1
with:
node-version: 12
- name: Install dependencies
run: npm i
- name: Set up QEMU
if: startsWith(github.ref, 'refs/tags/v')
uses: docker/setup-qemu-action@master
with:
platforms: all
- name: Set up Docker Buildx
if: startsWith(github.ref, 'refs/tags/v')
id: buildx
uses: docker/setup-buildx-action@master
- name: Get Docker meta
id: meta
uses: crazy-max/ghaction-docker-meta@v2
with:
images: josephdadams/tallyarbiter
tags: |
type=raw,value=latest,enable=${{ startsWith(github.ref, 'refs/tags/v') }}
type=ref,event=tag
flavor: |
latest=false
- name: Login to DockerHub
if: startsWith(github.ref, 'refs/tags/v')
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push
if: startsWith(github.ref, 'refs/tags/v') != true
uses: docker/build-push-action@v2
with:
context: .
push: ${{ startsWith(github.ref, 'refs/tags/v') }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
- name: Build and push (multiarch)
if: startsWith(github.ref, 'refs/tags/v')
uses: docker/build-push-action@v2
with:
builder: ${{ steps.buildx.outputs.name }}
context: .
push: ${{ startsWith(github.ref, 'refs/tags/v') }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/s390x,linux/386,linux/arm/v7,linux/arm/v6

build_desktop:
name: Build Desktop on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
Expand Down
10 changes: 10 additions & 0 deletions .gitpod.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
tasks:
- init: cd UI; npm i --ignore-scripts; npm run build; cd ..; npm i --ignore-scripts
command: npm start
ports:
- port: 4455
onOpen: open-preview
- port: 8099
onOpen: ignore
- port: 5958
onOpen: ignore
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM alpine

WORKDIR /app
COPY package.json package-lock.json index.js ./
COPY ui-dist /app/ui-dist
RUN apk add --update nodejs npm; npm i --ignore-script

EXPOSE 4455 8099 5958
CMD ["node", "index.js"]
8 changes: 8 additions & 0 deletions Dockerfile.standalone
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM alpine

WORKDIR /app
COPY . .
RUN apk add --update nodejs npm; cd UI; npm i --ignore-scripts; npm run build; cd ..; npm i --ignore-scripts

EXPOSE 4455 8099 5958
CMD ["node", "index.js"]
5 changes: 4 additions & 1 deletion docs/docs/developers/tally-arbiter.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,7 @@ sidebar-position: 3

# Developing TallyArbiter itself

Information on how to contribute to TallyArbiter itself can be found in the [project's readme](https://github.com/josephdadams/TallyArbiter#readme).
Information on how to contribute to TallyArbiter itself can be found in the [project's readme](https://github.com/josephdadams/TallyArbiter#readme).

[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/josephdadams/TallyArbiter/)
If you want to contribute to TallyArbiter without having to configure a dev environment (for example, installing npm dependencies) you can use Gitpod.
2 changes: 1 addition & 1 deletion docs/docs/installation/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ npm install --global tallyarbiter
```
or in short: `npm i -g tallyarbiter`

Then, start it ty typing `tallyarbiter`.
Then, start it by typing `tallyarbiter`.

## Upgrading
To install the latest version, just run the same command from above (`npm i -g tallyarbiter`) again.
Expand Down
29 changes: 29 additions & 0 deletions docs/docs/installation/docker.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
---
sidebar_position: 2
---

# Docker
## Installation
If you have Docker installed, you can install TallyArbiter using our official Docker image [`TallyArbiter`](https://hub.docker.com/r/josephdadams/tallyarbiter).
You can pull the image from DockerHub using the following command:
```bash
docker pull tallyarbiter:latest
```

Then, start it by typing `docker run -p 4455:4455 -v $(pwd)/config.json:/app/config.json --restart unless-stopped tallyarbiter`.
If you are using traditional Windows CMD, you can use `docker run -p 4455:4455 -v %CD%\config.json:/app/config.json --restart unless-stopped tallyarbiter`.
If you are using Powershell, you can use `docker run -p 4455:4455 -v $pwd\config.json:/app/config.json --restart unless-stopped tallyarbiter`.
If you prefer using docker-compose, you can use this configuration:
```yaml
version: '3.3'
services:
tallyarbiter:
ports:
- '4455:4455'
volumes:
- './config.json:/app/config.json'
restart: unless-stopped
image: tallyarbiter
```

**Be sure to mount your [config file](#configuration) using Docker volumes!**
1 change: 1 addition & 0 deletions docs/docs/installation/from-source.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ If you're on MacOS, you may also need to download and install XCode Command Line
Download the Tallly Arbiter source code. You can download it directly from GitHub, or you can use `git` from the command line to download the files.

To use `git`, you must have it installed: <https://git-scm.com/book/en/v2/Getting-Started-Installing-Git>

Type `git clone https://github.com/josephdadams/tallyarbiter` to download the source code. This will download to a subfolder of your current working folder.

After downloading the software, type `npm install` to install all necessary libraries and packages.
Expand Down
5 changes: 4 additions & 1 deletion docs/docs/usage/sections/listener-clients.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,7 @@ Use AdaFruit NeoPixel LED strips connected to an Arduino. Check out [NoahCallawa
Use TTGO_T Display devices with Tally Arbiter using [peterfdej](http://github.com/peterfdej)'s repository: https://github.com/peterfdej/TallyArbiter-TTGO_T

## VMix Tally Emulation
Tally Arbiter will also emulate a VMix server, which means you can use any compatible VMix tally client to view tally as well, such as the [VMix M5Stick Tally Light](https://github.com/guido-visser/vMix-M5Stick-Tally-Light) project by Guido Visser. Follow the instructions on that repository to set up your M5Stick device, and specify Tally Arbiter as your VMix server!
Tally Arbiter will also emulate a VMix server, which means you can use any compatible VMix tally client to view tally as well, such as the [VMix M5Stick Tally Light](https://github.com/guido-visser/vMix-M5Stick-Tally-Light) project by Guido Visser. Follow the instructions on that repository to set up your M5Stick device, and specify Tally Arbiter as your VMix server.

## Tally over NDI
Tally Arbiter can send out TSL 3.1 data via the `TSL 3.1 Clients` section. Paired with the [TSL NDI tally](https://github.com/iliessens/TSL-NDI-tally) software by [iliessens](https://github.com/iliessens), you can send live tally data to your NDI devices.
4 changes: 4 additions & 0 deletions docs/docs/usage/sections/sources.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ The following source types are supported:
* Ross Carbonite/Carbonite Black/Carbonite Black Solo/Carbonite Ultra/Graphite
* Newtek Tricaster
* Open Sound Control (OSC)
* Panasonic AV-HS410
* Analog Way Livecore Image Processors

When you add a source and the connection to the tally source (video switcher, software, etc.) is successfully made, the source will be green. If there is an error, the source will be red. Look at the logs for more error information.
Expand Down Expand Up @@ -62,5 +63,8 @@ OSC paths must be one of the following:

The device source address should be sent as an integer or a string. Send one argument of any type (integer, float, or string). If you send multiple arguments, they will be ignored.

## Panasonic AV-HS410
You will need the IP address of the switcher.

## Analog Way Livecore Image Processors
You will need the IP address of the device, and the port (standard port is 10600).
3 changes: 3 additions & 0 deletions docs/docs/usage/sections/tsl.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,6 @@ Tally Arbiter can automatically send out TSL 3.1 data to any number of clients.
* Add a TSL Client by using the "TSL Clients" configuration area in the Settings interface.
* Specify the IP address, Port, and Transport Type (UDP or TCP).
* Tally Arbiter will send TSL 3.1 data to these clients any time a device changes state.

## Tally over NDI
Paired with the [TSL NDI tally](https://github.com/iliessens/TSL-NDI-tally) software by [iliessens](https://github.com/iliessens), you can send live tally data to your NDI devices.