Signal 群組音視頻服務器配置指南
私有化 Signal 服務器部署完成群組音視頻功能,特記錄如下 以免遺忘。
服務器組件
services:
dynamodb:
image: "docker.1ms.run/amazon/dynamodb-local:2.5.4"
container_name: calling-dynamodb
ulimits:
nproc: 65535
nofile:
soft: 65535
hard: 65535
working_dir: /home/dynamodblocal
command:
# Use -inMemory for performance and because the data is temporary.
-jar DynamoDBLocal.jar -inMemory
networks:
- signal
calling-bootstrap:
depends_on:
- dynamodb
image: registry.cn-hangzhou.aliyuncs.com/mysignal/signal-calling-service-bootstrap:1.0.0
container_name: calling-bootstrap
environment:
AWS_ACCESS_KEY_ID: DummyAccessKey
AWS_SECRET_ACCESS_KEY: DummyPassword
networks:
- signal
calling-frontend:
depends_on:
- dynamodb
- calling-bootstrap
- calling-backend
image: registry.cn-hangzhou.aliyuncs.com/mysignal/signal-calling-service-calling-frontend:1.0.1
container_name: calling-frontend
ulimits:
nproc: 65535
nofile:
soft: 65535
hard: 65535
deploy:
resources:
limits:
cpus: '2.0'
memory: 5G
environment:
- RUST_LOG=calling_frontend=trace
entrypoint: calling_frontend
networks:
- signal
command:
- --region
- "us-west1"
- --authentication-key
- "HEX ENCODED AUTHENTICATION KEY"
- --zkparams
- "AFwg8fW39ph ...... +0TW2bVTBg=="
- --version
- "1"
- --max-clients-per-call
- "50"
- --cleanup-interval-ms
- "10000"
- --regional-url-template
- "https://sfu.signal.xxx.cn"
- --calling-server-url
- "http://calling-backend:8080"
- --storage-table
- "Rooms"
- --storage-endpoint
- "http://dynamodb:8000"
- --storage-region
- "us-west-1"
- --internal-api-port
- "8100"
calling-backend:
image: registry.cn-hangzhou.aliyuncs.com/mysignal/signal-calling-service-calling-backend:1.0.4
container_name: calling-backend
ulimits:
nproc: 65535
nofile:
soft: 65535
hard: 65535
deploy:
resources:
limits:
cpus: '4.0'
memory: 5G
ports:
- "10000:10000/tcp"
- "10000:10000/udp"
networks:
- signal
command:
- --ice-candidate-ip
- "127.0.0.1/your server public ip"
- --ice-candidate-port-tcp
- "10000"
- --inactivity-timeout-secs
- "60"
- --diagnostics-interval-secs
- "10"
- --approved-users-persistence-url
- "http://calling-frontend:8100/v1/call-link-approvals"
- --remove-call-records-base-url
- "http://calling-frontend:8100/v2/conference"
networks:
signal:
external: true
配置 nginx ,增加一個 sfu.conf 配置如下:
server {
listen 80;
listen 443 ssl;
http2 on;
server_name sfu.signal.xxx.cn;
access_log /var/log/nginx/sfu.access.log main;
ssl_certificate /etc/nginx/conf.d/certs/fullchain.cer;
ssl_certificate_key /etc/nginx/conf.d/certs/server.key;
location / {
proxy_pass http://calling-frontend:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
并加域名 sfu.signal.xxx.cn 指向目標服務器 IP,即可。
效果演示
發起通話與接收:

群聊音視頻效果

如果你也需要在公司內網部署 signal,可以聯系我~ +signal: pfoxh.25 或者 tg: pfoxh25

浙公網安備 33010602011771號