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

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

پیش نیازها

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

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

PostgreSQL را نصب کنید

PostgreSQL یک سیستم پایگاه داده رابطه ای است که به دلیل پایداری و سرعت آن شناخته شده است. Taiga از PostgreSQL برای ذخیره پایگاه داده خود استفاده می کند. مخزن PostgreSQL را به سیستم اضافه کنید.

sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm

سرور پایگاه داده PostgreSQL را نصب کنید.

sudo yum -y install postgresql10-server postgresql10-contrib postgresql10 

اولویت بندی پایگاه داده.

sudo /usr/pgsql-10/bin/postgresql-10-setup initdb

سرور PostgreSQL را راه اندازی کنید و آن را فعال کنید تا به طور خودکار در زمان بوت شروع شود.

sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10

گذرواژه را برای کاربر پیش فرض 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

پایتون 3 را نصب کنید

Python 2.7 از قبل نصب شده روی سرور CentOS 7 است ، اما Taiga به نسخه پایتون 3.4 یا بالاتر نیاز دارد.

ما پایتون نسخه 3.6 را از منبع نصب خواهیم کرد. ابزار ساخت و کامپایلر مورد نیاز را نصب کنید.

sudo yum -y install gcc autoconf flex bison libjpeg-turbo-devel freetype-devel zlib-devel zeromq3-devel gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux libxml2-devel libxslt-devel openssl-devel gcc-c++

کد منبع پایتون را بارگیری کنید.

wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz

نصب پایتون را استخراج و پیکربندی کنید.

tar xf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --enable-optimizations --prefix=/usr

نصب جایگزین کنید.

sudo make altinstall

توجه : نصب های جایگزین Python 3.6 را بدون جایگزینی نسخه پیش فرض پایتون نصب می کنند. اگر پایتون پیش فرض را در CentOS 7 جایگزین کنید ، ممکن است YUMمدیر مخزن را خراب کند .

اکنون می توانید نسخه آن را بررسی کنید.

python3.6 -V

موارد زیر را باید مشاهده کنید.

[user@vultr Python-3.6.3]$ python3.6 -V
Python 3.6.3

با استفاده از محیط مجازی Python را نصب کنید pip.

sudo pip3.6 install virtualenv virtualenvwrapper
sudo pip3.6 install --upgrade setuptools pip 

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

RabbitMQ را نصب کنید

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

sudo yum -y install erlang

کلید امضای RabbitMQ GPG را وارد کنید.

sudo rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc

RabbitMQ را نصب کنید.

sudo yum -y install https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/rabbitmq-server-3.6.12-1.el7.noarch.rpm

سرور RabbitMQ را شروع و فعال کنید.

sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server

کاربر و vhost RabbitMQ را اضافه کنید. همچنین ، مجوز را از طریق میزبان به کاربر ارائه دهید.

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://rpm.nodesource.com/setup_8.x | sudo -E bash -

Node.js و برنامه را نصب کنید pwgen.

sudo yum install -y nodejs pwgen

pwgenبعداً برای تولید یک رشته مخفی قوی استفاده خواهد شد. CafeScript را نصب کنید ، زیرا برای جمع آوری پرونده های Taiga نوشته شده با چارچوب CoffeeScript استفاده می شود.

sudo npm install -g coffee-script gulp

Taiga Backend را نصب کنید

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

sudo useradd -s /bin/bash 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

پیکربندی کنید virtualenvwrapperکه به جای Python پیش فرض از Python 3.6 استفاده کنید.

echo "VIRTUALENVWRAPPER_PYTHON='/bin/python3.6'" >> ~/.bashrc
echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc

در آخر ، ~/.bashrcپرونده را تهیه کنید.

source ~/.bashrc

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

mkvirtualenv -p /bin/python3.6 taiga
pip3.6 install --upgrade setuptools

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

pip3.6 install -r requirements.txt

پایگاه داده را با داده های اولیه لازم جمع کنید.

python3.6 manage.py migrate --noinput
python3.6 manage.py loaddata initial_user
python3.6 manage.py loaddata initial_project_templates
python3.6 manage.py compilemessages
python3.6 manage.py collectstatic --noinput

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

python3.6 manage.py sample_data

توجه : نصب داده های نمونه اختیاری است و فقط برای ارزیابی محصول در نظر گرفته شده است.

قبل از ساختن پرونده پیکربندی برای باطن Taiga ، باید رشته ای مخفی تولید کنیم. این رشته برای رمزگذاری داده های جلسه استفاده خواهد شد.

یک رشته تصادفی از 64 کاراکتر ایجاد کنید.

pwgen -s -1 64

شما باید خروجی را به عنوان یک رشته تصادفی ببینید.

(taiga) [taiga@vultr taiga-back]$ pwgen -s -1 64
CZfjWjHctPwnLZsDysWqaZcYfRCviHbI4fVRwfhpbtAHPNBtmkcegpwpYjTtEziJ

یک پرونده پیکربندی جدید برای 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"

حتماً در کد بالا نام دامنه مثال را با نام واقعی جایگزین کنید. همچنین 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 25, 2017 - 07:07:28
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/
{"locales": "http://127.0.0.1:8000/api/v1/locales", "auth": "http://127.0.0.1:8000/api/v1/auth", "users": "http://127.0.0.1:8000/api/v1/users", "roles": "http://127.0.0.1:8000/api/v1/roles", "user-storage": "http://127.0.0.1:8000/api/v1/user-storage", "notify-policies": "http://127.0.0.1:8000/api/v1/notify-policies", "projects": "http://127.0.0.1:8000/api/v1/projects", "projects/(?P<resource_id>\\d+)/fans": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/fans", "projects/(?P<resource_id>\\d+)/watchers": "http://127.0.0.1:8000/api/v1/projects/(?P<resource_id>\\d+)/watchers", "project-templates": "http://127.0.0.1:8000/api/v1/project-templates",

سرور باطن 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دامنه را با دامنه واقعی جایگزین کنید . همچنین می توانید زبان پیش فرض و سایر پارامترها را در پیکربندی فوق تغییر دهید.

رویدادهای 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کاربر دارید.

سیرک را با استفاده از نصب کنید pip.

sudo pip3.6 install circus

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

sudo mkdir /etc/circus
sudo mkdir /etc/circus/conf.d

پرونده پیکربندی پیش فرض را برای Circus ایجاد کنید.

sudo nano /etc/circus/circus.ini

پرونده را با پیکربندی زیر جمع کنید.

[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
include = /etc/circus/conf.d/*.ini

یک فایل پیکربندی سیرک جدید برای اجرای باطن 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.6/site-packages

برای اجرای رویدادهای Taiga یک پیکربندی جدید Circus ایجاد کنید.

sudo nano /etc/circus/conf.d/taiga-events.ini

پرونده را با موارد زیر جمع کنید.

[watcher:taiga-events]
working_dir = /home/taiga/taiga-events
cmd = /usr/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

اکنون systemdبرای اجرای سیرک نیاز به ایجاد یک فایل سرویس داریم. استفاده از systemdاین اطمینان حاصل می کند که سیرک به طور خودکار در هنگام راه اندازی مجدد و خرابی ها شروع می شود.

sudo nano /etc/systemd/system/circus.service

پرونده را جمع کنید.

[Unit]
Description=Circus process manager
After=syslog.target network.target nss-lookup.target
[Service]
Type=simple
ExecReload=/usr/bin/circusctl reload
ExecStart=/usr/bin/circusd /etc/circus/circus.ini
Restart=always
RestartSec=5

[Install]
WantedBy=default.target

سیرک را شروع کرده و فعال کنید تا به طور خودکار در زمان بوت شروع شود.

sudo systemctl start circus
sudo systemctl enable circus

وضعیت سیرک را بررسی کنید.

circusctl status

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

[user@vultr ~]$ circusctl status
taiga: active
taiga-events: active

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

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

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

Nginx و Certbot را نصب کنید. Certbot گواهی رسمی صادر کننده مشتری برای Let's Encrypt CA است.

sudo yum -y install nginx 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 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/conf.d/taiga.conf

پرونده را با موارد زیر جمع کنید.

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;

}

حتماً نام دامنه و مسیر گواهی های SSL را تغییر دهید.

اکنون می توانید وب سرور 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 است. این برنامه یک رابط لعنتی مینیمالیستی و زیبا با نمای سلسله مراتب فهرست ارائه می دهد