Выгрузка F7cloud_HPB
This commit is contained in:
commit
673cb90bd0
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# Конфиг с секретами — не выгружать в git
|
||||||
|
server.conf
|
||||||
|
|
||||||
|
# Резервные копии и временные файлы
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~
|
||||||
|
.DS_Store
|
||||||
33
README.md
Normal file
33
README.md
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
# HPB — Nextcloud Spreed Signaling (f7cloud)
|
||||||
|
|
||||||
|
Сервисы для стека Nextcloud Talk: signaling, Janus, NATS, coTURN.
|
||||||
|
|
||||||
|
## Сервисы
|
||||||
|
|
||||||
|
| Сервис | Описание |
|
||||||
|
|--------|----------|
|
||||||
|
| **signaling.service** | Nextcloud Talk signaling server |
|
||||||
|
| **janus.service** | Janus WebRTC gateway (MCU) |
|
||||||
|
| **nats-server.service** | NATS — обмен сообщениями |
|
||||||
|
| **coturn.service** | coTURN — STUN/TURN для WebRTC |
|
||||||
|
|
||||||
|
## Установка unit-файлов
|
||||||
|
|
||||||
|
```bash
|
||||||
|
sudo cp systemd/*.service /etc/systemd/system/
|
||||||
|
sudo systemctl daemon-reload
|
||||||
|
sudo systemctl enable signaling janus nats-server coturn
|
||||||
|
sudo systemctl start signaling janus nats-server coturn
|
||||||
|
```
|
||||||
|
|
||||||
|
## Конфигурация
|
||||||
|
|
||||||
|
- `server.conf` — конфиг signaling (создаётся вручную, в репозиторий не входит из соображений безопасности).
|
||||||
|
- Пример структуры конфига: см. `server.conf.example` (заполните секреты на сервере).
|
||||||
|
|
||||||
|
## Зависимости конфигов
|
||||||
|
|
||||||
|
- **signaling**: `/etc/f7cloud-spreed-signaling/server.conf`
|
||||||
|
- **nats-server**: `/etc/nats-server.conf`
|
||||||
|
- **coturn**: `/etc/turnserver.conf`
|
||||||
|
- **janus**: конфиг по умолчанию (часто `/etc/janus/janus.jcfg`)
|
||||||
43
server.conf.example
Normal file
43
server.conf.example
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
# Пример конфигурации signaling.
|
||||||
|
# Скопируйте как server.conf и подставьте свои секреты.
|
||||||
|
# server.conf добавлен в .gitignore и в репозиторий не попадает.
|
||||||
|
|
||||||
|
[server]
|
||||||
|
ratelimitRequestsPerSecond = 0
|
||||||
|
ratelimitBurst = 0
|
||||||
|
|
||||||
|
[http]
|
||||||
|
listen = 127.0.0.1:8080
|
||||||
|
|
||||||
|
[app]
|
||||||
|
debug = false
|
||||||
|
|
||||||
|
[sessions]
|
||||||
|
hashkey = YOUR_32_OR_64_BYTE_HEX_HASHKEY
|
||||||
|
blockkey = YOUR_16_24_OR_32_BYTE_HEX_BLOCKKEY
|
||||||
|
|
||||||
|
[clients]
|
||||||
|
internalsecret = YOUR_INTERNAL_CLIENT_SECRET
|
||||||
|
|
||||||
|
[backend]
|
||||||
|
backends = nextcloud-backend-0
|
||||||
|
# allowall = true # только для тестов
|
||||||
|
secret = YOUR_NEXTCLOUD_BACKEND_SECRET
|
||||||
|
timeout = 10
|
||||||
|
connectionsperhost = 8
|
||||||
|
|
||||||
|
[nextcloud-backend-0]
|
||||||
|
url = https://your-nextcloud.example
|
||||||
|
secret = YOUR_NEXTCLOUD_BACKEND_SECRET
|
||||||
|
|
||||||
|
[nats]
|
||||||
|
url = nats://localhost:4222
|
||||||
|
|
||||||
|
[mcu]
|
||||||
|
type = janus
|
||||||
|
url = ws://127.0.0.1:8188
|
||||||
|
|
||||||
|
[turn]
|
||||||
|
apikey = YOUR_TURN_API_KEY
|
||||||
|
secret = YOUR_TURN_SHARED_SECRET
|
||||||
|
servers = turn:your-turn.example:9991?transport=udp,turn:your-turn.example:9991?transport=tcp
|
||||||
16
systemd/coturn.service
Normal file
16
systemd/coturn.service
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
[Unit]
|
||||||
|
Description=coTURN STUN/TURN Server
|
||||||
|
Documentation=man:coturn(1) man:turnadmin(1) man:turnserver(1)
|
||||||
|
After=network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
User=turnserver
|
||||||
|
Group=turnserver
|
||||||
|
Type=notify
|
||||||
|
ExecStart=/usr/bin/turnserver -c /etc/turnserver.conf --pidfile=
|
||||||
|
Restart=on-failure
|
||||||
|
InaccessibleDirectories=/home
|
||||||
|
PrivateTmp=yes
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
13
systemd/janus.service
Normal file
13
systemd/janus.service
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Janus WebRTC gateway
|
||||||
|
After=network.target
|
||||||
|
Documentation=https://janus.conf.meetecho.com/docs/index.html
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
Type=forking
|
||||||
|
ExecStart=/usr/bin/janus --disable-colors --daemon --log-stdout
|
||||||
|
Restart=on-failure
|
||||||
|
LimitNOFILE=65536
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
15
systemd/nats-server.service
Normal file
15
systemd/nats-server.service
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
[Unit]
|
||||||
|
Description=NATS Server
|
||||||
|
After=network.target ntp.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
PrivateTmp=true
|
||||||
|
Type=simple
|
||||||
|
ExecStart=/usr/sbin/nats-server -c /etc/nats-server.conf
|
||||||
|
ExecReload=/bin/kill -s HUP $MAINPID
|
||||||
|
ExecStop=/bin/kill -s SIGINT $MAINPID
|
||||||
|
User=nats
|
||||||
|
Group=nats
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
43
systemd/signaling.service
Normal file
43
systemd/signaling.service
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
[Unit]
|
||||||
|
Description=Nextcloud Talk signaling server
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
ExecStart=/usr/bin/signaling --config /etc/f7cloud-spreed-signaling/server.conf
|
||||||
|
User=_signaling
|
||||||
|
Group=_signaling
|
||||||
|
Restart=on-failure
|
||||||
|
|
||||||
|
# Makes sure that /etc/signaling is owned by this service
|
||||||
|
ConfigurationDirectory=signaling
|
||||||
|
|
||||||
|
# Hardening - see systemd.exec(5)
|
||||||
|
CapabilityBoundingSet=
|
||||||
|
ExecPaths=/usr/bin/signaling /usr/lib /usr/lib64
|
||||||
|
LockPersonality=yes
|
||||||
|
MemoryDenyWriteExecute=yes
|
||||||
|
NoExecPaths=/
|
||||||
|
NoNewPrivileges=yes
|
||||||
|
PrivateDevices=yes
|
||||||
|
PrivateTmp=yes
|
||||||
|
PrivateUsers=yes
|
||||||
|
ProcSubset=pid
|
||||||
|
ProtectClock=yes
|
||||||
|
ProtectControlGroups=yes
|
||||||
|
ProtectHome=yes
|
||||||
|
ProtectHostname=yes
|
||||||
|
ProtectKernelLogs=yes
|
||||||
|
ProtectKernelModules=yes
|
||||||
|
ProtectKernelTunables=yes
|
||||||
|
ProtectProc=invisible
|
||||||
|
ProtectSystem=strict
|
||||||
|
RemoveIPC=yes
|
||||||
|
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
|
||||||
|
RestrictNamespaces=yes
|
||||||
|
RestrictRealtime=yes
|
||||||
|
RestrictSUIDSGID=yes
|
||||||
|
SystemCallArchitectures=native
|
||||||
|
SystemCallFilter=@system-service
|
||||||
|
SystemCallFilter=~ @privileged
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
Loading…
Reference in New Issue
Block a user