Будем устанавливать и настраивать собственный корпоративный сервер обмена текстовыми сообщениями, и даже больше - голосовыми сообщениями и видеосвязи.
И так, приступим.
Тут собственно сам проект -> https://matrix.org/docs/projects/server/synapse.html
У меня сервер будет находится на Ubuntu 16.04.
Для начала установим LEMP, с одним отличием, что вместо MySQL будем использовать PostreSQL. Настройки для matrix-synapse опишу позднее. PHP проверяем, если все ок, то переходим к установке synapse.
https://onedayadmin.sytes.net/lemp-ubuntu-16-04/
https://onedayadmin.sytes.net/postgresql-ubuntu-16-04/
Установка matrix-synapse.
add-apt-repository https://matrix.org/packages/debian/
wget -qO - https://matrix.org/packages/debian/repo-key.asc | sudo apt-key add -
apt-get update
apt-get install matrix-synapse
Нас спросит ввести доменное имя на котором будет наш сервер
systemctl enable matrix-synapse
systemctl start matrix-synapse
Создадим первого пользователя на сервере synapse, без него мы не сможем создавать учетки для пользователей.
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1
nano /etc/matrix-synapse/homeserver.yaml
Находим registration_shared_secret раскоментим и пишем туда сгенерированный пароль
Теперь мы сможем создавать учетки для пользователей нашего сервера.
Если мы хотим включить регистрацию, а не регистрировать всех из консоли, то правим конфигурационный файл.
В качестве базы данных будем использовать postgresql.
Создадим базу и пользователя для Synapse
Cоздание новой роли
sudo -u postgres createuser --interactive synapse
sudo -u postgres psql
ALTER USER synapse WITH ENCRYPTED password 'Password';
CREATE DATABASE synapse ENCODING 'UTF-8' LC_COLLATE 'C' LC_CTYPE 'C' template=template0 OWNER synapse;
Подружим теперь наш matrix-synapse с созданой базой.
apt install python-pip python-psycopg2
sudo -H python -m pip install --upgrade pip
database:
name: psycopg2
args:
user: synapse
password: Password
database: synapse
host: 127.0.0.1
cp_min: 5
cp_max: 10
(обязательно соблюдать пробелы, databases – без пробелов, name и args – один пробел, все остально 2 пробела)
Правим конфиг Nginx
nano /etc/nginx/sites-available/synapse
server {
listen 80;
listen [::]:80;
server_name riot.ddns.net;
rewrite ^/(.*)$ https://riot.ddns.net/$1 permanent;
}
server {
listen [::]:443;
listen 443 ssl;
root /var/www/riot.ddns.net/;
index index.php index.html index.htm index.nginx-debian.html;
server_name riot.ddns.net;
ssl_certificate /etc/letsencrypt/live/riot.ddns.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/riot.ddns.net/privkey.pem;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers "HIGH:!RC4:!aNULL:!MD5:!kEDH";
add_header Strict-Transport-Security 'max-age=604800';
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
location /_matrix {
proxy_pass https://192.168.1.199:8448/_matrix;
}
location ~ /.well-known {
allow all;
}
location ~ /\.ht {
deny all;
}
if ($scheme != "https") {
return 301 https://$host$request_uri;
} # managed by Certbot
}
ln -s /etc/nginx/sites-available/synapse /etc/nginx/sites-enable/synapse
SSL сертификат будем получать от Let'sEncrypt с помощью certbot.
Сайт программы и настройка здесь:
Создадим учетную запись для нашего первого пользователя из консоли (нам уже должна быть доступна регистрация из клиента, можно создать и оттуда).
пишем имя и пароль, а так же выбираем будет или нет админом
Я включил регистрацию поэтому нужна капча.
Заходим https://www.google.com/recaptcha жмем GetreCAPTHA
Регистрируемся и запоминаем ключи
Правим
recaptcha_public_key: "YOUR_PUBLIC_KEY"
recaptcha_private_key: "YOUR_PRIVATE_KEY"
enable_registration_captcha: True
Увеличим размер передаваемых файлов
upload_max_filesize = 30M
post_max_size = 50M
http {
#...
client_max_body_size 30m;
#…
}
Прикручиваем Skype
Synapse может обеспечить пересылку сообщений в Skype. Но это только разработка и на данный момент обмен сообщениями реализован, отсылать файлы можно, но были замечены проблемы, принимать файлы не может, звук и видео не поддерживает.
Нам понадобиться node.js, поэтому приступим к его установке.
cd ~
url -sL https://deb.nodesource.com/setup_9.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
apt-get install nodejs
npm -v
node -v
Установим модуль рабы со Skype
cd /usr/local/src/
git clone https://github.com/matrix-hacks/matrix-puppet-skype.git
cd matrix-puppet-skype
sudo npm install
cp config.sample.json config.json
nano config.json
{
"skype": {
"username": "Login_Skype",
"password": "Password"
},
"registrationPath": "skype-registration.yaml",
"port": 8090,
"bridge": {
"homeserverUrl":"https://riot.ddns.net",
"domain": "riot.ddns.net",
"registration": "skype-registration.yaml"
}
}
Вводим имя и пароль пользователя synapse у которого есть права админа
Источники:
https://serveradmin.ru/nastroyka-chat-servera-matrix-synapse-i-klienta-riot/
https://www.digitalocean.com/community/tutorials/node-js-ubuntu-16-04-ru