This commit is contained in:
27
.env
Normal file
27
.env
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
###########
|
||||||
|
# GATEWAY #
|
||||||
|
###########
|
||||||
|
#Секретный ключ по которому авторизуются бекенды при подключении к SFU шлюзу
|
||||||
|
SECRET=SFU_TEST_SECRET
|
||||||
|
#PORT SFU шлюза (для приема соединений от бекендов)
|
||||||
|
PORT=1001
|
||||||
|
###############
|
||||||
|
# SFU SECTION #
|
||||||
|
###############
|
||||||
|
#Публичный IP адрес, который будет использоваться для ICE кандидатов (если SFU работает за NAT)
|
||||||
|
SFU_PUBLIC_IP=192.168.6.82
|
||||||
|
#Диапазон портов для ICE кандидатов
|
||||||
|
SFU_PORT_RANGE_FROM=30000
|
||||||
|
SFU_PORT_RANGE_TO=39999
|
||||||
|
################
|
||||||
|
# TURN SECTION #
|
||||||
|
################
|
||||||
|
#Разрешить использовать этот SFU как TURN сервер тоже (для ретрансляции медиа трафика на сам SFU)
|
||||||
|
TURN_ALLOW=true
|
||||||
|
#TURN имя пользователя и пароль для аутентификации на TURN сервере (если используется)
|
||||||
|
TURN_PUBLIC_IP=192.168.6.82
|
||||||
|
TURN_USER=user
|
||||||
|
TURN_PASS=pass
|
||||||
|
#Диапазон занимемых TURN сервером портов (tcp/udp)
|
||||||
|
TURN_PORT_RANGE_FROM=40000
|
||||||
|
TURN_PORT_RANGE_TO=50000
|
||||||
39
.gitea/workflows/build.yaml
Normal file
39
.gitea/workflows/build.yaml
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
name: Build G365SFU
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Install Node.js
|
||||||
|
run: |
|
||||||
|
if command -v apt-get &> /dev/null; then
|
||||||
|
sudo apt-get update && sudo apt-get install -y nodejs npm
|
||||||
|
elif command -v brew &> /dev/null; then
|
||||||
|
brew install node
|
||||||
|
fi
|
||||||
|
- name: Checkout code
|
||||||
|
uses: actions/checkout@v6
|
||||||
|
- name: Set up Go
|
||||||
|
uses: actions/setup-go@v4
|
||||||
|
with:
|
||||||
|
go-version: 1.20
|
||||||
|
- name: Build G365SFU
|
||||||
|
run: |
|
||||||
|
make build
|
||||||
|
- name: Deploy to server via SSH
|
||||||
|
uses: appleboy/scp-action@v1
|
||||||
|
with:
|
||||||
|
host: ${{ secrets.SFU_SSH_HOST }}
|
||||||
|
username: ${{ secrets.SFU_SSH_USER }}
|
||||||
|
password: ${{ secrets.SFU_SSH_PASSWORD }}
|
||||||
|
port: ${{ secrets.SFU_SSH_PORT }}
|
||||||
|
source: "build/*"
|
||||||
|
target: ${{ secrets.SFU_DEPLOY_PATH }}
|
||||||
|
strip_components: 1
|
||||||
|
rm: false
|
||||||
|
debug: true
|
||||||
|
flatten: true
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,4 @@
|
|||||||
.env
|
|
||||||
.vscode
|
.vscode
|
||||||
__debug*
|
__debug*
|
||||||
|
build/.env
|
||||||
|
build/g365sfu
|
||||||
5
Makefile
Normal file
5
Makefile
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
.PHONY: build
|
||||||
|
|
||||||
|
build:
|
||||||
|
mkdir -p build
|
||||||
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o build/g365sfu .
|
||||||
18
build/Dockerfile
Normal file
18
build/Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
FROM alpine:3.20
|
||||||
|
|
||||||
|
RUN apk add --no-cache ca-certificates tzdata
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Бинарь должен быть собран заранее в ./build/g365sfu
|
||||||
|
COPY g365sfu /app/g365sfu
|
||||||
|
|
||||||
|
COPY .env /app/.env
|
||||||
|
|
||||||
|
RUN chmod +x /app/g365sfu
|
||||||
|
|
||||||
|
EXPOSE 1001
|
||||||
|
EXPOSE 3478/tcp
|
||||||
|
EXPOSE 3478/udp
|
||||||
|
|
||||||
|
ENTRYPOINT ["/app/g365sfu"]
|
||||||
13
build/docker-compose.yml
Normal file
13
build/docker-compose.yml
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
services:
|
||||||
|
g365sfu:
|
||||||
|
container_name: g365sfu
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
image: g365sfu:latest
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
#Поддерживается только в Linux (на Windows и MacOS нужно использовать bridge сеть и проброс портов, но нельзя пробрасывать большие
|
||||||
|
#диапазоны портов, это может вызывать проблемы с работой Docker)
|
||||||
|
network_mode: host
|
||||||
Reference in New Issue
Block a user