نحوه نصب ابزار مدیریت پروژه Taiga در اوبونتو 16.04

Taiga یک برنامه رایگان و منبع باز برای مدیریت پروژه است. بر خلاف سایر ابزارهای مدیریت پروژه ، Taiga از یک روش چالاک افزایشی برای مدیریت توسعه پروژه استفاده می کند. Taiga یک برنامه بسیار قدرتمند و کاملاً قابل تنظیم است. پس زمینه Taiga با استفاده از چارچوب Django در پایتون نوشته شده است. جلوی مقدماتی با استفاده از چارچوب های CafeScript و AngularJS در JavaScript نوشته شده است. Taiga شامل ویژگی هایی از قبیل همکاری پروژه ، تخته Kanban ، ردیابی اشکال ، گزارش ، ردیابی زمان ، عقب نشینی ها ، ویکی و موارد دیگر است.

پیش نیازها

در این آموزش ، ما به taiga.example.comعنوان نام دامنه به سرور اشاره می کنیم. همه وقایع را taiga.example.comبا نام دامنه واقعی خود جایگزین کنید.

سیستم پایه خود را با استفاده از راهنمای نحوه به روزرسانی اوبونتو 16.04 به روز کنید . پس از به روزرسانی سیستم ، نصب PostgreSQL را ادامه دهید.

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

یک کاربر PostgreSQL جدید برای Taiga ایجاد کنید.

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 به نسخه پایتون 3.4 یا بالاتر نیاز دارد و پایتون 3.5 در توزیع اوبونتو 16.04 از پیش نصب شده است. چند بسته مورد نیاز دیگر را نصب کنید.

sudo apt -y install python3 python3-pip python3-dev python3-dev virtualenvwrapper

از محیط مجازی پایتون برای ایجاد یک محیط مجازی مجزا برای یک پروژه Python استفاده می شود. یک محیط مجازی شامل دایرکتوری های نصب خود است و کتابخانه ها را با سایر محیط های مجازی و جهانی به اشتراک نمی گذارد. پس از نصب پایتون 3 با موفقیت ، باید بتوانید نسخه آن را بررسی کنید.

python3 -V

موارد زیر را مشاهده خواهید کرد.

user@vultr:~$ python3 -V
Python 3.5.2

به روز رسانی pip، که یک برنامه مدیر وابستگی است.

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

RabbitMQ را نصب کنید

Taiga از RabbitMQ برای پردازش صف پیام استفاده می کند. RabbitMQ برای کار به کتابخانه های ارلنگ نیاز دارد. ارلانگ را نصب کنید.

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رمز عبوری را جایگزین کنید .

نودج ها را نصب کنید

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بعداً برای تولید یک رشته مخفی قوی استفاده خواهد شد. CafeScript را نصب کنید ، زیرا از آن برای جمع آوری پرونده های Taiga نوشته شده در چارچوب CoffeeScript استفاده خواهد شد.

sudo npm install -g coffee-script gulp

Taiga Backend را نصب کنید

یک کاربر سیستم جدید برای Taiga اضافه کنید تا اطمینان حاصل شود که فرایندهای Taiga به عنوان یک کاربر غیر شخصی در حال اجرا هستند.

sudo adduser taiga
sudo su - taiga

توجه : از این پس ، باید تمام دستورات را به عنوان کاربر غیر شخصی اجرا کنید taigaتا اینکه از شما خواسته شود به sudoکاربر بازگردید .

برای ذخیره پرونده های log یک فهرست جدید ایجاد کنید.

mkdir -p ~/logs

مخزن باطن Taiga را از GitHub کلون کنید و آخرین شاخه پایدار را پرداخت کنید.

git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable

اکنون با استفاده از پایتون 3 یک محیط مجازی جدید برای Taiga ایجاد کنید.

mkvirtualenv -p /usr/bin/python3 taiga
pip3 install --upgrade setuptools

با استفاده از وابستگی های پایتون مورد نیاز را نصب کنید 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 Backend ایجاد کنید.

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 و راز مشتری را تهیه کنید.

برای فوریت بررسی اینکه آیا باطن 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

سرور باطن Taiga را با فشار دادن " ctrl + C" متوقف کرده و محیط مجازی را غیرفعال کنید.

deactivate

Frontend را نصب کنید

مقدمه Taiga مؤلفه ای از 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 را قادر می سازد تا در زمان واقعی در ماژول هایی مانند backlog ، Kanban و موارد دیگر تغییرات واقعی را نشان دهد. همچنین از سرور RabbitMQ برای پردازش پیام استفاده می کند.

مخزن حوادث Taiga از Github را کلون کنید.

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 ، بروزرسانی کنید.

سیرک را پیکربندی کنید

سیرک یک مدیر فرآیند برای برنامه های پایتون است. ما از سیرک برای اجرای باطن و رویدادهای Taiga استفاده خواهیم کرد.

بازگشت به sudoکاربر.

exit

توجه : از این پس شما نیاز به اجرای دستورات با استفاده از sudoکاربر دارید.

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 یک پیکربندی جدید Circus ایجاد کنید.

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

اگر سیرک تمام مراحل Taiga را به درستی شروع کرده است ، در نتیجه خروجی زیر را مشاهده خواهید کرد.

user@vultr:~$ circusctl status
circusd-stats: active
plugin:flapping: active
taiga: active
taiga-events: active

اگر می بینید که هر یک از مراحل فعال نیست ، sudo chmod -R 777 /home/taiga/logsCircus را اجرا کنید و مجدداً راه اندازی کنید. دوباره فرایندهای Circus را بررسی کنید ، این بار قطعاً سرویس در حال اجرا را خواهید یافت.

اکنون ، Taiga را با موفقیت نصب و راه اندازی کرده ایم. قبل از استفاده از آن ، باید نصب را با استفاده از هر وب سرور تولیدی افشا کنیم.

Nginx را به عنوان پروکسی معکوس نصب کنید

ما از Nginx به عنوان یک پروکسی معکوس برای ارائه برنامه به کاربران استفاده خواهیم کرد. همچنین گواهینامه های SSL را از Let Encrypt دریافت و نصب خواهیم کرد.

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 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 یک سرویس سیستم است که برای انجام کارهای دوره ای استفاده می شود.

پرونده کار cron را باز کنید.

sudo crontab -e

خط زیر را اضافه کنید.

0 0 * * * /usr/bin/certbot renew --quiet

شغل Cron فوق هر روز نیمه شب انجام می شود. اگر گواهی برای انقضا موقت باشد ، به طور خودکار گواهینامه ها را تمدید می کند.

یک پارامتر قوی Diffie-Hellman ایجاد کنید. این لایه امنیتی اضافی برای تبادل داده ها بین میزبان و سرور فراهم می کند.

sudo openssl dhparam -out /etc/ssl/dhparam.pem 2048 

یک سرویس دهنده جدید سرور Nginx ایجاد کنید تا در قسمتهای ابتدایی Taiga خدمت کنید.

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 یک پروژه را مدیریت کرده اید ، می توانید به راحتی با استفاده از واردکنندگان ، پروژه ها را به Taiga وارد کنید .



Leave a Comment

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

نحوه نصب بستر سبد خرید LiteCart در اوبونتو 16.04

LiteCart یک بستر سبد خرید آزاد و منبع باز است که به زبان های PHP ، jQuery و HTML 5 نوشته شده است. این نرم افزار ساده ، سبک و با کاربرد آسان است.

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

نحوه نصب Anchor CMS بر روی یک VPS Fedora 26 LAMP

با استفاده از یک سیستم متفاوت؟ Anchor CMS یک سیستم مدیریت محتوا (CMS) بسیار ساده و بسیار سبک ، بسیار آزاد و آزاد است.

اشتراک NFS را در Debian تنظیم کنید

اشتراک NFS را در Debian تنظیم کنید

NFS یک سیستم فایل مبتنی بر شبکه است که به رایانه ها اجازه می دهد تا از طریق شبکه رایانه ای به فایلها دسترسی پیدا کنند. این راهنما توضیح می دهد که چگونه می توانید پوشه ها را روی NF قرار دهید

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

نحوه بروزرسانی CentOS 7 ، Ubuntu 16.04 و Debian 8

هنگام راه اندازی سرور جدید لینوکس ، به روزرسانی سیستم های هسته و سایر بسته ها تا آخرین نسخه پایدار یک روش توصیه شده است. در این مقاله

نحوه نصب Matomo Analytics در Fedora 28

نحوه نصب Matomo Analytics در Fedora 28

با استفاده از یک سیستم متفاوت؟ Matomo (سابقا پیویک) یک بستر تحلیلی منبع باز است ، یک جایگزین باز برای Google Analytics. منبع Matomo میزبان o

یک سرور TeamTalk را در لینوکس تنظیم کنید

یک سرور TeamTalk را در لینوکس تنظیم کنید

TeamTalk یک سیستم کنفرانس است که به کاربران امکان می دهد مکالمات صوتی / تصویری با کیفیت بالا ، چت متنی ، انتقال فایل ها و صفحه های به اشتراک بگذارند. من

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

با استفاده از کلید SSH خود برای ورود به کاربران غیر ریشه استفاده کنید

Vultr یک ویژگی را فراهم می کند که به شما امکان می دهد با ایجاد یک نمونه جدید ، کلیدهای SSH را از قبل نصب کنید. این اجازه می دهد تا به کاربر root دسترسی داشته باشید ، با این حال ، th

نحوه نصب انجمن NodeBB در FreeBSD 12

نحوه نصب انجمن NodeBB در FreeBSD 12

با استفاده از یک سیستم متفاوت؟ NodeBB یک نرم افزار انجمن مبتنی بر Node.js است. از سوکت های وب برای تعامل فوری و اعلامیه های زمان واقعی استفاده می کند. NodeB

نصب و راه اندازی ZNC در اوبونتو

نصب و راه اندازی ZNC در اوبونتو

ZNC یک پیشرانه پیشرفته شبکه IRC است که تمام وقت بهم متصل می شود تا مشتری IRC بتواند بدون از دست دادن جلسه گپ قطع یا وصل شود.

نحوه نصب Ranger Terminal File Manager در لینوکس

نحوه نصب Ranger Terminal File Manager در لینوکس

رنجر یک مدیر فایل مبتنی بر خط فرمان است که دارای کلیدهای اتصال VI است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد