Taiga.io アジャイル開発者、設計者、およびプロジェクトマネージャー向けのオープンソースプロジェクト管理システムです。これは、スタートアップ、ソフトウェア開発者などの単純なプロジェクトと複雑なプロジェクトの両方を処理できる美しいプロジェクト管理ツールです。
Taigaプラットフォームには3つの主要なコンポーネントがあり、各コンポーネントには独自の依存関係があります。
- タイガバック :APIを提供するアプリケーションのバックエンド。 PythonとDjangoで書かれています。
- タイガ-フロント-ディスト :AngularJSとCoffeeScriptで記述されたTaigaフロントエンド。
- タイガ-イベント :アプリの変更をリアルタイムで表示するTaigaWebSocketサーバー。そして、RabbitMQをメッセージブローカーとして使用します。
このチュートリアルでは、CentOS7サーバーにTaiga.ioプロジェクト管理ツールをインストールする方法を段階的に説明します。また、Taiga.ioインストール用にCentOS7サーバーをセットアップおよび構成する方法についても学習します。
- CentOS 7
- root権限
- パッケージのインストール
- PostgreSQLのインストールと構成
- Taigaユーザーを追加
- TaigaBackを構成する
- Taigaフロントエンドを構成する
- タイガイベントの設定
- Circusプロセス管理の構成
- Taiga.io用にNginx仮想ホストを構成する
- NginxにTaigaフロントエンドへのアクセスを許可する
- テスト
すべてのTaiga.ioコンポーネントをインストールする前に、いくつかのパッケージをインストールしてシステムを準備する必要があります。この最初のステップでは、Nginx、RabitMQ、Redisなどを含むすべてのTaigaコンポーネントとモジュールに必要なパッケージをインストールします。
-依存関係をインストールする
一部のPythonモジュールのコンパイルに使用されるCentOS7用の「開発ツール」が必要です。
以下のyumコマンドを使用して必要なパッケージをインストールします。
sudo yum -y install gcc gcc-c++ make openssl-devel binutils autoconf flex bison libjpeg-devel freetype-devel zlib-devel perl-ZMQ-LibZMQ3 gdbm-devel ncurses-devel automake libtool libffi-devel curl git tmux gettext
-EPELリポジトリをインストールします
次に、EPEL(Enterprise Linux用の追加パッケージ)リポジトリをインストールする必要があります。 Nginx Webサーバー、RabbitMQ、Redisをインストールするために必要です。
次のコマンドを使用して、CentOS7システムにEPELリポジトリをインストールします。
sudo yum -y install epel-release
-Pythonをインストールする
Taiga.ioのインストールにはPython3.5が必要です。サードパーティのリポジトリである「iuscommunity」を使用してPython3.5をインストールします。
次の方法で「iuscommunity」リポジトリを追加します。
sudo yum install -y https://centos7.iuscommunity.org/ius-release.rpm
次に、次のyumコマンドを使用してPython3.5をインストールします。
sudo yum -y install python35u python35u-pip python35u-devel python-devel python-pip python-virtualenvwrapper libxml2-devel libxslt-devel
-Nginxをインストールします
Taiga.ioはWebアプリケーションツールであり、Webサーバーの下で実行されます。このガイドでは、NginxをWebサーバーとして使用します。
以下のyumコマンドを使用して、EPELリポジトリからNginxをインストールします。
sudo yum -y install nginx
インストールが完了したら、サービスを開始し、システムの起動時に起動できるようにします。
systemctl start nginx
systemctl enable nginx
次に、netstatコマンドを使用して開いているポートを確認します。
netstat -plntu
そして、以下に示すように、リストにHTTPポート80が含まれていることを確認してください。
-RedisとRabbitMQをインストールします
これらのパッケージがなくてもTaiga.ioを実行できるため、これはオプションです。基本的に、RedisおよびRabbitMQパッケージはtaiga-eventsによって使用されます。
以下のyumコマンドを使用して、EPELリポジトリからRedisとRabbitMQをインストールします。
yum -y install rabbitmq-server redis
インストールが完了したら、RedisサービスとRabbitMQサービスの両方を開始し、システムの起動時に起動できるようにします。
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
systemctl start redis
systemctl enable redis
次に、RabbitMQ用に「taiga」という名前の新しいユーザーと仮想ホストを作成する必要があります。これは「taiga-events」に使用されます。
次のコマンドを実行して、パスワード「aqwe123」で「taiga」という名前の新しいユーザーと仮想ホストを作成し、「taiga」ユーザーの権限を設定します。
sudo rabbitmqctl add_user taiga aqwe123
sudo rabbitmqctl add_vhost taiga
sudo rabbitmqctl set_permissions -p taiga taiga ".*" ".*" ".*"
-Nodejsをインストールします
ノードは「taiga-events」で必要です-nodejsnodesourceリポジトリを追加し、yumコマンドでインストールします。
curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -
sudo yum -y install nodejs
Taiga.ioのインストールに必要なすべての基本パッケージがシステムにインストールされています。
Taiga.ioは、Python Django Webフレームワークに基づくWebアプリケーションであり、データベースとしてPostgreSQLを使用します。 Taiga.ioのインストールにはPostgreSQLバージョン9.5が必要です。
PostgreSQL9.5リポジトリをシステムに追加します。
sudo rpm -Uvh http://yum.postgresql.org/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-2.noarch.rpm
次に、以下のyumコマンドを使用してPostgreSQL9.5をインストールします。
sudo yum -y install postgresql95 postgresql95-devel postgresql95-contrib postgresql95-docs postgresql95-server
インストールが完了したら、PostgreSQLデータベースを初期化する必要があります。
sudo /usr/pgsql-9.5/bin/postgresql95-setup initdb
次に、PostgreSQLサービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start postgresql-9.5
systemctl enable postgresql-9.5
次に、Taiga.ioをインストールするための新しいデータベースを作成する必要があります。新しいデータベースと「taiga」という名前のユーザーを作成する必要があります。
'postgres'ユーザーとしてログインします。
su - postgres
次に、次のコマンドを使用して、Taiga.ioの新しいデータベースとユーザーを作成します。
createuser taiga
createdb taiga -O taiga
Taiga.ioインストール用の新しいPostgreSQLデータベースが作成されました。
このステップでは、「taiga」という名前の新しいシステムユーザーとグループを作成し、それをsudoコマンドアクセス用のホイールグループに追加します。
以下の「useradd」コマンドを使用して、「taiga」ユーザーとグループを作成します。
useradd -U -m -s /bin/bash taiga
passwd taiga
次に、「taiga」ユーザーを「wheel」グループに追加します。
usermod -a -G wheel taiga
'taiga'ユーザーのsudoアクセスをテストします。
su - taiga
sudo su
パスワードを入力し、「taiga」ユーザーのroot権限を取得していることを確認してください。
Taiga-backは、TaigaフロントエンドにAPIを提供するTaiga.ioのバックエンドです。 PythonとDjangoWebFrameworkで書かれています。
このステップでは、taigaコンポーネント「taiga-back」をインストールして構成します。
「taiga」ユーザーにログインし、GitHubから「taiga-back」ソースコードをダウンロードします。
su - taiga
git clone https://github.com/taigaio/taiga-back.git taiga-back
次に、「taiga-back」ディレクトリに移動し、ブランチを「stable」ブランチに変更します。
cd taiga-back
git checkout stable
先に進む前に、virtualenvパッケージを更新する必要があります。
sudo pip install --upgrade virtualenv
次に、mkvirtualenvコマンドを使用して新しいPython環境「taiga」を作成します。
mkvirtualenv -p /usr/bin/python3.5 taiga
'taiga-back'の新しいvirtualenvが作成されました。
taiga-backのすべてのモジュールをインストールする前に、「pg_config」コマンドの「/ usr/bin」ディレクトリへの新しいリンクを作成する必要があります。
sudo ln -s /usr/pgsql-9.5/bin/pg_config /usr/bin/pg_config
次に、以下のコマンドを使用して、「taiga-back」に必要なすべてのPythonモジュールをインストールします。
workon taiga
pip install -r requirements.txt
インストールが完了したら、データベースに初期の基本データを入力する必要があります。
次のすべてのコマンドを実行します。
python manage.py migrate --noinput
python manage.py loaddata initial_user
python manage.py loaddata initial_project_templates
python manage.py compilemessages
python manage.py collectstatic --noinput
これらのコマンドは、管理者アカウント' adminを自動的に作成します 'パスワード付き'123123 '。
次に、vimを使用して「taiga-back」の新しい構成を作成します。
vim ~/taiga-back/settings/local.py
次の構成をそこに貼り付けます。
from .common import *
MEDIA_URL = "http://taiga.hakase-labs.co/media/"
STATIC_URL = "http://taiga.hakase-labs.co/static/"
SITES["front"]["scheme"] = "http"
SITES["front"]["domain"] = "taiga.hakase-labs.co"
SECRET_KEY = "theveryultratopsecretkey"
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:[email protected]: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 = "localhost"
#EMAIL_HOST_USER = ""
#EMAIL_HOST_PASSWORD = ""
#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"
保存して終了します。
注:
- 「MEDIA_URL」と「STATIC_URL」を独自のドメイン名に変更します。
- 「SECRET_KEY」を独自の非常に秘密の鍵に変更します。
- EVENTS_PUSH_BACKEND_OPTIONSパスワード値を独自のRabbitMQ値に変更します。このガイドでは、パスワード「aqwe123」を使用しています。
次に、以下のコマンドで「taiga-back」をテストします。
workon taiga
python manage.py runserver 0.0.0.0:8000
このコマンドは、ポート8000のサーバーパブリックIPでtaiga-backを実行します。
Webブラウザを開き、次のアドレスにアクセスします。
http://192.168.33.10:8000/api/v1/
そして、以下のようにJSON形式の「taiga-back」APIを取得します。
「タイガバック」のインストールと構成が完了しました。
このステップでは、taigaフロントエンドをダウンロードして構成します。フロントエンドはすべてのタイガインターフェースを処理します。
taigaユーザーにログインします。
su - taiga
gitを使用して「Taigaフロントエンド」ソースコードをダウンロードします。
cd ~
git clone https://github.com/taigaio/taiga-front-dist.git taiga-front-dist
'taiga-front-dist'ディレクトリに移動し、ブランチを'stable'に変更します。
cd taiga-front-dist
git checkout stable
デフォルトの設定ファイルをコピーし、vimを使用して編集します。
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
次の構成をコピーします:
{
"api": "http://taiga.hakase-labs.co/api/v1/",
"eventsUrl": "ws://taiga.hakase-labs.co/events",
"debug": "true",
"publicRegisterEnabled": true,
"feedbackEnabled": true,
"privacyPolicyUrl": null,
"termsOfServiceUrl": null,
"maxUploadFileSize": null,
"contribPlugins": []
}
保存して終了します。
「Taigaフロントエンド」の構成が完了しました。
Taiga-eventsは、Taiga.ioダッシュボードにリアルタイムの変更を表示できるWebSocketサーバーであり、RabbitMQをメッセージブローカーとして使用します。このステップでは、「taiga-events」をダウンロードして構成します。
'taiga'ユーザーにログインします。
su - taiga
「タイガイベント」のソースコードをダウンロードして、ディレクトリに移動します。
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
次に、次の方法でnpmコマンドを使用して、「taiga-events」に必要なすべてのjavascriptライブラリをダウンロードしてインストールする必要があります。
npm install
sudo npm install -g coffee-script
注: ルートシステムの下に「coffee-script」をインストールする必要があります。
次に、JSON構成ファイルを「config.json」にコピーし、vimを使用して編集します。
cp config.example.json config.json
vim config.json
次の構成をそこに貼り付けます。
{
"url": "amqp://taiga:[email protected]:5672/taiga",
"secret": "theveryultratopsecretkey",
"webSocketServer": {
"port": 8888
}
}
保存して終了します。
注:
- 「url」の値を自分のrabbitmqユーザーとパスワードで変更します。
- 「secret」の値は、「local.py」の「SECRET_KEY」(「taiga-back」の構成ファイル)と一致していることを確認してください。
Taiga-eventsの構成が完了しました。
Circusは、「taiga-back」および「taiga-events」プロセスの制御と管理に使用されます。 「taiga-events」はコーヒースクリプトとして実行され、「taiga-back」はGunicornの下で実行されています。
このステップでは、ソースコードからCircusを手動でインストールします。
taigaユーザーとしてログインします。
su - taiga
次に、gitを使用してサーカスのソースコードをダウンロードします。
cd ~/
git clone https://github.com/circus-tent/circus.git circus
システムにサーカスをインストールする前に、サーカス構成用の新しいディレクトリを作成する必要があります。
taigaユーザーの下に新しい「conf」ディレクトリを作成します。
mkdir -p ~/conf
そして、「taiga.ini」という名前のTaiga.ioの新しいサーカス構成を作成します。
vim ~/conf/taiga.ini
次の構成を貼り付けます。
[circus]
check_delay = 5
endpoint = tcp://127.0.0.1:5555
pubsub_endpoint = tcp://127.0.0.1:5556
statsd = true
[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
[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
保存して終了します。
次に、サーカスログファイル用のディレクトリを作成します。
mkdir -p ~/logs
サーカスディレクトリに移動し、root権限でソフトウェアをインストールします。
cd ~/circus
sudo python3.5 setup.py install
インストールが完了したら、サーカスをシステム上のサービスとして構成します。
sudoコマンドを実行してから、新しいサービスファイル「circusd.service」を作成します。
sudo su
vim /usr/lib/systemd/system/circusd.service
次の構成をそこに貼り付けます。
[Unit]
Description=circus
[Service]
ExecStart=/usr/bin/circusd /home/taiga/conf/taiga.ini
保存して終了します。
次に、以下のコマンドを使用してsystemdシステムをリロードします。
systemctl daemon-reload
エラーがないことを確認してから、circusdサービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start circusd
systemctl enable circusd
Taiga.ioのサーカスのインストールと構成が完了しました。以下のcircusctlコマンドを使用して確認してください。
circusctl status
そして、サーカスプロセスリストにタイガバックイベントとタイガイベントが含まれていることを確認してください。
または、以下のようにsystemctlコマンドを使用できます。
systemctl status circusd
このステップでは、Taiga.io用にNginx仮想ホストを構成します。 Taiga.ioインストール用に「conf.d」ディレクトリの下に新しい仮想ホストファイルを作成します。
nginx構成ディレクトリに移動し、「conf.d」ディレクトリの下に新しいファイル「taiga.conf」を作成します。
cd /etc/nginx/
vim conf.d/taiga.conf
次の構成をそこに貼り付けます。
server {
listen 80;
server_name taiga.hakase-labs.co;
large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;
access_log /var/log/nginx/taiga.access.log;
error_log /var/log/nginx/taiga.error.log;
# 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;
}
# Django admin access (/admin/)
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;
}
# Taiga-events
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;
}
}
保存して終了します。
次に、テストnginx構成を実行し、エラーがないことを確認します。次に、Webサーバーサービスを再起動します。
nginx -t
systemctl restart nginx
Taiga.ioの仮想ホスト構成が完了しました。
Nginx Webサーバーがtaiga-frontendファイルにアクセスできないというエラーが表示される場合があります。この場合、Nginxの「500内部サーバーエラー」が表示されます。
この問題を解決するには、すべてのtaiga-frontendファイルの所有者またはグループを変更し、Nginxにすべてのファイルへのアクセスを許可する必要があります。
CentOS 7のデフォルトでは、Nginx Webサーバーは「nginx」ユーザーで実行されており、Taiga.ioインストールは「taiga」ユーザーで実行されています。
以下は、私たちが話しているNginxエラーの例です。
NginxWebサーバーは「/home/ taiga / taiga-front-dist/dist」ディレクトリのすべてのコンテンツを読み取ることができません。
以下のコマンドを使用してこれを確認してください。
sudo -u nginx stat /home/taiga/taiga-front-dist/dist
そして、許可が拒否された結果が表示されます。
次に、「nginx」ユーザーを「taiga」グループに追加し、nginxユーザーにtaiga-front-distディレクトリに必要な権限を付与する必要があります。
'nginx'ユーザーを'taiga'グループに追加します。
sudo gpasswd -a nginx taiga
taiga-front-distディレクトリのすべてのコンテンツを読み取るためのアクセス許可をWebサーバーに付与します。
sudo chmod g+x /home/taiga
sudo chmod g+x /home/taiga/taiga-front-dist
sudo chmod g+x /home/taiga/taiga-front-dist/dist
そして、NginxWebサーバーを再起動します。
systemctl restart nginx
ウェブブラウザを開き、Taigaのインストールドメイン名にアクセスします。私の名前は http://taiga.hakase-labs.co
そして、以下に示すTaigaのデフォルトのホームページを取得する必要があります。
ここに、デフォルトのユーザー' adminを入力します 'パスワード付き'123123 'をクリックし、[ログイン]ボタンをクリックします。
そして、管理ダッシュボードが表示されます。
NginxWebサーバーを使用したCentOS7へのTaiga.ioのインストールが正常に完了しました。