Taiga - это бесплатное приложение с открытым исходным кодом для управления проектами. В отличие от других инструментов управления проектами, Taiga использует поэтапный и гибкий подход для управления развитием проекта. Тайга - очень мощное и полностью настраиваемое приложение. Бэкэнд Taiga написан на Python с использованием фреймворка Django. Интерфейс написан на JavaScript с использованием сред CoffeeScript и AngularJS. Тайга включает в себя такие функции, как совместная работа над проектом, доска объявлений Канбан, отслеживание ошибок, создание отчетов, отслеживание времени, задержек, вики и многое другое.
Предпосылки
В этом уроке мы будем использовать taiga.example.comимя домена, указывающее на сервер. Замените все вхождения taiga.example.comс вашим фактическим доменным именем.
Обновите базовую систему, используя руководство Как обновить CentOS 7 . После обновления системы перейдите к установке PostgreSQL.
Установить PostgreSQL
PostgreSQL - это объектно-реляционная система баз данных, известная своей стабильностью и скоростью. Тайга использует 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на безопасный пароль. Создайте новую базу данных для установки Тайги.
CREATE DATABASE taiga OWNER taiga;
Выход из psqlоболочки.
\q
Переключиться на sudoпользователя.
exit
Установите Python 3
Python 2.7 поставляется предварительно установленным на сервере CentOS 7, но для Taiga требуется Python версии 3.4 или новее. 
Мы установим Python версии 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++
Загрузите исходный код Python.
wget https://www.python.org/ftp/python/3.6.3/Python-3.6.3.tar.xz
Извлеките и настройте установку Python.
tar xf Python-3.6.3.tar.xz
cd Python-3.6.3
./configure --enable-optimizations --prefix=/usr
Сделайте альтернативную установку.
sudo make altinstall
Примечание : Альтернативные установки устанавливают Python 3.6 без замены версии Python по умолчанию. Если вы замените Python по умолчанию в 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 используется для создания изолированной виртуальной среды для проекта Python. Виртуальная среда содержит свои собственные установочные каталоги и не разделяет библиотеки с глобальными и другими виртуальными средами.
Установить RabbitMQ
Тайга использует RabbitMQ для обработки очереди сообщений. RabbitMQ требует библиотеки Erlang для работы. Установите Erlang.
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
Добавьте пользователя RabbitMQ и vhost. Также предоставьте разрешение пользователю через хост.
sudo rabbitmqctl add_user taiga StrongMQPassword
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
Обязательно замените его StrongMQPasswordна безопасный пароль.
Установить Nodejs
Node.js версии 7 или новее необходим для компиляции внешнего интерфейса Taiga. Добавьте репозиторий 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будет использоваться позже для генерации сильной секретной строки. Установите CoffeeScript, так как он будет использоваться для компиляции файлов Taiga, написанных с использованием среды CoffeeScript.
sudo npm install -g coffee-script gulp
Установить Тайга Бэкэнд
Добавьте нового системного пользователя для Taiga, чтобы гарантировать, что процессы Taiga работают как непривилегированный пользователь.
sudo useradd -s /bin/bash taiga
sudo su - taiga
Примечание . С этого момента все команды необходимо запускать как непривилегированный пользователь, taigaпока вас не попросят вернуться обратно к sudoпользователю.
Создайте новый каталог для хранения файлов журнала.
mkdir -p ~/logs
Клонируйте хранилище Taiga backend из GitHub и оформите последнюю стабильную ветку.
git clone https://github.com/taigaio/taiga-back.git taiga-back
cd taiga-back
git checkout stable
Настройте virtualenvwrapperдля использования Python 3.6 вместо Python по умолчанию.
echo "VIRTUALENVWRAPPER_PYTHON='/bin/python3.6'" >> ~/.bashrc
echo "source /usr/bin/virtualenvwrapper.sh" >> ~/.bashrc
Наконец, источник ~/.bashrcфайла.
source ~/.bashrc
Теперь создайте новую виртуальную среду для Тайги, используя Python 3.6.
mkvirtualenv -p /bin/python3.6 taiga
pip3.6 install --upgrade setuptools
Установите необходимые зависимости Python, используя 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. Тайга также отправляет некоторые демонстрационные данные или образцы данных, которые могут быть полезны для оценки продукта. Если вы хотите установить образец данных, выполните следующее.
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действительным паролем для пользователя очереди сообщений «Тайга». Если у вас есть готовый 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",
Остановите сервер «Тайга», нажав « Ctrl + C», и деактивируйте виртуальную среду.
deactivate
Установить интерфейс
Интерфейс Taiga является компонентом Taiga, который обслуживает веб-интерфейс пользователя. Клонируйте хранилище внешнего интерфейса Taiga от Github и оформите последнюю стабильную ветку.
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 в реальном времени отображать изменения в модулях, таких как backlog, Kanban и другие. Он использует сервер RabbitMQ для обработки сообщений.
Клон Тайга, хранилище событий от Github.
cd ~
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
Установите зависимости Node.js, используя npm.
npm install
Создайте новый файл конфигурации для событий Тайги.
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пароль, указав фактический пароль для пользователя очереди сообщений «Тайга».
Circus - менеджер процессов для приложений на Python. Мы будем использовать Цирк для запуска тайги и событий
Вернитесь к sudoпользователю.
exit
Примечание : теперь вам нужно будет запускать команды, используя sudoпользователя.
Установите Цирк используя pip.
sudo pip3.6 install circus
Создайте новые каталоги для хранения конфигураций 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
Создайте новый файл конфигурации 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.6/site-packages
Создайте новую конфигурацию Цирка для запуска Тайги.
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служебный файл для запуска Circus. Использование systemdобеспечит автоматический запуск Circus во время перезагрузки и сбоев.
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
Запустите Circus и включите автоматический запуск во время загрузки.
sudo systemctl start circus
sudo systemctl enable circus
Проверьте статус цирка.
circusctl status
Вы увидите следующий вывод.
[user@vultr ~]$ circusctl status
taiga: active
taiga-events: active
Теперь у нас Тайга успешно установлена и работает. Прежде чем мы сможем его использовать, нам нужно выставить установку с использованием любого рабочего веб-сервера.
Установите Nginx в качестве обратного прокси
Мы будем использовать веб-сервер Nginx в качестве обратного прокси-сервера для предоставления приложения пользователям. Мы также получим и установим SSL-сертификаты от Let's 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'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.
Срок действия сертификатов Let's Encrypt истекает через 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 с помощью импортеров .