在CentOS 7上使用Matrix Synapse和Riot创建聊天服务器

Matrix是用于分散式实时通信的开放标准通信协议。Matrix被实现为分布在Internet上的家庭服务器;因此,没有任何控制或故障点。Matrix提供了一个RESTful HTTP API,用于创建和管理分布式聊天服务器,包括发送和接收消息,邀请和管理聊天室成员,维护用户帐户以及提供高级聊天功能(例如VoIP和视频通话等)。Matrix还建立了一个全球分布的家庭服务器之间的安全同步。

Synapse是由Matrix团队编写的Matrix家用服务器的实现。Matrix生态系统由遍布全球的许多联合家庭服务器网络组成。Matrix用户使用聊天客户端连接到家庭服务器,该家庭服务器又连接到Matrix网络。家庭服务器存储该特定用户的聊天记录和登录信息。

先决条件

在本教程中,我们将使用matrix.example.comMatrix Synapse作为域名。将所有出现的替换为matrix.example.com要用于Synapse主服务器的实际域名。

使用指南如何更新CentOS 7更新基本系统。系统更新后,继续安装Python。

安装开发工具

Matrix Synapse需要Python 2.7才能工作。在所有CentOS服务器实例中预装了Python 2.7。您可以检查已安装的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

请确保您有最新版本的pipsetuptools

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

使用pip安装最新版本的Synapse。

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

找到以下行,并改变peertrustidnetmd5

# 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

为Synapse创建一个新的PostgreSQL用户。

createuser synapse

PostgreSQL提供了psql在数据库上运行查询的外壳。通过运行切换到PostgreSQL Shell。

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生成配置。

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为您的实际域名,并确保服务器名称可解析为Vultr实例的IP地址。提供--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

默认情况下,从Web界面注册新用户是禁用的。要启用注册,您可以设置enable_registrationTrue。您还可以设置一个秘密注册密钥,即使禁用了注册,该密钥也允许任何人注册拥有该密钥的人。

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 Web聊天客户端。

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

现在,您可以https://matrix.example.com:8448通过喜爱的浏览器登录Matrix网络聊天客户端。由于使用的证书是自签名的,因此您将看到有关SSL证书的警告。我们不会使用此网络聊天客户端,因为它已经过时且不再维护。只需尝试检查您是否可以使用刚刚创建的用户帐户登录。

设置让我们加密证书

可以使用“让我们加密免费的SSL”代替使用自签名证书保护联盟端口的安全。我们可以通过名为Certbot的官方Let's Encrypt客户端获得免费的SSL。

安装Certbot。

sudo yum -y install certbot

调整防火墙设置,以允许标准HTTPHTTPS端口通过防火墙。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中的内置Web服务器为您的域生成证书。

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

让我们加密证书的有效期限为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 AM运行。如果证书到期,它将自动续订它们。

现在您可以访问https://matrix.example.com:8448。您将看到连接前没有SSL警告。

让我们加密来设置Nginx

除了安全的联合端口外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服务文件。

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

使用防暴

Matrix Synapse服务器现在已在您的服务器上安装和配置。由于Matrix的内置Web客户端已过时,因此您可以从各种可用于聊天的客户端应用程序中进行选择。Riot是最受欢迎的聊天客户端,几乎所有平台上都可以使用。您可以使用Riot的网络聊天客户端的托管版本,也可以在自己的服务器上托管其副本。除此之外,您还可以使用Riot的桌面和移动聊天客户端,它们可用于Windows,Mac,Linux,IOS和Android。

如果您希望托管自己的Riot Web客户端副本,则可以进一步阅读以获取在服务器上安装Riot的说明。对于托管的台式机和移动客户端,您可以使用用户名和密码直接登录到家庭服务器。只需my Matrix IDSign In选项的下拉菜单中进行选择,然后提供您在注册新用户期间创建的用户名和密码即可。单击,Custom server然后使用您的Synapse实例的域名。由于我们已经配置了Nginx,因此我们可以仅用https://matrix.example.com作Home服务器和https://matrix.orgIdentity Server URL。

防暴登录示例

在您自己的服务器上设置防暴。

Riot也是开源的,可以免费托管在您自己的服务器上。它不需要任何数据库或依赖项。由于我们已经在运行Nginx服务器,因此我们可以将其托管在同一服务器上。

您用于Synapse和Riot的域或子域必须不同,以避免跨站点脚本编写。但是,您可以使用同一域的两个子域。在本教程中,我们将riot.example.com用作Riot应用程序的域。用riot.example.comRiot应用程序的实际域或子域替换所有出现的。

在服务器上下载Riot。

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

您始终可以在Riot的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的值替换为Matrix服务器的URL。对于身份服务器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

如何在CentOS 7上安装Oxwall

如何在CentOS 7上安装Oxwall

Oxwall是一个开源社交网络软件平台,可用于免费构建自定义社交网站(SNS)。在这篇文章中,

如何在CentOS 7上设置vsFTPd

如何在CentOS 7上设置vsFTPd

FTP是用于通过Internet传输文件的有用协议,本指南将向您展示如何设置vsFTPd(非常安全的文件传输协议守护程序)o

使用Nethogs监视网络带宽使用情况

使用Nethogs监视网络带宽使用情况

在本教程中,我们将介绍在CentOS 6x x64上安装和使用nethogs的过程。nethogs是一种网络监视工具,它允许Networ

如何在CentOS 7上安装BoltWire CMS

如何在CentOS 7上安装BoltWire CMS

使用其他系统?简介BoltWire是一个用PHP编写的免费,轻量级的内容管理系统。与大多数其他内容管理人员相比

在CentOS 6上设置SA-MP San Andreas多人服务器

在CentOS 6上设置SA-MP San Andreas多人服务器

欢迎来到另一个Vultr教程。在这里,您将学习如何安装和运行SAMP服务器。本指南是为CentOS 6编写的。先决条件

使用Etckeeper进行/ etc的版本控制

使用Etckeeper进行/ etc的版本控制

简介/ etc /目录在Linux系统运行中起着至关重要的作用。其原因是因为几乎每个系统配置

如何在CentOS 7上安装Microweber

如何在CentOS 7上安装Microweber

使用其他系统?Microweber是一个开放源代码的拖放式CMS和在线商店。Microweber源代码托管在GitHub上。本指南将向您展示

如何在CentOS 7上安装SonarQube

如何在CentOS 7上安装SonarQube

使用其他系统?SonarQube是用于质量系统开发的开源工具。它是用Java编写的,并且支持多个数据库。它提供

如何在CentOS 7上使用Mosh进行远程服务器管理

如何在CentOS 7上使用Mosh进行远程服务器管理

使用其他系统?Mosh是Mobile Shell的缩写,是一种新兴的远程终端应用程序,旨在提供更好的连接和使用

如何在CentOS 7上安装MoinMoin

如何在CentOS 7上安装MoinMoin

MoinMoin是一个使用Python编写的基于文件系统的开源Wiki引擎。如今,MoinMoin已广泛用于开源社区。许多供应商

在CentOS 7上安装H2O Web服务器

在CentOS 7上安装H2O Web服务器

H2O是新一代HTTP服务器,它对所有当前使用的Web服务器都具有出色的,功能齐全的HTTP / 2实现。使用H2O作为您的Web服务器

如何在Debian,CentOS和FreeBSD上使用Sudo

如何在Debian,CentOS和FreeBSD上使用Sudo

在Linux和Unix系统管理员中,使用sudo用户访问服务器并在root级执行命令是一种非常普遍的做法。使用泡沫

如何在Ubuntu 16.10上安装Countly Analytics

如何在Ubuntu 16.10上安装Countly Analytics

使用其他系统?Countly是一个开源Web /移动分析和营销平台。它具有许多用于从Web收集数据的功能

如何在CentOS 7上安装MODX CMS和Nginx

如何在CentOS 7上安装MODX CMS和Nginx

MODX是一个用PHP编写的免费开放源内容管理系统。它使用MySQL或MariaDB来存储其数据库。MODX专为满足以下条件的企业而设计:

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

如何在CentOS 7 LAMP VPS上安装Lychee 3.1相册

使用其他系统?Lychee 3.1相册是一种简单,灵活,免费和开源的照片管理工具,可在VPS服务器上运行。安装

如何在CentOS 7上安装ERPNext开源ERP

如何在CentOS 7上安装ERPNext开源ERP

使用其他系统?ERP或企业资源计划是用于管理核心业务流程的企业应用程序套件。ERPNext是免费的

如何在CentOS 7 LAMP VPS上安装Paste 2.1

如何在CentOS 7 LAMP VPS上安装Paste 2.1

使用其他系统?Paste 2.1是一个简单,灵活,免费和开源的pastebin应用程序,用于存储代码,文本等。最初是

如何在CentOS 7上安装Seafile Server

如何在CentOS 7上安装Seafile Server

使用其他系统?Seafile(社区版本)是一个免费和开源的文件同步和共享解决方案,类似于ownCloud。机智

如何在CentOS 7上安装Kolab组件

如何在CentOS 7上安装Kolab组件

使用其他系统?Kolab Groupware是一个免费的基于Web的开源组件软件。它的功能包括电子邮件通信,事件

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

如何在CentOS 7 LAMP VPS上安装Omeka Classic 2.4 CMS

使用其他系统?Omeka Classic 2.4 CMS是一个免费的开源数字发布平台和用于共享数字内容的内容管理系统(CMS)

AI 能否應對越來越多的勒索軟件攻擊?

AI 能否應對越來越多的勒索軟件攻擊?

勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根

ReactOS:這是 Windows 的未來嗎?

ReactOS:這是 Windows 的未來嗎?

ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

通過 WhatsApp 桌面應用程序 24*7 保持聯繫

Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+

人工智能如何將流程自動化提升到新的水平?

人工智能如何將流程自動化提升到新的水平?

閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。

macOS Catalina 10.15.4 補充更新引發的問題多於解決

macOS Catalina 10.15.4 補充更新引發的問題多於解決

最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

大數據的13個商業數據提取工具

什麼是日誌文件系統,它是如何工作的?

什麼是日誌文件系統,它是如何工作的?

我們的計算機以稱為日誌文件系統的有組織的方式存儲所有數據。這是一種有效的方法,可以讓計算機在您點擊搜索時立即搜索和顯示文件。 https://wethegeek.com/?p=94116&preview=true

技術奇點:人類文明的遙遠未來?

技術奇點:人類文明的遙遠未來?

隨著科學的快速發展,接管了我們的大量工作,我們陷入無法解釋的奇點的風險也在增加。閱讀,奇點對我們意味著什麼。

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

洞察 26 種大數據分析技術:第 1 部分

2021 年人工智能對醫療保健的影響

2021 年人工智能對醫療保健的影響

過去幾十年,醫療保健領域的人工智能取得了巨大飛躍。因此,醫療保健中人工智能的未來仍在日益增長。