Project

General

Profile

Wiki » History » Version 26

Дмитрий Курнаев, 07/01/2025 07:53 AM

1 1 Дмитрий Курнаев
h1. Инструкция
2 2 Дмитрий Курнаев
3
h2. I - Устанавливаем ОС Ubuntu 22.04
4 3 Дмитрий Курнаев
5
p. Здесь вопросов быть не должно
6 4 Дмитрий Курнаев
7
h2. II - Настройка сервера сигнализации (High-performance backend) для Nextcloud Talk
8 5 Дмитрий Курнаев
9
h3. Введение
10 6 Дмитрий Курнаев
11 9 Дмитрий Курнаев
p. Установка выполнена на ВМ: 4 CPU, 16 GB RAM, 60GB, ОС Ubuntu 22.04 
12 7 Дмитрий Курнаев
Должны быть включены следующие порты:
13
14
    22 (ваш SSH порт)
15
    80 (TCP)
16
    443 (TCP)
17
    3478 (UDP и TCP)
18
19 11 Дмитрий Курнаев
h3. 1. Подготовка системы
20 12 Дмитрий Курнаев
21 15 Дмитрий Курнаев
p. sudo apt update && apt upgrade
22
sudo apt install make protobuf-compiler git python3 docker.io zip unzip
23 16 Дмитрий Курнаев
24
h3. 2.Установка последней версии Go
25 17 Дмитрий Курнаев
26 18 Дмитрий Курнаев
p. 2.1. wget https://go.dev/dl/go1.21.3.linux-amd64.tar.gz - качаем архив
27
28 19 Дмитрий Курнаев
p. 2.2. sha256sum go1.21.3.linux-amd64.tar.gz - проверяем хэш
29 18 Дмитрий Курнаев
30 19 Дмитрий Курнаев
p. 2.3. sudo tar -C /usr/local -xzf go1.21.3.linux-amd64.tar.gz - разворачиваем архив
31 18 Дмитрий Курнаев
32 19 Дмитрий Курнаев
p. 2.4. sudo nano ~/.profile
33 20 Дмитрий Курнаев
34
p. 2.5 export PATH=$PATH:/usr/local/go/bin - правим переменные окружения
35
   export GOPATH=$HOME/goproject
36
   export PATH=$PATH:$GOPATH/bin
37
   source ~/.profile
38
39
p. 2.6. mkdir $HOME/goproject - создаем рабочую директорию
40
41
p. 2.7. go version - проверяем версию
42
43
h3. 3. Настройка NATS сервера
44 21 Дмитрий Курнаев
45
p. 3.1. docker pull nats:latest - стягиваем образ
46
47
p. 3.2. docker run -d --name nats-server -p 4222:4222 -ti nats:latest - запускаем в фоне на порту 4222
48
49 22 Дмитрий Курнаев
h3. 4. Установка Janus
50
51
p. 4.1. sudo apt install janus - ставим
52
53
p. 4.2. systemctl enable janus - добавляем в автозагрузку
54
55
p. 4.3. systemctl status janus - проверям статус
56
57
p. 4.4. openssl rand -hex 8 - генерим ключ
58
59
p. 4.5. sudo nano /etc/janus/janus.jcfg - в разделе NAT находим раскомментим "full_trickle = true" и добавим turn_rest_api_key = <сгенерированый_ранее_ключ>
60
61
p. 4.6. sudo nano /etc/janus/janus.transport.http.jcfg - раскомментим "interface = eth0" и заменим "eth0" на "lo" 
62
63
p. 4.7. sudo nano /etc/janus/janus.transport.websockets.jcfg - раскомментим "interface_ws = eth0" и заменим "eth0" на "lo"
64
65
p. 4.8. sudo systemctl restart janus - рестартуем
66
67
h3. 5. Установка coTURN
68
69 23 Дмитрий Курнаев
p. 5.1. sudo apt install coturn - устанавливаем
70 21 Дмитрий Курнаев
71 23 Дмитрий Курнаев
p. 5.2. systemctl enable coturn - добавляем в автозагрузку
72 21 Дмитрий Курнаев
73 23 Дмитрий Курнаев
p. 5.3. cp /etc/turnserver.conf /etc/turnserver.conf_BAK - бэкапим дефолтную конфигурацию
74 21 Дмитрий Курнаев
75 23 Дмитрий Курнаев
p. 5.4. openssl rand -hex 16 - генерим ключ
76 21 Дмитрий Курнаев
77 23 Дмитрий Курнаев
p. 5.5. sudo nano /etc/turnserver.conf - заменяем содержимое следующим:
78
79
        listening-port=3478
80
        fingerprint
81
        use-auth-secret
82
        static-auth-secret=<key_created_above>
83
        realm=talk.hackerspace.ru
84
        total-quota=100
85
        bps-capacity=0
86
        stale-nonce
87
        no-multicast-peers
88
89 25 Дмитрий Курнаев
p. 5.6. sudo systemctl restart coturn - рестартуем
90 24 Дмитрий Курнаев
91 26 Дмитрий Курнаев
h3. 6. Загрузка сервера сигнализации
92 23 Дмитрий Курнаев
93
94
95 26 Дмитрий Курнаев
96 21 Дмитрий Курнаев
07d33c884ba67d02
97 23 Дмитрий Курнаев
98 1 Дмитрий Курнаев
99 26 Дмитрий Курнаев
47576fe6d8fd27c20361f75b6c4a360
100
101
102
https://github.com/mailru/easyjson/archive/refs/tags/v0.9.0.zip
103
104
google.golang.org/grpc/cmd/protoc-gen-go-grpc
105
106
Hash ключ: 796b0fc8718aff580267d4b1d872a104
107
108
Block ключ: 0a6c3b9959bbccc7a38cb647ee0fce97
109
110
Internal secret (используется для внешних клиентов, таких как сервер записи): 92543f1751347542ef9155c9ad013fdc
111
112
113
Nextcloud облачный секретный ключ: c79c7399d9d866d4f100867198a7be17
114
115
ws://talk.krovelson.ru/apps/spreed/api/socket