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
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -1,3 +1,4 @@
|
||||
.env
|
||||
.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