Создайте чат-сервер, используя Matrix Synapse и Riot на CentOS 7

Matrix - это открытый стандартный протокол связи для децентрализованной связи в реальном времени. Матрица реализована в виде домашних серверов, которые распространяются через Интернет; следовательно, нет единой точки контроля или отказа. Matrix предоставляет RESTful HTTP API для создания и управления серверами распределенного чата, который включает отправку и получение сообщений, приглашение и управление участниками чата, ведение учетных записей пользователей и предоставление расширенных функций чата, таких как VoIP и видеозвонки, и т. Д. Matrix также устанавливает безопасная синхронизация между домашними серверами, которые распределены по всему миру.

Synapse - это реализация домашнего сервера Matrix, написанная командой Matrix. Экосистема Matrix состоит из сети множества федеративных домашних серверов, распределенных по всему миру. Пользователь Matrix использует чат-клиент для подключения к домашнему серверу, который, в свою очередь, подключается к сети Matrix. Homeserver хранит историю чата и информацию для входа данного конкретного пользователя.

Предпосылки

В этом руководстве мы будем использовать в matrix.example.comкачестве имени домена, используемого для Matrix Synapse. Замените все вхождения matrix.example.comсвоим фактическим доменным именем, которое вы хотите использовать для домашнего сервера Synapse.

Обновите базовую систему, используя руководство Как обновить CentOS 7 . После обновления системы перейдите к установке Python.

Установить средства разработки

Для работы Matrix Synapse необходим Python 2.7. Python 2.7 предустановлен во всех экземплярах сервера CentOS. Вы можете проверить установленную версию Python.

python -V

Вы должны получить аналогичный вывод.

[user@vultr ~]$ python -V
Python 2.7.5

Изменение версии Python по умолчанию может привести к поломке менеджера репозитория YUM. Однако, если вам нужна самая последняя версия Python, вы можете выполнить альтернативную установку, не заменяя Python по умолчанию.

Установите пакеты в Development toolsгруппе, которые необходимы для компиляции файлов установщика.

sudo yum groupinstall -y "Development tools"

Установите еще несколько необходимых зависимостей.

sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel 

Установите Python pip. Pip - менеджер зависимостей для пакетов Python.

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py

Установить синапс

Создайте виртуальную среду для вашего приложения Synapse. Виртуальная среда Python используется для создания изолированной виртуальной среды для проекта Python. Виртуальная среда содержит свои собственные установочные каталоги и не разделяет библиотеки с глобальными и другими виртуальными средами.

sudo virtualenv -p python2.7 /opt/synapse

Предоставьте право собственности на каталог текущему пользователю.

sudo chown -R $USER:$USER /opt/synapse/

Теперь активируйте виртуальную среду.

source /opt/synapse/bin/activate

Убедитесь, что у вас последняя версия pipи setuptools.

pip install --upgrade pip 
pip install --upgrade setuptools

Установите последнюю версию Synapse с помощью pip.

pip install https://github.com/matrix-org/synapse/tarball/master

Выполнение вышеуказанной команды займет некоторое время, поскольку она извлекает и устанавливает последнюю версию Synapse и все зависимости из репозитория Github.

Установка и настройка PostgreSQL

Synapse использует SQLite в качестве базы данных по умолчанию. SQLite хранит данные в базе данных, которая хранится в виде простого файла на диске. Использование SQLite очень просто, но не рекомендуется для производства, поскольку оно очень медленное по сравнению с PostgreSQL.

PostgreSQL - это объектно-реляционная база данных. Вам нужно будет добавить репозиторий PostgreSQL в вашу систему, так как приложение недоступно в репозитории YUM по умолчанию.

sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm

Установите сервер базы данных PostgreSQL.

sudo yum -y install postgresql96-server postgresql96-contrib

Инициализируйте базу данных.

sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb

Отредактируйте, /var/lib/pgsql/9.6/data/pg_hba.confчтобы включить аутентификацию на основе MD5.

sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf

Найдите следующие строки и измените peerна trustи idnetна md5.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            idnet
# IPv6 local connections:
host    all             all             ::1/128                 idnet

После обновления конфигурация должна выглядеть следующим образом.

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     trust
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5

Запустите сервер PostgreSQL и включите его автоматический запуск при загрузке.

sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6

Измените пароль для пользователя PostgreSQL по умолчанию.

sudo passwd postgres

Авторизоваться.

sudo su - postgres

Создайте нового пользователя PostgreSQL для Synapse.

createuser synapse

PostgreSQL предоставляет psqlоболочку для выполнения запросов к базе данных. Переключитесь на оболочку PostgreSQL, запустив.

psql

Установите пароль для вновь созданного пользователя для базы данных Synapse.

ALTER USER synapse WITH ENCRYPTED password 'DBPassword';

Замените DBPasswordнадежным паролем и запишите его, так как мы будем использовать его позже. Создайте новую базу данных для базы данных PostgreSQL.

CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;

Выход из psqlоболочки.

\q

Переключиться на sudoпользователя от текущего postgresпользователя.

exit

Вам также необходимо установить пакеты, необходимые для взаимодействия Synapse с сервером базы данных PostgreSQL.

sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2

Конфигурирование Synapse

Для запуска Synapse требуется файл конфигурации. В файле конфигурации хранятся настройки сервера. Переключитесь на виртуальную среду и создайте конфигурацию для Synapse.

source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes

Замените matrix.example.comсвое действительное имя домена и убедитесь, что имя сервера разрешается в IP-адрес вашего экземпляра Vultr. Укажите --report-stats=yes, хотите ли вы, чтобы серверы генерировали отчеты, --report-stats=noи отключите генерацию отчетов и статистики.

Вы должны увидеть похожий вывод.

(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates

По умолчанию homeserver.yamlон настроен на использование базы данных SQLite. Нам нужно изменить его, чтобы использовать базу данных PostgreSQL, которую мы создали ранее.

Редактировать вновь созданный homeserver.yaml.

nano homeserver.yaml

Найдите существующую конфигурацию базы данных, которая использует SQLite3. Закомментируйте строки, как показано ниже. Также добавьте новую конфигурацию базы данных для PostgreSQL. Убедитесь, что вы используете правильные учетные данные базы данных.

# Database configuration
#database:
  # The database engine name
  #name: "sqlite3"
  # Arguments to pass to the engine
  #args:
    # Path to the database
    #database: "/opt/synapse/homeserver.db"


database:
    name: psycopg2
    args:
        user: synapse
        password: DBPassword
        database: synapse
        host: localhost
        cp_min: 5
        cp_max: 10

Регистрация нового пользователя через веб-интерфейс по умолчанию отключена. Чтобы включить регистрацию, вы можете установить enable_registrationна True. Вы также можете установить секретный регистрационный ключ, который позволяет любому, кто имеет секретный ключ, зарегистрироваться, даже если регистрация отключена.

enable_registration: False

registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"

Сохраните файл и выйдите из редактора. Теперь вам нужно будет зарегистрировать вашего первого пользователя. Однако прежде чем вы сможете зарегистрировать нового пользователя, вам необходимо сначала запустить приложение.

source /opt/synapse/bin/activate && cd /opt/synapse
synctl start

Вы должны увидеть следующие строки.

2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')

Зарегистрировать нового пользователя Matrix.

register_new_matrix_user -c homeserver.yaml https://localhost:8448

Вы должны увидеть следующее.

(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.

Наконец, прежде чем вы сможете использовать Homeserver, вам нужно разрешить порт 8448 через брандмауэр. Порт 8448используется в качестве защищенного порта федерации. Домашние серверы используют этот порт для безопасного общения друг с другом. Вы также можете использовать встроенный клиент веб-чата Matrix через этот порт.

sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload

Теперь вы можете войти в клиент веб-чата Matrix, зайдя в https://matrix.example.com:8448ваш любимый браузер. Вы увидите предупреждение о SSL-сертификате, так как используемые сертификаты являются самозаверяющими. Мы не будем использовать этот клиент веб-чата, так как он устарел и больше не поддерживается. Просто попробуйте проверить, можете ли вы войти в систему, используя только что созданную учетную запись пользователя.

Настройка сертификатов Let's Encrypt

Вместо того чтобы использовать самозаверяющий сертификат для защиты порта федерации, мы можем использовать Let's Encrypt бесплатный SSL. Бесплатный SSL Let's Encrypt можно получить через официальный клиент Let's Encrypt под названием Certbot.

Установите Certbot.

sudo yum -y install certbot

Настройте параметры брандмауэра, чтобы разрешить стандарт HTTPи HTTPSпорты через брандмауэр. Certbot должен установить HTTPсоединение для проверки полномочий домена.

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

Чтобы получить сертификаты от Let's Encrypt CA, вы должны убедиться, что домен, для которого вы хотите создать сертификаты, направлен на сервер. Если это не так, внесите необходимые изменения в записи DNS своего домена и дождитесь распространения DNS, прежде чем снова делать запрос сертификата. Certbot проверяет полномочия домена перед предоставлением сертификатов.

Теперь используйте встроенный веб-сервер в Certbot для генерации сертификатов для вашего домена.

sudo certbot certonly --standalone -d matrix.example.com

Сгенерированные сертификаты, вероятно, будут храниться в /etc/letsencrypt/live/matrix.example.com/. Сертификат SSL будет сохранен как, fullchain.pemа закрытый ключ - как privkey.pem.

Скопируйте сертификаты.

sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem

sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem

Вам нужно будет изменить путь к сертификатам и ключам из homeserver.yamlфайла. Отредактируйте конфигурацию.

nano /opt/synapse/homeserver.yaml

Найдите следующие строки и измените путь.

tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"

# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"

Сохраните файл и выйдите из редактора. Перезапустите сервер Synapse, чтобы изменения вступили в силу.

source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart

Срок действия сертификатов Let's Encrypt истекает через 90 дней, поэтому рекомендуется настроить автоматическое обновление сертификатов с помощью заданий cron. Cron - это системный сервис, который используется для периодических задач.

Создайте новый сценарий для обновления сертификатов и скопируйте обновленные сертификаты в каталог Synapse.

sudo nano /opt/renew-letsencypt.sh  

Заполните файл.

#!/bin/sh

/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem

Предоставить разрешение на исполнение.

sudo chmod +x /opt/renew-letsencypt.sh

Откройте файл задания cron.

sudo crontab -e

Добавьте следующую строку в конец файла.

30 5 * * 1 /opt/renew-letsencypt.sh

Вышеуказанная работа cron будет выполняться каждый понедельник в 5:30. Если срок действия сертификата истекает, он автоматически обновляет их.

Теперь вы можете посетить https://matrix.example.com:8448. Вы увидите, что перед подключением нет предупреждения SSL.

Настройте Nginx с помощью Let's Encrypt

Помимо защищенного порта федерации 8448, Synapse также прослушивает незащищенный порт клиента 8008. Теперь мы настроим Nginx как обратный прокси-сервер для приложения Synapse.

sudo yum -y install nginx

Создайте новый файл конфигурации.

sudo nano /etc/nginx/conf.d/synapse.conf

Заполните файл следующим содержанием.

server {
    listen 80;
    server_name matrix.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name matrix.example.com;

    ssl_certificate           /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/matrix.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    access_log    /var/log/nginx/synapse.access.log;

    location /_matrix {

      proxy_pass          http://localhost:8008;
      proxy_set_header X-Forwarded-For $remote_addr;

    }
  }

Перезапустите и включите автоматический запуск Nginx во время загрузки.

sudo systemctl restart nginx
sudo systemctl enable nginx

Наконец, вы можете проверить, доступен ли Synapse через обратный прокси.

curl https://matrix.example.com/_matrix/key/v2/server/auto

Вы должны получить аналогичный вывод.

[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}

Настройка службы Systemd

Для управления процессом сервера Synapse рекомендуется использовать службу Systemd. Использование Systemd обеспечит автоматический запуск сервера при запуске системы и сбоях.

Создайте новый файл службы Systemd.

sudo nano /etc/systemd/system/matrix-synapse.service

Заполните файл.

[Unit]
Description=Matrix Synapse service
After=network.target

[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse

[Install]
WantedBy=multi-user.target

Теперь вы можете быстро запустить сервер Synapse.

sudo systemctl start matrix-synapse

Чтобы остановить или перезапустить сервер, используйте следующие команды.

sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse

Вы можете проверить статус услуги.

sudo systemctl status matrix-synapse

Использование Riot

Matrix Synapse server теперь установлен и настроен на вашем сервере. Поскольку встроенный веб-клиент для Matrix устарел, вы можете выбирать из множества клиентских приложений, доступных для чата. Riot - самый популярный чат-клиент, который доступен практически на всех платформах. Вы можете использовать размещенную версию клиента веб-чата Riot или разместить ее копию на своем собственном сервере. Помимо этого, вы также можете использовать настольные и мобильные чаты Riot, которые доступны для Windows, Mac, Linux, IOS и Android.

Если вы хотите разместить свою собственную копию веб-клиента Riot, вы можете прочитать далее инструкции по установке Riot на ваш сервер. Для размещенных, настольных и мобильных клиентов вы можете использовать свое имя пользователя и пароль для входа непосредственно на ваш домашний сервер. Просто выберите my Matrix IDиз выпадающего меню Sign Inопции и укажите имя пользователя и пароль, которые вы создали при регистрации нового пользователя. Нажмите Custom serverи используйте доменное имя вашего экземпляра Synapse. Поскольку мы уже настроили Nginx, мы можем использовать его https://matrix.example.comкак домашний сервер и https://matrix.orgкак URL-адрес сервера идентификации.

Пример входа в Riot

Настройте Riot на вашем собственном сервере.

Riot также имеет открытый исходный код и может свободно размещаться на вашем собственном сервере. Не требует никакой базы данных или зависимостей. Поскольку у нас уже работает сервер Nginx, мы можем разместить его на том же сервере.

Домен или поддомен, которые вы используете для Synapse и Riot, должны отличаться, чтобы избежать межсайтовых сценариев. Однако вы можете использовать два поддоменов одного домена. В этом руководстве мы будем использовать riot.example.comв качестве домена для приложения Riot. Замените все вхождения riot.example.comфактическим доменом или поддоменом для приложения Riot.

Скачайте Riot на свой сервер.

cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz

Вы всегда можете найти ссылку на последнюю версию на Riot's Github .

Распакуйте архив.

sudo tar -xzf riot-v*.tar.gz

Переименуйте каталог для удобства работы.

sudo mv riot-v*/ riot/

Поскольку мы уже установили Certbot, мы можем генерировать сертификаты напрямую. Убедитесь, что используемый вами домен или поддомен направлен на сервер.

sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com

Сгенерированные сертификаты, вероятно, будут храниться в /etc/letsencrypt/live/riot.example.com/каталоге.

Создайте виртуальный хост для приложения Riot.

sudo nano /etc/nginx/conf.d/riot.conf

Заполните файл.

server {
    listen 80;
    server_name riot.example.com;
    return 301 https://$host$request_uri;
}
server {

    listen 443;
    server_name riot.example.com;

    ssl_certificate           /etc/letsencrypt/live/riot.example.com/fullchain.pem;
    ssl_certificate_key       /etc/letsencrypt/live/riot.example.com/privkey.pem;

    ssl on;
    ssl_session_cache  builtin:1000  shared:SSL:10m;
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
    ssl_prefer_server_ciphers on;

    root /opt/riot;
    index index.html index.htm;

    location / {
            try_files $uri $uri/ =404;
    }

    access_log    /var/log/nginx/riot.access.log;

  }

Скопируйте пример файла конфигурации.

sudo cp /opt/riot/config.sample.json /opt/riot/config.json

Теперь отредактируйте файл конфигурации, чтобы внести несколько изменений.

sudo nano /opt/riot/config.json

Найдите следующие строки.

"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",

Замените значение URL-адреса домашнего сервера по умолчанию на URL-адрес вашего сервера Matrix. В качестве URL-адреса идентификационного сервера можно использовать параметр по умолчанию или указать его значение для идентификационного сервера Matrix https://matrix.org.

"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",

Сохраните файл и выйдите. Предоставьте право собственности на файлы пользователю Nginx.

sudo chown -R nginx:nginx /opt/riot/

Перезапустите Nginx.

sudo systemctl restart nginx

Вы можете получить доступ к Riot на https://riot.example.com. Теперь вы можете войти, используя имя пользователя и пароль, которые вы создали ранее. Вы можете подключиться, используя сервер по умолчанию, так как мы уже изменили сервер Matrix по умолчанию для нашего приложения.

Теперь у вас есть домашний сервер Matrix Synapse. У вас также есть размещенная копия Riot, которую вы можете использовать для отправки сообщения другим людям, используя их Matrix ID, адрес электронной почты или номер мобильного телефона. Начните с создания комнаты чата на своем сервере и пригласите своих друзей в Matrix присоединиться к комнате чата, которую вы создали.



Leave a Comment

Как установить Anchor CMS на CentOS 7 LAMP VPS

Как установить Anchor CMS на CentOS 7 LAMP VPS

Используете другую систему? Anchor CMS - это сверхпростая и чрезвычайно легкая бесплатная система управления контентом (CMS) с открытым исходным кодом.

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Как установить Backdrop CMS 1.8.0 на CentOS 7 LAMP VPS

Используете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Настройте Magento на CentOS 6

Настройте Magento на CentOS 6

Если вы хотите разместить свой инвентарь в Интернете или просто магазин технических аксессуаров, Magento - отличное решение для электронной коммерции в Интернете. Это статья

Как установить AirSonic на CentOS 7

Как установить AirSonic на CentOS 7

Используете другую систему? AirSonic - это бесплатный и потоковый сервер с открытым исходным кодом. В этом уроке я проведу вас через процесс развертывания

Как установить OrangeScrum на CentOS 7

Как установить OrangeScrum на CentOS 7

OrangeScrum - это бесплатный инструмент управления проектами с открытым исходным кодом, который широко используется в малом и среднем бизнесе. В этой статье я проведу вас через

Как установить и настроить OrientDB Community Edition для CentOS 7

Как установить и настроить OrientDB Community Edition для CentOS 7

OrientDB - это мультимодельная СУБД NoSQL с открытым исходным кодом нового поколения. Благодаря поддержке нескольких моделей данных OrientDB может обеспечить большую функциональность и гибкость в

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Как установить Vtiger CRM с открытым исходным кодом на CentOS 7

Vtiger CRM - это популярное приложение для управления взаимоотношениями с клиентами, которое может помочь предприятиям увеличить продажи, обеспечить обслуживание клиентов и увеличить прибыль. я

Как установить MaraDNS на CentOS 6

Как установить MaraDNS на CentOS 6

MaraDNS - это легкая, но надежная программа с открытым исходным кодом для DNS-сервера. По сравнению с другими приложениями того же типа, такими как ISC BIND, PowerDNS и djbdns

Установка Netdata в CentOS 7

Установка Netdata в CentOS 7

Используете другую систему? Netdata - восходящая звезда в области мониторинга показателей системы в режиме реального времени. По сравнению с другими инструментами того же рода, Netdata:

Как установить Starbound Server в CentOS 7

Как установить Starbound Server в CentOS 7

Используете другую систему? В этом уроке я расскажу, как настроить сервер Starbound в CentOS 7. Предварительные условия Вы должны иметь эту игру на себе

Кластеризация RabbitMQ на CentOS 7

Кластеризация RabbitMQ на CentOS 7

RabbitMQ - это брокер сообщений с открытым исходным кодом, который поддерживает AMQP, STOMP и другие коммуникационные технологии. Широко используется в корпоративных приложениях

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Настройка многопользовательского сервера SA-MP San Andreas на CentOS 6

Добро пожаловать в другой учебник Vultr. Здесь вы узнаете, как установить и запустить сервер SAMP. Это руководство было написано для CentOS 6. Предварительные условия

Установите Elgg на CentOS 7

Установите Elgg на CentOS 7

Используете другую систему? Elgg - это движок социальных сетей с открытым исходным кодом, который позволяет создавать социальные среды, такие как социальные сети кампуса и

Установка Bolt CMS на CentOS 7

Установка Bolt CMS на CentOS 7

Bolt - это CMS с открытым исходным кодом, написанная на PHP. Исходный код Bolts размещен на GitHub. Это руководство покажет вам, как установить Bolt CMS на новую CentOS 7 Vult.

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Как установить и использовать Apache PredictionIO для машинного обучения в CentOS 7

Традиционные подходы к анализу данных невозможно использовать, когда наборы данных достигают определенного размера. Современная альтернатива анализу огромных массивов данных, которые я

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Как установить Elasticsearch на экземпляре Vultr CentOS 7 Server

Elasticsearch - популярный движок полнотекстового поиска и аналитики с открытым исходным кодом. Благодаря своей универсальности, масштабируемости и простоте использования, Elasticsearch широко используется

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Развертывание Kubernetes с помощью Kubeadm на CentOS 7

Обзор Эта статья призвана помочь вам в кратчайшие сроки запустить и запустить кластер Kubernetes с помощью kubeadm. Это руководство будет развертывать два сервера, на

Настройте Sails.js для разработки на CentOS 7

Настройте Sails.js для разработки на CentOS 7

Используете другую систему? Введение Sails.js - это инфраструктура MVC для Node.js, аналогичная Ruby on Rails. Это делает для разработки современных приложений вер

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Как установить PufferPanel (бесплатная панель управления Minecraft) на CentOS 7

Введение В этом руководстве мы будем устанавливать PufferPanel на нашем Vultr VPS. PufferPanel - это бесплатная панель управления с открытым исходным кодом для управления вами.

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше