AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?
랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.
Taiga는 프로젝트 관리를위한 무료 오픈 소스 응용 프로그램입니다. 다른 프로젝트 관리 도구와 달리 Taiga는 점진적인 민첩한 접근 방식을 사용하여 프로젝트 개발을 관리합니다. Taiga는 매우 강력하고 완전히 사용자 정의 가능한 응용 프로그램입니다. Taiga의 백엔드는 Django 프레임 워크를 사용하여 Python으로 작성되었습니다. 프론트 엔드는 CoffeeScript 및 AngularJS 프레임 워크를 사용하여 JavaScript로 작성됩니다. Taiga에는 프로젝트 협업, Kanban 보드, 버그 추적,보고, 시간 추적, 백 로그, 위키 등의 기능이 포함되어 있습니다.
이 학습서에서는 taiga.example.com
서버를 가리키는 도메인 이름으로 사용 합니다. 모든 발생을 taiga.example.com
실제 도메인 이름으로 바꾸십시오.
Ubuntu 16.04 업데이트 방법 안내서를 사용하여 기본 시스템을 업데이트하십시오 . 시스템이 업데이트되면 PostgreSQL 설치를 진행하십시오.
PostgreSQL은 객체 관계형 데이터베이스 시스템이며 안정성과 속도로 유명합니다. Taiga는 PostgreSQL을 사용하여 데이터베이스를 저장합니다. 시스템에 PostgreSQL 저장소를 추가하십시오.
echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
GPG 서명 키를 가져 와서 패키지 목록을 업데이트하십시오.
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt update
PostgreSQL 데이터베이스 서버를 설치하십시오.
sudo apt -y install postgresql
PostgreSQL 서버를 시작하고 부팅시 자동으로 시작되도록합니다.
sudo systemctl start postgresql
sudo systemctl enable postgresql
기본 PostgreSQL 사용자의 비밀번호를 변경하십시오.
sudo passwd postgres
PostgreSQL 사용자로 로그인하십시오.
sudo su - postgres
Taiga에 대한 새 PostgreSQL 사용자를 작성하십시오.
createuser taiga
PostgreSQL은 psql
데이터베이스에서 쿼리를 실행하기 위한 셸을 제공 합니다. PostgreSQL 셸로 전환하십시오.
psql
Taiga 데이터베이스에 대해 새로 작성된 사용자의 비밀번호를 설정하십시오.
ALTER USER taiga WITH ENCRYPTED password 'DBPassword';
DBPassword
안전한 비밀번호로 교체하십시오 . Taiga 설치를위한 새 데이터베이스를 작성하십시오.
CREATE DATABASE taiga OWNER taiga;
psql
쉘 에서 나갑니다.
\q
sudo
사용자로 전환하십시오 .
exit
Taiga에는 Python 버전 3.4 이상이 필요하며 Python 3.5는 Ubuntu 16.04 배포판에 사전 설치되어 제공됩니다. 필요한 패키지를 몇 개 더 설치하십시오.
sudo apt -y install python3 python3-pip python3-dev python3-dev virtualenvwrapper
Python 가상 환경은 Python 프로젝트를위한 격리 된 가상 환경을 만드는 데 사용됩니다. 가상 환경에는 고유 한 설치 디렉토리가 있으며 전역 및 기타 가상 환경과 라이브러리를 공유하지 않습니다. Python 3이 성공적으로 설치되면 버전을 확인할 수 있습니다.
python3 -V
다음을 볼 수 있습니다.
user@vultr:~$ python3 -V
Python 3.5.2
pip
종속성 관리자 애플리케이션 인 Upgrade .
sudo pip3 install --upgrade setuptools pip
또한 종속성을 컴파일하는 데 필요한 빌드 도구를 몇 개 설치하십시오.
sudo apt -y install build-essential binutils-doc autoconf flex bison libjpeg-dev libfreetype6-dev zlib1g-dev libzmq3-dev libgdbm-dev libncurses5-dev automake libtool libffi-dev curl git tmux gettext
Taiga는 RabbitMQ를 사용하여 메시지 큐를 처리합니다. RabbitMQ를 사용하려면 Erlang 라이브러리가 작동해야합니다. Erlang을 설치하십시오.
sudo apt -y install erlang
RabbitMQ 저장소를 추가하십시오.
echo 'deb http://www.rabbitmq.com/debian/ stable main' | sudo tee /etc/apt/sources.list.d/rabbitmq.list
RabbitMQ GPG 서명 키를 가져옵니다.
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -
저장소 정보를 업데이트하십시오.
sudo apt update
RabbitMQ를 설치하십시오.
sudo apt -y install rabbitmq-server
RabbitMQ 서버를 시작하고 활성화하십시오.
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server
RabbitMQ 사용자 및 vhost를 추가하십시오. 또한 호스트를 통해 사용자에게 권한을 제공하십시오.
sudo rabbitmqctl add_user taiga StrongMQPassword
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
StrongMQPassword
안전한 비밀번호 로 교체하십시오 .
Taiga의 프론트 엔드를 컴파일하려면 Node.js 버전 7 이상이 필요합니다. Node.js 버전 8 저장소를 추가하십시오.
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
Node.js와 pwgen
유틸리티를 설치하십시오 .
sudo apt install -y nodejs pwgen npm
pwgen
나중에 강력한 비밀 문자열을 생성하는 데 사용됩니다. CoffeeScript 프레임 워크로 작성된 Taiga 파일을 컴파일하는 데 사용되는 CoffeeScript를 설치하십시오.
sudo npm install -g coffee-script gulp
Taiga 프로세스가 권한이없는 사용자로 실행되도록 Taiga의 새 시스템 사용자를 추가하십시오.
sudo adduser taiga
sudo su - taiga
참고 : 이제부터는 사용자 taiga
로 다시 전환하라는 메시지가 표시 될 때까지 모든 명령을 권한이없는 사용자로 실행해야합니다 sudo
.
로그 파일을 저장할 새 디렉토리를 작성하십시오.
mkdir -p ~/logs
GitHub에서 Taiga 백엔드 저장소를 복제하고 안정적인 최신 분기를 체크 아웃하십시오.
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable
이제 Python 3을 사용하여 Taiga를위한 새로운 가상 환경을 만듭니다.
mkvirtualenv -p /usr/bin/python3 taiga
pip3 install --upgrade setuptools
를 사용하여 필요한 Python 종속성을 설치하십시오 pip
.
pip3 install -r requirements.txt
필요한 초기 데이터로 데이터베이스를 채우십시오.
python3 manage.py migrate --noinput
python3 manage.py loaddata initial_user
python3 manage.py loaddata initial_project_templates
python3 manage.py compilemessages
python3 manage.py collectstatic --noinput
위의 명령은 PostgreSQL 데이터베이스에 데이터를 씁니다. Taiga는 또한 제품 평가에 유용한 데모 또는 샘플 데이터도 제공합니다. 샘플 데이터를 설치하려면 다음을 실행하십시오.
python3 manage.py sample_data
참고 : 샘플 데이터 설치는 선택 사항이며 제품을 평가하기위한 것입니다.
Taiga 백엔드의 구성 파일을 작성하기 전에 비밀 문자열을 생성해야합니다. 이 문자열은 세션 데이터를 암호화하는 데 사용됩니다.
64 자의 임의 문자열을 생성하십시오.
pwgen -s -1 64
출력을 임의의 문자열로보아야합니다.
(taiga) taiga@vultr:~/taiga-back$ pwgen -s -1 64
fhDfyYVJ4EH3tvAyUzmfWSeCXuf5sy5EEWrMQPaf9t3JSFrpiL6yvUEOWsFOTscP
Taiga 백엔드에 대한 새 구성 파일을 작성하십시오.
nano ~/taiga-back/settings/local.py
파일을 채우면 다음 코드가 표시됩니다.
from .common import *
MEDIA_URL = "https://taiga.example.com/media/"
STATIC_URL = "https://taiga.example.com/static/"
SITES["front"]["scheme"] = "https"
SITES["front"]["domain"] = "taiga.example.com"
SECRET_KEY = "Generated_Secret_Key"
DEBUG = False
PUBLIC_REGISTER_ENABLED = True
DEFAULT_FROM_EMAIL = "[email protected]"
SERVER_EMAIL = DEFAULT_FROM_EMAIL
#CELERY_ENABLED = True
EVENTS_PUSH_BACKEND = "taiga.events.backends.rabbitmq.EventsPushBackend"
EVENTS_PUSH_BACKEND_OPTIONS = {"url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga"}
# Uncomment and populate with proper connection parameters
# for enable email sending. EMAIL_HOST_USER should end by @domain.tld
#EMAIL_BACKEND = "django.core.mail.backends.smtp.EmailBackend"
#EMAIL_USE_TLS = False
#EMAIL_HOST = "mail.example.com"
#EMAIL_HOST_USER = "[email protected]"
#EMAIL_HOST_PASSWORD = "SMTPPassword"
#EMAIL_PORT = 25
# Uncomment and populate with proper connection parameters
# for enable github login/singin.
#GITHUB_API_CLIENT_ID = "yourgithubclientid"
#GITHUB_API_CLIENT_SECRET = "yourgithubclientsecret"
example domain name
위 코드에서를 실제 코드 로 바꾸십시오 . 또한 Generated_Secret_Key
실제 비밀 키와 StrongMQPassword
Taiga 메시지 큐 사용자의 실제 비밀번호로 바꾸십시오 . SMTP 서버가 준비되어 있고 이메일 전송 기능을 즉시 사용하려면 이메일 옵션의 주석을 해제하고 적절한 값을 설정하십시오. 메일 서버가 준비되지 않은 경우 지금 이메일 기능 설정을 건너 뛰고이 구성 파일에서 나중에 설정할 수 있습니다.
GitHub 로그인을 활성화하려면 GitHub에서 애플리케이션을 생성하고 API 클라이언트 ID 및 클라이언트 시크릿을 제공하십시오.
Taiga 백엔드를 시작할 수 있는지 즉시 확인하려면 내장 된 Django 서버를 실행하십시오.
workon taiga
python manage.py runserver
서버가 성공적으로 시작된 경우 다음 출력이 표시됩니다.
(taiga) taiga@vultr:~/taiga-back$ workon taiga
(taiga) taiga@vultr:~/taiga-back$ python manage.py runserver
Trying import local.py settings...
Trying import local.py settings...
Performing system checks...
System check identified no issues (0 silenced).
October 28, 2017 - 10:29:38
Django version 1.10.6, using settings 'settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
API에 액세스 할 수 있는지 확인하려면 다른 터미널 세션을 열고 다음을 실행하십시오.
curl http://127.0.0.1:8000/api/v1/
API 호출에서 비슷한 결과가 반환되는 것을 볼 수 있습니다.
user@vultr:~$ curl http://127.0.0.1:8000/api/v1/
{"webhooks": "http://127.0.0.1:8000/api/v1/webhooks", "invitations": "http://127.0.0.1:8000/api/v1/invitations", "severities": "http://127.0.0.1:8000/api/v1/severities", "memberships": "http://127.0.0.1:8000/api/v1/memberships", "user-storage": "http://127.0.0.1:8000/api/v1/user-storage", "epics/(?P<resource_id>\\d+)/voters": "http://127.0.0.1:8000/api/v1/epics/(?P<resource_id>\\d+)/voters", "wiki": "http://127.0.0.1:8000/api/v1/wiki", "priorities": "http://127.0.0.1:8000/api/v1/priorities", "userstories/attachments": "http://127.0.0.1:8000/api/v1/userstories/attachments", "epics/(?P<epic>[^/.]+)/related_userstories": "http://127.0.0.1:8000/api/v1/epics/(?P<epic>[^/.]+)/related_userstories", "timeline/user": "http://127.0.0.1:8000/api/v1/timeline/user", "userstories/(?P<resource_id>\\d+)/voters": "http://127.0.0.1:8000/api/v1/userstories/(?P<resource_id>\\d+)/voters", "wiki-links": "http://127.0.0.1:8000/api/v1/wiki-links", "epics/attachments": "http://127.0.0.1:8000/api/v1/epics/attachments", "issues/custom-attributes-values": "http://127.0.0.1:8000/api/v1/issues/custom-attributes-values
" ctrl + C
" 를 눌러 Taiga 백엔드 서버를 중지하고 가상 환경을 비활성화하십시오.
deactivate
Taiga 프론트 엔드는 웹 사용자 인터페이스를 제공하는 Taiga의 구성 요소입니다. Github에서 Taiga 프론트 엔드 저장소를 복제하고 안정적인 최신 분기를 체크 아웃하십시오.
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
cd taiga-front-dist
git checkout stable
Taiga 프론트 엔드에 대한 새 구성 파일을 작성하십시오.
nano ~/taiga-front-dist/dist/conf.json
파일을 채 웁니다.
{
"api": "https://taiga.example.com/api/v1/",
"eventsUrl": "wss://taiga.example.com/events",
"eventsMaxMissedHeartbeats": 5,
"eventsHeartbeatIntervalTime": 60000,
"eventsReconnectTryInterval": 10000,
"debug": true,
"debugInfo": false,
"defaultLanguage": "en",
"themes": ["taiga"],
"defaultTheme": "taiga",
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": [],
"tribeHost": null,
"importers": [],
"gravatar": true
}
를 example domain
실제 도메인 으로 바꾸십시오 . 위 구성에서 기본 언어 및 기타 매개 변수를 변경할 수도 있습니다.
프론트 엔드 및 백엔드 외에도 Taiga 이벤트도 설치해야합니다. Taiga 이벤트는 웹 소켓 서버이며, Taiga 프론트 엔드가 백 로그, Kanban 등과 같은 모듈의 실시간 변경 사항을 표시 할 수 있습니다. 또한 메시지 처리를 위해 RabbitMQ 서버를 사용합니다.
Github에서 Taiga 이벤트 저장소를 복제하십시오.
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
를 사용하여 Node.js 종속성을 설치하십시오 npm
.
npm install
Taiga 이벤트에 대한 새 구성 파일을 작성하십시오.
nano ~/taiga-events/config.json
파일을 채 웁니다.
{
"url": "amqp://taiga:StrongMQPassword@localhost:5672/taiga",
"secret": "Generated_Secret_Key",
"webSocketServer": {
"port": 8888
}
}
Generated_Secret_Key
이전에 생성 한 실제 64 자 길이의 비밀 키로 바꿉니다 . 비밀 키는 Taiga 백엔드 구성 파일에서 제공 한 키와 정확히 동일해야합니다. 또한 StrongMQPassword
Taiga 메시지 큐 사용자의 실제 비밀번호로를 업데이트하십시오 .
서커스는 Python 응용 프로그램의 프로세스 관리자입니다. 우리는 서커스를 사용하여 타이가 백엔드와 이벤트를 운영 할 것입니다.
sudo
사용자 에게 다시 전환하십시오 .
exit
참고 : 이제부터는 sudo
user를 사용하여 명령을 실행해야합니다 .
sudo apt -y install circus
Taiga 백엔드를 실행하기위한 새 서커스 구성 파일을 작성하십시오.
sudo nano /etc/circus/conf.d/taiga.ini
파일을 채 웁니다.
[watcher:taiga]
working_dir = /home/taiga/taiga-back
cmd = gunicorn
args = -w 3 -t 60 --pythonpath=. -b 127.0.0.1:8001 taiga.wsgi
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/gunicorn.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 4
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/gunicorn.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 4
[env:taiga]
PATH = /home/taiga/.virtualenvs/taiga/bin:$PATH
TERM=rxvt-256color
SHELL=/bin/bash
USER=taiga
LANG=en_US.UTF-8
HOME=/home/taiga
PYTHONPATH=/home/taiga/.virtualenvs/taiga/lib/python3.5/site-packages
Taiga Events를 실행하기위한 새로운 서커스 구성을 만듭니다.
sudo nano /etc/circus/conf.d/taiga-events.ini
파일을 채 웁니다.
[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/local/bin/coffee
args = index.coffee
uid = taiga
numprocesses = 1
autostart = true
send_hup = true
stdout_stream.class = FileStream
stdout_stream.filename = /home/taiga/logs/taigaevents.stdout.log
stdout_stream.max_bytes = 10485760
stdout_stream.backup_count = 12
stderr_stream.class = FileStream
stderr_stream.filename = /home/taiga/logs/taigaevents.stderr.log
stderr_stream.max_bytes = 10485760
stderr_stream.backup_count = 12
서커스를 다시 시작하고 부팅시 자동으로 시작되도록합니다.
sudo systemctl restart circusd
sudo systemctl enable circusd
서커스의 상태를 확인하십시오.
circusctl status
서커스가 모든 타이가 프로세스를 올바르게 시작했다면 다음과 같은 결과가 나타납니다.
user@vultr:~$ circusctl status
circusd-stats: active
plugin:flapping: active
taiga: active
taiga-events: active
활성화되지 않은 프로세스가 있으면 sudo chmod -R 777 /home/taiga/logs
서커스를 실행 하고 다시 시작하십시오. 서커스 프로세스의 상태를 다시 확인하십시오. 이번에는 확실히 서비스가 실행되고 있음을 알게 될 것입니다.
이제 Taiga가 성공적으로 설치 및 실행되었습니다. 사용하려면 프로덕션 웹 서버를 사용하여 설치를 공개해야합니다.
Nginx를 리버스 프록시로 사용하여 애플리케이션을 사용자에게 제공합니다. 또한 Let 's Encrypt에서 SSL 인증서를 얻어 설치합니다.
Certbot은 Let 's Encrypt CA의 공식 인증서 발급 클라이언트입니다. Certbot PPA 저장소를 시스템에 추가하십시오.
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
Nginx 및 Certbot을 설치하십시오.
sudo apt -y install nginx certbot
참고 : Let 's Encrypt CA에서 인증서를 얻으려면 인증서를 생성하려는 도메인이 서버를 가리켜 야합니다. 그렇지 않은 경우 도메인의 DNS 레코드를 필요한대로 변경하고 인증서가 다시 요청되기 전에 DNS가 전파 될 때까지 기다리십시오. Certbot은 인증서를 제공하기 전에 도메인 권한을 확인합니다.
이제 Certbot의 내장 웹 서버를 사용하여 도메인의 인증서를 생성하십시오.
sudo certbot certonly --standalone -d taiga.example.com
생성 된 인증서는 /etc/letsencrypt/live/taiga.example.com/
디렉토리에 저장 될 수 있습니다 . SSL 인증서는로 유지되고 fullchain.pem
개인 키는로 저장됩니다 privkey.pem
.
인증서 암호화는 90 일 후에 만료되므로 Cron 작업을 사용하여 인증서에 대한 자동 갱신을 설정하는 것이 좋습니다. Cron은 정기적 인 작업을 실행하는 데 사용되는 시스템 서비스입니다.
크론 작업 파일을여십시오.
sudo crontab -e
다음 줄을 추가하십시오.
0 0 * * * /usr/bin/certbot renew --quiet
위의 cron 작업은 매일 자정에 실행됩니다. 인증서가 만료 예정인 경우 인증서가 자동으로 갱신됩니다.
강력한 Diffie-Hellman 매개 변수를 생성하십시오. 호스트와 서버 간의 데이터 교환을위한 추가 보안 계층을 제공합니다.
sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048
Taiga 프론트 엔드에 서비스 할 새 Nginx 서버 블록을 작성하십시오.
sudo nano /etc/nginx/sites-available/taiga
다음을 사용하여 파일을 채우십시오.
server {
listen 80;
server_name taiga.example.com;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl;
server_name taiga.example.com;
access_log /home/taiga/logs/nginx.access.log;
error_log /home/taiga/logs/nginx.error.log;
large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;
index index.html;
# Frontend
location / {
root /home/taiga/taiga-front-dist/dist/;
try_files $uri $uri/ /index.html;
}
# Backend
location /api {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001/api;
proxy_redirect off;
}
location /admin {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8001$request_uri;
proxy_redirect off;
}
# Static files
location /static {
alias /home/taiga/taiga-back/static;
}
# Media files
location /media {
alias /home/taiga/taiga-back/media;
}
location /events {
proxy_pass http://127.0.0.1:8888/events;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 7d;
proxy_send_timeout 7d;
proxy_read_timeout 7d;
}
add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";
add_header Public-Key-Pins 'pin-sha256="klO23nT2ehFDXCfx3eHTDRESMz3asj1muO+4aIdjiuY="; pin-sha256="633lt352PKRXbOwf4xSEa1M517scpD3l5f79xMD9r9Q="; max-age=2592000; includeSubDomains';
ssl on;
ssl_certificate /etc/letsencrypt/live/taiga.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/taiga.example.com/privkey.pem;
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!3DES:!MD5:!PSK';
ssl_session_cache shared:SSL:10m;
ssl_dhparam /etc/ssl/dhparam.pem;
ssl_stapling on;
ssl_stapling_verify on;
}
및를 변경 domain name
하십시오 path to the SSL certificates
. 가상 호스트를 활성화하십시오.
sudo ln -s /etc/nginx/sites-available/taiga /etc/nginx/sites-enabled/taiga
이제 Nginx 웹 서버를 다시 시작하고 부팅시 자동으로 시작되도록 할 수 있습니다.
sudo systemctl restart nginx
sudo systemctl status nginx
마지막으로 Taiga 파일에 대한 소유권과 권한을 수정하십시오.
sudo chown -R taiga:taiga /home/taiga/
sudo chmod o+x /home/taiga/
로 이동하여 Taiga 설치에 액세스 할 수 있습니다 https://taiga.example.com
. 사용자 이름 " admin
"및 비밀번호 " 123123
"로 초기 관리자 계정을 사용하여 로그인하십시오 . 이제 설치를 프로덕션 환경에서 사용할 수 있습니다. 새 프로젝트를 만들거나 제품을 평가하여 시작하십시오. Github, Jira 또는 Trello에서 이미 프로젝트를 관리하고 있다면 importers를 사용하여 프로젝트를 Taiga로 쉽게 가져올 수 있습니다 .
랜섬웨어 공격이 증가하고 있지만 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의 미래는 여전히 나날이 성장하고 있습니다.