Створіть сервер чату за допомогою Matrix Synapse і Riot на CentOS 7

Matrix – це відкритий стандартний протокол зв’язку для децентралізованого спілкування в реальному часі. Matrix реалізовано як домашні сервери, які поширюються через Інтернет; отже, немає єдиної точки контролю чи відмови. Matrix надає API RESTful HTTP для створення та керування розподіленими серверами чату, що включає надсилання та отримання повідомлень, запрошення та керування учасниками чат-кімнати, підтримку облікових записів користувачів та надання розширених функцій чату, таких як VoIP та відеодзвінки тощо. Matrix також встановлює безпечна синхронізація між домашніми серверами, які розподілені по всьому світу.

Synapse — це реалізація домашнього сервера Matrix, написана командою Matrix. Екосистема Matrix складається з мережі багатьох об’єднаних домашніх серверів, розподілених по всьому світу. Користувач Matrix використовує клієнт чату для підключення до домашнього сервера, який, у свою чергу, підключається до мережі Matrix. Homeserver зберігає історію чату та інформацію для входу цього конкретного користувача.

Передумови

  • Примірник сервера Vultr CentOS 7.
  • Користувач sudo .

У цьому підручнику ми будемо використовувати 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

Створіть віртуальне середовище для вашої програми 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

Replace matrix.example.com with your actual domain name and make sure that the server name is resolvable to the IP address of your Vultr instance. Provide --report-stats=yes if you want the servers to generate the reports, provide --report-stats=no to disable the generation of reports and statistics.

You should see a similar output.

(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

By default, the homeserver.yaml is configured to use a SQLite database. We need to modify it to use the PostgreSQL database we have created earlier.

Edit the newly created homeserver.yaml.

nano homeserver.yaml

Find the existing database configuration which uses SQLite3. Comment out the lines as shown below. Also, add the new database configuration for PostgreSQL. Make sure that you use the correct database credentials.

# 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

Registration of a new user from a web interface is disabled by default. To enable registration, you can set enable_registration to True. You can also set a secret registration key, which allows anyone to register who has the secret key, even if registration is disabled.

enable_registration: False

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

Save the file and exit from the editor. Now you will need to register your first user. Before you can register a new user, though, you will need to start the application first.

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

You should see the following lines.

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')

Register a new Matrix user.

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

You should see the following.

(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.

Finally, before you can use the Homeserver, you will need to allow port 8448 through the Firewall. Port 8448 is used as the secured federation port. Homeservers use this port to communicate with each other securely. You can also use the built-in Matrix web chat client through this port.

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

You can now log in to the Matrix web chat client by going to https://matrix.example.com:8448 through your favorite browser. You will see a warning about the SSL certificate as the certificates used are self-signed. We will not use this web chat client as it is outdated and not maintained anymore. Just try to check if you can log in using the user account you just created.

Setting up Let's Encrypt Certificates

Instead of using a self-signed certificate for securing federation port, we can use Let's Encrypt free SSL. Let's Encrypt free SSL can be obtained through the official Let's Encrypt client called Certbot.

Install Certbot.

sudo yum -y install certbot

Adjust your firewall setting to allow the standard HTTP and HTTPS ports through the firewall. Certbot needs to make an HTTP connection to verify the domain authority.

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

To obtain certificates from Let's Encrypt CA, you must ensure that the domain for which you wish to generate the certificates is pointed towards the server. If it is not, then make the necessary changes to the DNS records of your domain and wait for the DNS to propagate before making the certificate request again. Certbot checks the domain authority before providing the certificates.

Now use the built-in web server in Certbot to generate the certificates for your domain.

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

The generated certificates are likely to be stored in /etc/letsencrypt/live/matrix.example.com/. The SSL certificate will be stored as fullchain.pem and the private key will be stored as privkey.pem.

Copy the certificates.

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

You will need to change the path to the certificates and keys from the homeserver.yaml file. Edit the configuration.

nano /opt/synapse/homeserver.yaml

Find the following lines and modify the path.

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

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

Save the file and exit from the editor. Restart the Synapse server so that the changes can take effect.

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

Let's Encrypt certificates are due to expire in 90 days, so it is recommended that you setup auto renewal for the certificates using cron jobs. Cron is a system service which is used to run periodic tasks.

Create a new script to renew certificates and copy the renewed certificates to the Synapse directory.

sudo nano /opt/renew-letsencypt.sh  

Populate the file.

#!/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

Provide the execution permission.

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

Open the cron job file.

sudo crontab -e

Add the following line at the end of the file.

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

The above cron job will run every Monday at 5:30 AM. If the certificate is due to expire, it will automatically renew them.

Now you can visit https://matrix.example.com:8448. You will see that there is no SSL warning before connection.

Setup Nginx With Let's Encrypt

Apart from the secured federation port 8448, Synapse also listens to the unsecured client port 8008. We will now configure Nginx as a reverse proxy to the Synapse application.

sudo yum -y install nginx

Create a new configuration file.

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

Populate the file with the following content.

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;

    }
  }

Restart and enable Nginx to automatically start at boot time.

sudo systemctl restart nginx
sudo systemctl enable nginx

Finally, you can verify if Synapse can be accessed through the reverse proxy.

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

You should get similar output.

[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"}}}

Setting up the Systemd Service

It is recommended to use the Systemd service to manage the Synapse server process. Using Systemd will ensure that the server is automatically started on system startup and failures.

Create a new Systemd service file.

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

Populate the file.

[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

Now you can quickly start the Synapse server.

sudo systemctl start matrix-synapse

To stop or restart the server using following commands.

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

You can check the status of service.

sudo systemctl status matrix-synapse

Using Riot

Matrix Synapse server is now installed and configured on your server. As the built-in web client for Matrix is outdated, you can choose from the variety of the client applications available for chat. Riot is the most popular chat client, which is available on almost all platforms. You can use the hosted version of Riot's web chat client, or you can also host a copy of it on your own server. Apart from this, you can also use Riot's desktop and mobile chat clients, which are available for Windows, Mac, Linux, IOS and Android.

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

Приклад входу в Riot

Налаштуйте Riot на власному сервері.

Riot також є відкритим вихідним кодом і безкоштовний для розміщення на вашому власному сервері. Для цього не потрібні ні база даних, ні залежності. Оскільки у нас уже запущений сервер Nginx, ми можемо розмістити його на тому самому сервері.

The domain or subdomain you are using for Synapse and Riot must be different to avoid cross-site scripting. However, you can use two subdomains of the same domain. In this tutorial, we will be using riot.example.com as the domain for the Riot application. Replace all occurrence of riot.example.com with your actual domain or subdomain for the Riot application.

Завантажте Riot на свій сервер.

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

Ви завжди можете знайти посилання на останню версію на Github Riot .

Розпакуйте архів.

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, електронну пошту або номер мобільного телефону. Почніть зі створення кімнати чату на своєму сервері та запросіть своїх друзів на Matrix приєднатися до кімнати чату, яку ви створили.


Встановіть Plesk на CentOS 7

Встановіть Plesk на CentOS 7

Використання іншої системи? Plesk — це власна панель керування веб-хостом, яка дозволяє користувачам адмініструвати свої персональні та/або клієнтські веб-сайти, бази даних

Як встановити Squid Proxy на CentOS

Як встановити Squid Proxy на CentOS

Squid — популярна безкоштовна програма для Linux, яка дозволяє створювати веб-проксі для переадресації. У цьому посібнику ви дізнаєтеся, як встановити Squid на CentOS, щоб перетворити вас

Як встановити Lighttpd (LLMP Stack) на CentOS 6

Як встановити Lighttpd (LLMP Stack) на CentOS 6

Вступ Lighttpd — це форк Apache, який має набагато меншу ресурсомісткість. Він легкий, звідси його назва, і досить простий у використанні. Встановити

Налаштування статичної мережі та IPv6 на CentOS 7

Налаштування статичної мережі та IPv6 на CentOS 7

VULTR нещодавно вніс зміни на свою сторону, і тепер усе має працювати нормально з коробки з увімкненим NetworkManager. Якщо ви бажаєте вимкнути

Змінення Icinga2 для використання моделі Master/Client на CentOS 6 або CentOS 7

Змінення Icinga2 для використання моделі Master/Client на CentOS 6 або CentOS 7

Icinga2 — це потужна система моніторингу, і при використанні в моделі «майстер-клієнт» вона може замінити потребу в перевірках моніторингу на основі NRPE. Майстер-клієнт

Як встановити Apache Cassandra 3.11.x на CentOS 7

Як встановити Apache Cassandra 3.11.x на CentOS 7

Використання іншої системи? Apache Cassandra — це безкоштовна система керування базами даних NoSQL з відкритим вихідним кодом, яка розроблена для забезпечення масштабованості, високої

Як встановити Microweber на CentOS 7

Як встановити Microweber на CentOS 7

Використання іншої системи? Microweber — це CMS та інтернет-магазин із відкритим вихідним кодом. Вихідний код Microweber розміщено на GitHub. Цей посібник покаже вам

Як встановити Vanilla Forum на CentOS 7

Як встановити Vanilla Forum на CentOS 7

Використання іншої системи? Vanilla forum — це програма з відкритим вихідним кодом, написана на PHP. Це повністю настроюваний, простий у використанні та підтримує зовнішній вигляд

Як встановити Mattermost 4.1 на CentOS 7

Як встановити Mattermost 4.1 на CentOS 7

Використання іншої системи? Mattermost — це автономна альтернатива службі обміну повідомленнями Slack SAAS з відкритим кодом. Іншими словами, з Mattermost ви бл

Lets Encrypt на Plesk

Lets Encrypt на Plesk

Панель керування Plesk має дуже гарну інтеграцію для Lets Encrypt. Lets Encrypt є одним із єдиних постачальників SSL, які надають сертифікати повністю

Дозволяє шифрувати на cPanel

Дозволяє шифрувати на cPanel

Lets Encrypt — це центр сертифікації, який надає безкоштовні сертифікати SSL. cPanel створив чітку інтеграцію, щоб ви і ваш клієнт

Як встановити Concrete5 на CentOS 7

Як встановити Concrete5 на CentOS 7

Використання іншої системи? Concrete5 — це CMS з відкритим вихідним кодом, яка пропонує багато відмінних і корисних функцій, які допомагають редакторам легко створювати вміст.

Як встановити Review Board на CentOS 7

Як встановити Review Board на CentOS 7

Використання іншої системи? Review Board — це безкоштовний інструмент з відкритим кодом для перегляду вихідного коду, документації, зображень та багато іншого. Це веб-програмне забезпечення

Налаштуйте автентифікацію HTTP за допомогою Nginx на CentOS 7

Налаштуйте автентифікацію HTTP за допомогою Nginx на CentOS 7

У цьому посібнику ви дізнаєтеся, як налаштувати автентифікацію HTTP для веб-сервера Nginx, що працює на CentOS 7. Вимоги Щоб почати, вам знадобиться

Як встановити GoAccess на CentOS 7

Як встановити GoAccess на CentOS 7

Використання іншої системи? GoAccess — це аналізатор веб-журналів з відкритим вихідним кодом. Ви можете використовувати його для аналізу журналів у режимі реального часу в терміналі або

Як встановити YOURLS на CentOS 7

Як встановити YOURLS на CentOS 7

YOURLS (Your Own URL Shortener) — програма для скорочення URL-адрес і аналізу даних із відкритим вихідним кодом. У цій статті ми розглянемо процес встановлення

Як встановити та налаштувати ArangoDB на CentOS 7

Як встановити та налаштувати ArangoDB на CentOS 7

Використання іншої системи? Вступ ArangoDB — це відкрита база даних NoSQL з гнучкою моделлю даних для документів, графіків і ключів-значень. це є

Використання Etckeeper для контролю версій /etc

Використання Etckeeper для контролю версій /etc

Вступ Каталог /etc/ відіграє важливу роль у функціонуванні системи Linux. Причина цього в тому, що майже кожна конфігурація системи

Чому ви повинні використовувати SSHFS? Як підключити віддалену файлову систему з SSHFS на CentOS 6

Чому ви повинні використовувати SSHFS? Як підключити віддалену файлову систему з SSHFS на CentOS 6

Багато системних адміністраторів керують великою кількістю серверів. Якщо потрібно отримати доступ до файлів на різних серверах, увійти на кожен окремо бл

Налаштування сервера Half Life 2 на CentOS 6

Налаштування сервера Half Life 2 на CentOS 6

У цьому посібнику буде описано процес встановлення ігрового сервера Half Life 2 на систему CentOS 6. Крок 1: Встановлення необхідних умов Щоб налаштувати ou

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

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

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

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

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

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

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

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

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

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

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

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