Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

RhodeCodeがまたOSSになったそうですね

More than 3 years have passed since last update.

RhodeCode、2.0.0になる前だったかは自分用のMercurialサーバとして利用していました。
が、EnterpriseになってなんだかややこしくなったのでKallitheaに逃げておりました。

そしたら2016年6月あたりからRhodeCode CEというオープンソース版ができ、さらにSubversionも管理できるようになったようです。

デモもあるので眺めてみても良いでしょう。
https://try.rhodecode.com/

というわけで、せめてインストールくらいはしてやろうとしたメモです。
なお、構成のところは実際インストールとかしてみてこういうことなのかなって思いながら書いたので間違ってたら申し訳ありません。

環境は以下の通りです。

  • さくらVPS
  • CentOS 7.2
  • RhodeCode 4.1.2

RhodeCodeの構成

RhodeCodeは大きく5つに分かれているようです。

  1. コマンドライン
    rccontrol等のコマンドラインツールです。RhodeCode自体の起動や停止、インスタンスの作成、起動、停止などを行います。

  2. Control (supervisord)
    RhodeCodeで基幹のプロセスです。supervisordrccontrolがやり取りをしてインスタンスの制御を行います。

  3. VCSServer
    VCSのサーバ本体のインスタンスになります。rccontrolからsupervisordを介して制御を行います。

  4. Community Edition (CE)
    オープンソース版RhodeCodeのWebフロントエンドです。ブラウザからアクセスできるインスタンスで、アクセスすると1.6あたりとは違ったフラットな画面が表示されます。後ろではVCSServerと通信し、リポジトリの操作なんかを行います。

  5. Enterprise Edition (EE)
    有償版ですね。僕は使いません。

インストールの流れとしては、

  1. Controlのインストール
  2. VCSServerインスタンスを作成
  3. Community Editionインスタンスを作成

という感じです。Controlのインストール時にコマンドラインツールもインストールされます。

Controlインストール

まずはRhodeCodeを実際に動かすユーザを作成します。

console
# useradd -d /opt/rhodecode -m rhodecode
# su rhodecode

続いてインストーラのダウンロードを行います。

console
$ wget --content-disposition https://dls-eu.rhodecode.com/dls/NzA2MjdhN2E2ODYxNzY2NzZjNDA2NTc1NjI3MTcyNzA2MjcxNzIyZTcwNjI3YQ==/rhodecode-control/latest-linux-ce

インストーラを実行します。

console
$ chmod +x RhodeCode-installer-linux-build20160616_2350
$ ./RhodeCode-installer-linux-build20160616_2350
Do you accept the RhodeCode Control license?
Press [Y] to accept license and [V] to view license text: Y

20%  [ ###############------------------------------------ ]

Installation successful!

ライセンスを承諾するか表示するか聞かれるので、Yを押して承諾します。ちゃんと確認したい方はVを押しましょう。

Installation successful!が表示されたらControlのインストールが完了なので、試しにインスタンスのステータスを表示するコマンドを実行してみます。

console
$ rccontrol status
No instance exist.

インスタンスの作成はまだやってないので、ありませーん言われます。

VCSServerインストール

VCSServerのインスタンスを作成します。

console
$ rccontrol install VCSServer
Do you accept the RhodeCode VCSServer license?
Press [Y] to accept license and [V] to view license text: Y
IP to start the server on [127.0.0.1]: (そのままEnter)
Port for the server to start [10001]: (そのままEnter)
Creating new instance: vcsserver-1
Installing RhodeCode VCSServer
Downloading https://dls.rhodecode.com/linux/RhodeCodeVCSServer-4.1.2+x86_64-linux_build20160616_2350.tar.bz2 ...
Extracting VCSServer ...
Configuring RhodeCode VCS Server ...
Saving accepted license locally under /opt/rhodecode/.rccontrol/vcsserver-1
Supervisord state is: RUNNING
Added process group vcsserver-1

待ち受けIPアドレスやポート番号は、各環境に合わせて入力してください。通常はそのままでもよさそうです。

さくらVPSの一番安いやつという環境のせいなのかタイミングなのか、VCSServerのダウンロードが非常に時間がかかりました。URLを自PCのブラウザに貼り付けて直接ダウンロード、SFTPかなんかでサーバにアップロードしてオフラインモードで実行したほうが早かったです。

ダウンロードしたファイルを/opt/rhodecode/.rccontrol/cacheに置いておきます。そして以下のコマンドでオフラインモードで実行ができます。

console
$ rccontrol install VCSServer --offline

ステータスを確認してみましょう。

console
$ rccontrol status

 - NAME: vcsserver-1
 - STATUS: RUNNING
 - TYPE: VCSServer
 - VERSION: 4.1.2
 - URL: http://127.0.0.1:10001

Community Editionのインストール

続いてCommunity Editionのインスタンスを作成します。

console
$ rccontrol install Community
Do you accept the RhodeCode Community license?
Press [Y] to accept license and [V] to view license text: Y
Username [admin]: (管理者ユーザ名を入力してEnter)
Password (min 6 chars): (パスワードを入力してEnter)
Repeat for confirmation: (パスワードを入力してEnter)
Email: (メールアドレスを入力してEnter)
Repositories location [/opt/rhodecode/repos]: (デフォルトでよければそのままEnter)
IP to start the RhodeCode Community server on [127.0.0.1]: (デフォルトでよければそのままEnter)
Port for the RhodeCode Community server to use [10002]: (デフォルトでよければそのままEnter)
Database type - [s]qlite, [m]ysql, [p]ostresql: (SQLiteがいいのでsをタイプ)
SQLite selected
Creating new instance: community-1
Installing RhodeCode Community
Downloading https://dls.rhodecode.com/linux/RhodeCodeCommunity-4.1.2+x86_64-linux_build20160616_2350.tar.bz2 ...
Extracting Community ...
Configuring RhodeCode Community ...
Configuration of RhodeCode Community passed.
Saving accepted license locally under /opt/rhodecode/.rccontrol/community-1
Supervisord state is: RUNNING
Added process group community-1

ここでは、Webでアクセスしたときの管理者ユーザ・パスワードなどが聞かれます。ナイスなものを入力しましょう。

リポジトリを配置しているパスは、既存のものがあればそれを指定してもよいでしょう。ただ、最初に作成したrhodecodeユーザの権限でアクセスするので、対象のディレクトリやファイルのパーミッションには気を付けましょう。僕はミスった。

また、データベースについても聞かれます。PostgreSQLやMySQLも利用できるようですが、今回特に用意はしておらずSQLiteでいいやってことでSQLiteを選択しています。他を選ぶとまた入力項目が増えると思いますが試してないのでわからず。

VCSServerの時と同様、ダウンロードがとても遅かったです。もちろんオフラインモードでの実行はできるので、もし遅ければ試すと良いかなと思います。

またステータスを確認してみます。

console
$ rccontrol status

 - NAME: community-1
 - STATUS: RUNNING
 - TYPE: Community
 - VERSION: 4.1.2
 - VCS: vcsserver-1
 - URL: http://127.0.0.1:10002

 - NAME: vcsserver-1
 - STATUS: RUNNING
 - TYPE: VCSServer
 - VERSION: 4.1.2
 - URL: http://127.0.0.1:10001

作成したCommunityのインスタンスが増えました。

インタフェースを日本語にする。

このままではすべて英語になっているので、できれば日本語がいいです。まぁ所々英語のままなんですけどね。

/opt/rhodecode/.rccontrol/community-1/rhodecode.ini
[app:main]
lang = ja

[app:main]セクションにlangの定義がたしかあるので、jaを指定します。
その後、インスタンスを再起動します。

console
$ rccontrol restart community-1

あとはブラウザからアクセスすると、昔に比べるとがらっと変わった画面が表示されます。
ただしURLが http://127.0.0.1:10002/ となるのでNginxでリバースプロキシかますなりインストール時にいい感じに待ち受けるようにするなり、状況に応じて必要です。
ちなみに僕はさくらVPS内に構築したのでNginxでリバースプロキシしました。

最後に

少しだけ使ってはみたのですが、正直、こう、重いですね…。
インスタンスとしてCommunityとVCSServerと分かれているせいか、さくらVPSの一番安いプランがそうさせるのか、はたまた別の原因か。Kallitheaを使っているときに比べてどうにもレスポンスがうーんって感じます。

あとデザインはEnterpriseになる前の濃い青基調なRhodeCodeのほうが好きかなと。これは完全に好みの問題ですが。

機能フル活用するワケでもないので、Kallitheaでもいいかな感…。

kamemory
gitよりhg使ってたのにgit使わされるマン
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away