Project

General

Profile

Wiki » History » Version 24

Дмитрий Курнаев, 06/30/2025 08:15 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 24 Дмитрий Курнаев
p. 5.6. systemctl restart coturn - рестартуем
90
91 23 Дмитрий Курнаев
92
93
94 21 Дмитрий Курнаев
07d33c884ba67d02
95 23 Дмитрий Курнаев
96
97
47576fe6d8fd27c20361f75b6c4a3609