Taiga.io アジャイル開発者、設計者、およびプロジェクトマネージャー向けのオープンソースプロジェクト管理システムです。これは、スタートアップ、ソフトウェア開発者などの単純なプロジェクトと複雑なプロジェクトの両方を処理できる美しいプロジェクト管理ツールです。
Taigaプラットフォームには3つの主要なコンポーネントがあり、各コンポーネントには独自の依存関係があります。
- タイガバック :APIを提供するアプリケーションのバックエンド。 PythonとDjangoで書かれています。
- taiga-front-dist :TaigaフロントエンドはAngularJSとCoffeeScriptで記述されています。
- タイガ-イベント :アプリの変更をリアルタイムで表示するTaigaWebSocketサーバー。そして、RabbitMQをメッセージブローカーとして使用します。
このチュートリアルでは、Ubuntu16.04サーバーにTaiga.ioプロジェクト管理ツールをインストールする方法を段階的に説明します。 Taiga.ioインストール用にUbuntuサーバーをセットアップする方法を学習します。
前提条件
- Ubuntu 16.04
- ルート権限
私たちが行うこと
- 前提条件をインストールする
- Taigaユーザーを追加
- Taigaバックエンドのインストールと構成
- Taigaフロントエンドのインストールと構成
- Taigaイベントのインストールと構成
- CircusとGunicornを設定する
- TaigaNginx仮想ホストを構成する
- テスト
すべてのTaiga.ioコンポーネントをインストールする前に、必要なパッケージをインストールしてシステムを準備する必要があります。この最初のステップでは、Nginx、RabitMQ、Redisなどを含むすべてのTaigaコンポーネントとモジュールに必要なパッケージをインストールします。
まず、リポジトリを更新してシステムをアップグレードします。
sudo apt update
sudo apt upgrade -y
-依存関係をインストールする
次のパッケージは、いくつかのPythonモジュールのコンパイルに使用されます。以下のaptコマンドを実行して、それらすべてをシステムにインストールします。
sudo apt install -y 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
-Nginxをインストールします
Taiga.ioは、Webベースのアプリケーションツールです。 Webサーバー上で実行されています。このガイドでは、インストールにNginxWebサーバーを使用します。
以下のaptコマンドを使用してNginxをインストールします。
sudo apt install nginx -y
インストールが完了したら、Nginxサービスを開始し、システムの起動時に起動できるようにします。これは、systemctlコマンドを使用して実行できます。
systemctl start nginx
systemctl enable nginx
次に、netstatを使用してチェックし、HTTPポートがリストに含まれていることを確認します。
netstat -plntu
-RedisとRabbitMQをインストールします
非同期通知が必要ない場合、これはオプションのパッケージです。以下のaptコマンドを使用してRedisとRabbitMQをインストールします。
sudo apt install -y redis-server rabbitmq-server
インストールが完了したら、redisおよびrabbitmqサービスを開始し、これらのサービスを起動時間に追加します。
systemctl start redis
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
次に、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 ".*" ".*" ".*"
-Pythonをインストールする
「taiga-back」はDjangoWebFrameworkで作成され、「Python3.5」を使用します。したがって、Python3.5をシステムにインストールする必要があります。
次のコマンドを実行して、必要なすべての依存関係を使用してPython3.5をインストールします。
sudo apt install -y python3 python3-pip python-dev python3-dev python-pip virtualenvwrapper libxml2-dev libxslt-dev
-Circusをインストールする
Circusは、プロセスマネージャーおよびソケットマネージャーです。 Linuxシステムのプロセスとソケットを監視および制御するために使用できます。
このガイドでは、CoffeeScriptで作成された「taiga-events」プロセスを管理するためにサーカスを使用します。
以下のaptコマンドを使用してサーカスをインストールします。
sudo apt install -y circus
インストールが完了したら、「circusd」サービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start circusd
systemctl enable circusd
次に、次のコマンドを使用してサービスを確認します。
systemctl status circusd
circusctl status
そして、以下のような結果が得られます。
-PostgreSQLデータベースのインストールと構成
Taiga.ioはデータベースとしてPostgreSQLを使用しており、コンポーネント「taiga-back」はデータベースとしてPostgreSQL(> =9.4)を使用しています。
次のaptコマンドを実行してPostgreSQL9.5をインストールします。
sudo apt install -y postgresql-9.5 postgresql-contrib-9.5
sudo apt install -y postgresql-doc-9.5 postgresql-server-dev-9.5
データベースのインストールが完了したら、PostgreSQLサービスを開始し、システムの起動時に毎回起動できるようにします。
systemctl start postgresql
systemctl enable postgresql
次に、Taiga.ioインストール用の新しいデータベースとユーザーを作成します。
'postgres'ユーザーにログインします。
su - postgres
以下のコマンドを使用して、「taiga」という名前の新しいデータベースとユーザーを作成します。
createuser taiga
createdb taiga -O taiga
PostgreSQLデータベースがインストールされ、Taiga.ioのデータベースが作成されました。
-Nodejsをインストールします
ノードは「taiga-events」に必要です-nodejsnodesourceリポジトリを追加し、aptコマンドでインストールします。
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt install -y nodejs
Taiga.ioのインストールに必要なすべてのパッケージが正常にインストールされました。
このステップでは、「taiga」という名前の新しいシステムユーザーを作成し、それをsudoグループに追加します。
コマンドを実行して、新しい「taiga」ユーザーを作成します。
useradd -m -s /bin/bash taiga
passwd taiga
次に、「taiga」ユーザーを「sudo」グループに追加します。
usermod -a -G sudo taiga
次に、「taiga」としてログインし、sudoコマンドを使用してみます。
su - taiga
sudo su
パスワードを入力し、root権限を取得していることを確認してください。
新しい「taiga」ユーザーが作成されました。
Taiga-backは、APIを提供するTaiga.ioのバックエンドです。 PythonとDjangoWebFrameworkで書かれています。
このステップでは、APIを提供するバックエンドとして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を使用して新しいPython環境「taiga」を作成する必要があります。
mkvirtualenv -p /usr/bin/python3.5 taiga
新しい「taiga」仮想環境にログインし、以下に示すように、pipコマンドを使用して「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 = "myverysecretkey"
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-back」のインストールと構成が完了しました。
このステップでは、taigaフロントエンドをダウンロードして構成します。フロントエンドはすべてのタイガインターフェースを処理します。
taigaユーザーとしてログインします。
su - taiga
gitコマンドを使用して「taiga-front-dist」スクリプトをダウンロードします。
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
次に、「taiga-front-dist」構成のサンプルを「conf.json」にコピーし、vimエディターを使用して編集します。
cp ~/taiga-front-dist/dist/conf.example.json ~/taiga-front-dist/dist/conf.json
vim ~/taiga-front-dist/dist/conf.json
以下のようにすべての構成を行い、「api」と「eventsUrl」を独自のドメイン名に変更します。
{
"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コマンドを使用してGitHubから「taiga-events」ソースコードをダウンロードし、「taiga-events」ディレクトリに移動します。
git clone https://github.com/taigaio/taiga-events.git taiga-events
cd taiga-events
次に、npmを使用して「taiga-events」に必要なすべてのjavascriptモジュールをインストールしてから、「coffee-script」パッケージをシステムにインストールします。
npm install
sudo npm install -g coffee-script
次に、「taiga-events」のデフォルト設定を「config.json」にコピーし、vimエディターを使用して編集します。
cp config.example.json config.json
vim config.json
以下のように設定してください。
{
"url": "amqp://taiga:[email protected]:5672/taiga",
"secret": "myverysecretkey",
"webSocketServer": {
"port": 8888
}
}
保存して終了します。
注:
- 「url」の値を自分のrabbitmqユーザーとパスワードで変更します。
- 「secret」の値は、「taiga-back」の構成ファイル「local.py」の「SECRET_KEY」と一致していることを確認してください。
Taiga-eventsの構成が完了しました。
Circusは、「taiga-back」および「taiga-events」プロセスの制御と管理に使用されます。 「taiga-events」はコーヒースクリプトとして実行され、「taiga-back」はGunicornの下で実行されています。
このステップでは、新しいタイガイベントとタイガバックをサーカスに追加します。
'taiga-events'の場合、vimを使用して新しいファイル'taiga-events.ini'を作成します。
vim /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
保存して終了します。
そして、タイガバックの場合は、新しいファイル「taiga.ini」を作成します。
vim /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」プロセスと「taiga-back」プロセスの両方に対して新しい「logs」ディレクトリを作成する必要があります。
su - taiga
mkdir -p ~/logs
次に、circusdサービスを再起動し、使用可能なすべてのプロセスを確認します。
systemctl restart circusd
circusctl status
また、以下に示すように、プロセスリストで「taiga-events」と「taiga-back」がアクティブになっていることを確認してください。
このステップでは、Taiga.io用にNginx仮想ホストを構成します。 Taiga.ioインストール用に「conf.d」ディレクトリの下に新しい仮想ホストファイルを作成します。
nginx構成ディレクトリに移動し、「デフォルト」の仮想ホストファイルを削除します。
cd /etc/nginx/
sudo rm -f sites-enabled/default
次に、「conf.d」ディレクトリの下に新しい仮想ホストファイル「taiga.conf」を作成します。
vim /etc/nginx/conf.d/taiga.conf
次の構成をそこに貼り付けます。
server {
listen 80 default_server;
server_name _;
large_client_header_buffers 4 32k;
client_max_body_size 50M;
charset utf-8;
access_log /home/taiga/logs/nginx.access.log;
error_log /home/taiga/logs/nginx.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.ioドメイン名にアクセスします。私のは:http://taiga.hakase-labs.co
そして、デフォルトのタイガホームページが表示されます。
次に、右上の[ログイン]ボタンをクリックすると、管理者ログインページが表示されます。
デフォルトユーザー'adminでログインします 'とパスワード'123123 '。
そして、以下のような結果が得られます。
次に、デフォルトの管理者パスワードをリセットします。
右上の[管理者]ボタンをクリックしてから、[パスワードの変更]をクリックします。
次に、古いパスワード「123123」と新しいパスワードを必要に応じて入力し、「保存」をクリックします。
Ubuntu16.04でのTaiga.ioのインストールと構成が正常に完了しました。