CentOS 7 서버에 CyberPanel을 설치하고 구성하는 방법
다른 시스템을 사용하십니까? 소개 CyberPanel은 오픈 소스이며 OpenLiteSpeed를 사용하는 최초의 제어판 중 하나입니다. 무슨 티
매트릭스는 분산 형 실시간 통신을위한 개방형 표준 통신 프로토콜입니다. 매트릭스는 인터넷을 통해 배포되는 홈 서버로 구현됩니다. 따라서 단일 제어 지점이나 실패가 없습니다. Matrix는 메시지 송수신, 채팅방 회원 초대 및 관리, 사용자 계정 유지 관리, VoIP 및 비디오 통화와 같은 고급 채팅 기능 제공을 포함하는 분산 채팅 서버 생성 및 관리를위한 RESTful HTTP API를 제공합니다. 전세계에 분산되어있는 홈 서버 간의 안전한 동기화
Synapse는 Matrix 팀이 작성한 Matrix 홈 서버의 구현입니다. 매트릭스 에코 시스템은 전세계에 분산 된 많은 연합 홈 서버의 네트워크로 구성됩니다. Matrix 사용자는 채팅 클라이언트를 사용하여 홈 서버에 연결 한 다음 Matrix 네트워크에 연결합니다. 홈 서버는 특정 사용자의 채팅 기록 및 로그인 정보를 저장합니다.
이 자습서에서는 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
pip를 사용하여 최신 버전의 Synapse를 설치하십시오.
pip install https://github.com/matrix-org/synapse/tarball/master
위 명령은 최신 버전의 Synapse 및 모든 종속 항목을 Github 리포지토리에서 가져와 설치하므로 실행하는 데 약간의 시간이 걸립니다.
시냅스는 SQLite를 기본 데이터베이스로 사용합니다. SQLite는 디스크에 플랫 파일로 유지되는 데이터베이스에 데이터를 저장합니다. SQLite를 사용하는 것은 매우 간단하지만 PostgreSQL에 비해 속도가 느리므로 프로덕션에는 권장되지 않습니다.
PostgreSQL은 객체 관계형 데이터베이스 시스템입니다. 응용 프로그램을 기본 YUM 리포지토리에서 사용할 수 없으므로 시스템에 PostgreSQL 리포지토리를 추가해야합니다.
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
Synapse에 대한 새 PostgreSQL 사용자를 작성하십시오.
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에 대한 구성을 생성하십시오.
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
웹 인터페이스에서 새 사용자 등록은 기본적으로 비활성화되어 있습니다. 등록을 활성화하려면로 설정할 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')
새로운 매트릭스 사용자를 등록하십시오.
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.
마지막으로 홈 서버를 사용하려면 방화벽을 통해 포트 8448을 허용해야합니다. 포트 8448
는 보안 페더레이션 포트로 사용됩니다. 홈 서버는이 포트를 사용하여 서로 안전하게 통신합니다. 이 포트를 통해 내장 Matrix 웹 채팅 클라이언트를 사용할 수도 있습니다.
sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload
https://matrix.example.com:8448
즐겨 찾는 브라우저 를 통해 Matrix 웹 채팅 클라이언트에 로그인 할 수 있습니다 . 사용 된 인증서가 자체 서명되어 있으므로 SSL 인증서에 대한 경고가 표시됩니다. 이 웹 채팅 클라이언트는 오래되어 더 이상 유지 관리되지 않으므로 사용하지 않습니다. 방금 만든 사용자 계정을 사용하여 로그인 할 수 있는지 확인하십시오.
페더레이션 포트 보안을 위해 자체 서명 된 인증서를 사용하는 대신 Let 's Encrypt free SSL을 사용할 수 있습니다. 무료 SSL 암호화는 Certbot이라는 공식 Let 's Encrypt 클라이언트를 통해 얻을 수 있습니다.
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
인증서 암호화는 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
크론 작업 파일을여십시오.
sudo crontab -e
파일 끝에 다음 줄을 추가하십시오.
30 5 * * 1 /opt/renew-letsencypt.sh
위의 cron 작업은 매주 월요일 5:30에 실행됩니다. 인증서가 만료 될 예정이면 자동으로 갱신됩니다.
이제 방문 할 수 있습니다 https://matrix.example.com:8448
. 연결하기 전에 SSL 경고가 없다는 것을 알 수 있습니다.
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 용 웹 클라이언트는 구식이므로 채팅에 사용할 수 있는 다양한 클라이언트 응용 프로그램 중에서 선택할 수 있습니다 . Riot 은 거의 모든 플랫폼에서 사용할 수있는 가장 인기있는 채팅 클라이언트입니다. 호스팅 된 버전의 Riot 웹 채팅 클라이언트를 사용하거나 자신의 서버에서 사본을 호스팅 할 수도 있습니다. 이 외에도 Windows, Mac, Linux, IOS 및 Android에서 사용 가능한 Riot의 데스크탑 및 모바일 채팅 클라이언트를 사용할 수도 있습니다.
자신의 Riot 웹 클라이언트 사본을 호스팅하려면 서버에 Riot 설치 지침을 자세히 읽으십시오. 호스팅 된 데스크톱 및 모바일 클라이언트의 경우 사용자 이름과 비밀번호를 사용하여 홈 서버에 직접 로그인 할 수 있습니다. 그냥 선택 my Matrix ID
의 드롭 다운 메뉴에서 Sign In
옵션을 선택하고 새 사용자의 등록 과정에서 생성 한 사용자 이름과 암호를 입력합니다. 를 클릭하고 Custom server
Synapse 인스턴스의 도메인 이름을 사용하십시오. Nginx를 이미 구성 했으므로 https://matrix.example.com
홈 서버 및 https://matrix.org
Identity 서버 URL로 사용할 수 있습니다 .
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의 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로 바꾸십시오. Identity Server URL의 경우 기본 옵션을 사용하거나 해당 값을 Matrix Identity Server (즉,)에 제공 할 수 있습니다 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 Synapse 홈 서버가 시작되어 실행 중입니다. 또한 매트릭스 ID, 이메일 또는 휴대폰 번호를 사용하여 다른 사람에게 메시지를 보내는 데 사용할 수있는 Riot의 호스팅 사본도 있습니다. 서버에서 대화방을 만들어 시작하고 Matrix에서 친구를 초대하여 만든 대화방에 참여하십시오.
다른 시스템을 사용하십니까? 소개 CyberPanel은 오픈 소스이며 OpenLiteSpeed를 사용하는 최초의 제어판 중 하나입니다. 무슨 티
Lets Chat은 소규모 팀을위한 자체 호스팅 메시징 서비스를 제공하도록 설계된 오픈 소스 채팅 응용 프로그램입니다. 채팅이 NodeJS 및 MongoDB를 기반으로 함
다른 시스템을 사용하십니까? 전제 조건 Vultr CentOS 7 서버 인스턴스. sudo 사용자 1 단계 : 시스템 업데이트 먼저 시스템 서버를 업데이트하십시오.
다른 시스템을 사용하십니까? Netdata는 실시간 시스템 메트릭 모니터링 분야에서 떠오르는 별입니다. 같은 종류의 다른 도구 인 Netdata와 비교하면 :
DreamFactory는 모든 데이터베이스를 RESTful API 플랫폼으로 전환 할 수있는 오픈 소스 프로그램입니다. DreamFactory는 다양한 플랫폼에 배포 할 수 있습니다. 티에서
이 튜토리얼에서는 Just Cause 2 멀티 플레이어 서버를 설정하는 방법을 배웁니다. 전제 조건 시작하기 전에 시스템이 완전히 업데이트되었는지 확인하십시오
Leanote는 Golang으로 작성된 Evernote의 무료, 경량 및 오픈 소스 대안입니다. 사용자 경험을 염두에두고 Leanote는 사용자에게 재치를 제공합니다.
다른 시스템을 사용하십니까? 이 튜토리얼에서는 CentOS 7에서 Starbound 서버를 설정하는 방법을 설명하겠습니다. 전제 조건이 게임을 소유해야합니다
Go (Golang이라고도 함)는 Google에서 개발 한 정적으로 형식이 지정된 컴파일 된 C 유사 프로그래밍 언어입니다. 단순성과 다목적 성으로 인해 b가되었습니다.
Django는 웹 응용 프로그램을 작성하는 데 널리 사용되는 Python 프레임 워크입니다. Django를 사용하면 휠을 재발 명하지 않고도 응용 프로그램을 더 빠르게 구축 할 수 있습니다. 당신이 원하는 경우
다른 Vultr 튜토리얼에 오신 것을 환영합니다. 여기에서는 SAMP 서버를 설치하고 실행하는 방법에 대해 설명합니다. 이 안내서는 CentOS 6 용으로 작성된 것입니다. 전제 조건
다른 시스템을 사용하십니까? TextPattern CMS 4.6.2는 간단하고 유연하며 무료이며 오픈 소스 CMS (콘텐츠 관리 시스템)로 웹 디자이너는
다른 시스템을 사용하십니까? Elgg는 캠퍼스 소셜 네트워크와 같은 소셜 환경을 만들 수있는 오픈 소스 소셜 네트워킹 엔진입니다.
다른 시스템을 사용하십니까? 소개 Sails.js는 Ruby on Rails와 비슷한 Node.js 용 MVC 프레임 워크입니다. 그것은 현대적인 응용 프로그램을 개발할 수 있습니다
소개이 자습서에서는 Vultr VPS에 PufferPanel을 설치하십시오. PufferPanel은 사용자를 관리하기위한 무료 오픈 소스 제어판입니다.
소개이 튜토리얼은 NGINX 또는 Apache로 PHP 5 *를 7로 업데이트하는 방법을 다룹니다. 전제 조건 시작하기 전에 저장소를 추가해야합니다.
MoinMoin은 Python으로 작성된 오픈 소스 파일 시스템 기반 위키 엔진입니다. 오늘날 MoinMoin은 오픈 소스 커뮤니티에서 널리 사용됩니다. 많은 공급 업체
다른 시스템을 사용하십니까? SonarQube는 품질 시스템 개발을위한 오픈 소스 도구입니다. Java로 작성되었으며 여러 데이터베이스를 지원합니다. 그것은 제공
이 기사는 Vultr에서 템플릿으로 제공되는 서버 운영 체제에 대한 간략한 개요를 제공합니다. CentOS CentOS는 RHEL의 공개 소스 버전입니다 (Re
phpPgAdmin은 널리 사용되는 PostgreSQL 관리 도구입니다. 직관적 인 웹 인터페이스에서 PostgreSQL 데이터베이스를 관리하는 데 사용할 수 있습니다. 이 기사에서 우리는
랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.
오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.
Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능
인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.
최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.
빅데이터의 13가지 상용 데이터 추출 도구
우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true
과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.
26가지 빅 데이터 분석 기법에 대한 통찰: 1부
의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.