Rhodecode + Redmine-側でソフトウェアプロジェクトをホストするための安価で機能的な代替品

はじめに


インターネットへのアクセスが厳しく制限されている、または一定ではない企業がありますが、私はこれらの人をenましく思いません。 私の場合のように、企業のセキュリティポリシーでは、開発した製品のソースコードを他の人の機器に保存することが許可されていない場合があります。 さらに、すべての開発者グループが、たとえばbitbucketによって提供される十分な機能を備えているとは限りません。 これらの問題は、例えばRhodeCodeRedmineの束によって解決できます。

目標



使用製品


いくつかの考えと経験に基づいて、目標を達成するための一連のツールが決定されました。

  1. バージョン管理-Mercurial
  2. プロジェクト管理-Redmine
  3. バージョン管理リポジトリ管理-RhodeCode
  4. まあ、それはすべてDebianで始まります

ステップ0:debian(またはubuntu)をインストールする


以下のすべては、基本インストールのdebian squezeeで行われました。
ubuntu(10.04 LTS)では、パッケージベースが似ているため、変更しないでください。

ステップ1:RhodeCodeをインストールする


easy_installおよびvirtualenvが機能するために必要なパッケージをインストールします。

aptitude install python-setuptools python-dev python-virtualenv

virtualenvを使用して、新しい仮想環境を作成します。

virtualenv --no-site-packages /var/www/rhodecode-venv

/ var / www / rhodecode-venvディレクトリーに新しい仮想環境が作成されます。
次のコマンドで仮想環境をアクティブ化します。

source /var/www/rhodecode-venv/bin/activate

rhodecodeのディレクトリを作成します。例:

mkdir /var/www/rhodecode; cd /var/www/rhodecode

RhodeCodeをインストールするには、次のコマンドを実行します。

easy_install rhodecode

この時点で、easy_installスクリプトは、最新の安定バージョンのmercurialを含む、仮想環境でRhodeCodeに必要なすべての依存関係をインストールします。

ステップ2:RhodeCodeを構成する


RhodeCode構成ファイルを作成します。

paster make-config RhodeCode production.ini

この構成ファイルには、RhodeCodeのさまざまな設定(プロキシポート、電子メール、静的ファイルの使用、キャッシュ、セロリ設定、ロギングなど)が含まれています。 デフォルトでは、SQLiteがデータベースとして使用されます。

次のコマンドを実行してデータベースを作成します。

paster setup-app production.ini

スクリプトリクエストで、RhodeCodeがデータベースを配置するディレクトリへのパスを入力します。

/var/www/rhodecode/

次に、アプリケーション管理者アカウントのユーザー名、パスワード、および電子メールを入力します。 データベース作成チームは、必要なすべてのテーブルと管理者アカウントを作成します。

この構成では、次の行をproduction.iniに追加する必要があります。

1)[アプリ:メイン]セクション:

  filter-with = proxy-prefix
 force_https = true 

2)ファイルの最後:

  [フィルター:プロキシプレフィックス]
 use = egg:PasteDeploy#プレフィックス
プレフィックス= / hg 

仮想環境を離れます:

deactivate

起動スクリプト/etc/init.d/rhodecode-daemonを作成します。

 #!/ bin / sh -e
 ############################################
 ####これはDEBIAN INIT.Dスクリプトです####
 ############################################
 ###開始情報の開始
 #提供:rhodecode          
 #必須開始:$ all
 #必須:$ all
 #デフォルト開始:2 3 4 5
 #デフォルト停止:0 1 6
 #簡単な説明:ロードコードのインスタンスを開始します
 #説明:start-stop-daemonを使用してrhodecodeのインスタンスを開始
 ###終了情報の終了
 APP_NAME = "rhodecode"
 APP_HOMEDIR = "/ var / www"
 APP_PATH = "$ APP_HOMEDIR / $ APP_NAME"
 CONF_NAME = "production.ini"
 PID_PATH = "$ APP_PATH / $ APP_NAME.pid"
 LOG_PATH = "$ APP_PATH / $ APP_NAME.log"
 PYTHON_PATH = "/ var / www / rhodecode-venv"
 RUN_AS = "www-data"
 DAEMON = "$ PYTHON_PATH / bin / paster"
 DAEMON_OPTS = "serve --daemon \
   --user = $ RUN_AS \
   --group = $ RUN_AS \
   --pid-file = $ PID_PATH \
   --log-file = $ LOG_PATH $ APP_PATH / $ CONF_NAME "
 start(){
   echo "開始$ APP_NAME"
   PYTHON_EGG_CACHE = "/ tmp" start-stop-daemon -d $ APP_PATH \
       --start --quiet \
       --pidfile $ PID_PATH \
       --user $ RUN_AS \
       --exec $ DAEMON-$ DAEMON_OPTS
 }
 stop(){
   echo "$ APP_NAMEを停止しています"
   start-stop-daemon -d $ APP_PATH \
       --stop --quiet \
       --pidfile $ PID_PATH ||  echo "$ APP_NAME-実行されていません!"
   if [-f $ PID_PATH]; それから
     rm $ PID_PATH
   fi
 }
ケース「$ 1」
  開始)
    始める
     ;;
  停止)
    止まる
     ;;
  再起動)
     echo "$ APP_NAMEの再起動"
     ###停止###
    止まる
    待って
     ###開始###
    始める
     ;;
   *)
     echo "使用法:$ 0 {start | stop | restart}"
     1番出口
エサック 

必要なアクセス権を割り当てます。

  chmod a + x /etc/init.d/rhodecode-daemon 
 chown www-data:www-data -R / var / www / rhodecode 

スクリプトを自動的に実行するには、次を実行します。

insserv rhodecode-daemon

ステップ3:Redmineをインストールする


squeeze-backportsでは、redmineのバージョンが新しいのでインストールしてください。

/etc/apt/sources.listに含めます:

 deb http://backports.debian.org/debian-backports squeeze-backports main contrib non-free 

コンソールで実行します。

 適性の更新
 aptitude -t squeeze-backportsインストールredmine mercurial 

インストール中に、データベース選択ダイアログが表示されます。 私はsqliteを好みました、あなたの選択をしてください。

/ var / wwwディレクトリにリンクを作成します。

  ln -s / usr / share / redmine / public / var / www / redmine
 chown -R www-data:www-data / var / www / redmine 

ステップ4:Apacheを構成する


Redmineを実行するには、Apache Modパッセンジャーをインストールします。

aptitude install libapache2-mod-passenger

秘密鍵と証明書を作成します。

openssl req -new -x509 -days 355 -keyout your.domain.ru.key -out your.domain.ru.pem

共通名は、サーバーのドメイン名と正確に指定する必要があります。

パスワードを削除:

  cp your.domain.ru.key your.domain.ru.key.orig
 openssl rsa -in your.domain.ru.key.orig -out your.domain.ru.key
 rm your.domain.ru.key.orig 

/ etc / sslにコピー:

cp your.domain.ru.pem /etc/ssl/certs/; cp your.domain.ru.key /etc/ssl/private/

必要なモジュールが含まれています。

  a2enmod ssl
 a2enmodプロキシ
 a2enmod proxy_http 

ファイル/ etc / apache2 / sites-available / default-sslで、以下を置き換えます:

  SSLCertificateFile /etc/ssl/certs/your.domain.ru.pem
 SSLCertificateKeyFile /etc/ssl/private/your.domain.ru.key 

同じファイルのメインセクション(VirtualHost)に次の行を記述します。

1)redmineの場合:

RailsBaseURI /redmine

2)ロードコードの場合:
  <Location /hg > ProxyPass http://127.0.0.1:5000/hg ProxyPassReverse http://127.0.0.1:5000/hg SetEnvIf X-Url-Scheme https HTTPS=1 </Location> 

ファイル/ etc / apache2 / sites-available / defaultのコンテンツを次のように置き換えます。

 <VirtualHost *:80> ServerName your.domain.ru Redirect permanent / https://your.domain.ru/ </VirtualHost> 

default-ssl構成を接続します。

a2ensite default-ssl

rhodecodeを実行します。

service rhodecode-daemon start

Apacheを再起動します。

service apache2 restart

結果


RhodeCodeは次の場所で入手できます。
  https://your.domain.ru/hgパスワードはステップ2で設定されます 

Redmineは次の場所で入手できます。
  https://your.domain.ru/redmine admin admin、password admin 

どこでもhttpsを強制。

使用された文献のリスト


  1. Debianパッケージを使用してRedmineをインストールする方法。
  2. RhodeCode 1.3.3ドキュメント。 インストール。
  3. RhodeCode 1.3.3ドキュメント。 セットアップ。
  4. DebianでHTTPSで動作するようにApacheを設定する簡単な方法。


UPD: Rhodecodeで作成されたリポジトリとのRedmine統合エラーを修正するには、squezee-backportsからmercurial(2.0.1)をインストールします。
  aptitude -t squeeze-backportsはMercurialをインストールします 

Source: https://habr.com/ru/post/J140917/


All Articles