GitBucketをActive Directory、PostgreSQLで使う

はじめに

GitBucketは、GitHubとAPI互換な Gitリポジトリーとプロジェクト管理のできるプラットフォームを提供する ソフトウェアで、Scalaで書かれているらしい。

使いたい場合には、普通にApache Tomcat 8.5のwebappsディレクトリーに、 GitHubからgitbucket.warをダウンロードしてきて置けば良い。

しかし、標準では、データベースはH2を使っており、認証も独自のユーザー登録とパスワードの管理が必要である。 今回はActive Directoryが認証のために使用でき、データベースサーバーとしてもPostgreSQLを使用できる環境で使用するので、その設定方法を書いておく。

必要なソフトウェアのインストール

今回のサーバーは、FreeBSD/amd64 10.3なのだが、FreeBSD Portsではなくpkgsrcを使って環境を構築する。 最近、pkgsrc/lang/openjdk8がFreeBSD上で使えるようにし、 openjdk8のビルドに必要なpkgsrc/lang/guile20もmake packageが失敗しないようにしたので、その後のpkgsrcツリーで試す必要がある。 以下のように実行してインストールしておく。

$ cd pkgsrc/www/apache-tomcat85
$ make install

PostgreSQL server (pkgsrc/databases/postgresql95-server)は、 既にインストールされていて使用中なので今回はインストールしなかった。

GitBucketの初回起動

# /etc/rc.d/tomcat start
# cp gitbucket.war pkg/share/tomcat/webapps

と実行し、localhost:8080を閲覧すると、GitBucketが起動している。

PostgreSQLを使うようにする

まずは、PostgreSQLサーバーを使うように設定する。 ユーザー名/パスワード=root/rootでログインし、 System Settingを見ると、GITBUCKET_HOMEが/root/.gitbucketに なっている。


# vi /root/.gitbucket/database.conf
のように実行し、以下のようなファイル内容に書き換える。

db {
        url = "jdbc:postgresql://localhost/gitbucket"
        user = "gitbucket"
        password = "gbpassword"
##  url = "jdbc:h2:${DatabaseHome};MVCC=true"
##  user = "sa"
##  password = "sa"
#  connectionTimeout = 30000
#  idleTimeout = 600000
#  maxLifetime = 1800000
#  minimumIdle = 10
#  maximumPoolSize = 10
}
この条件に合わせて、PostgreSQLの設定をしておく。
# sudo -u pgsql psql
=# create database gitbucket with template template0 encoding 'utf8';
=# \q

# sudo -u pgsql createuser -P gitbucket
# /etc/rc.d/tomcat restart
のようにtomcatを再起動させると、自動的にgitbucketスキーマにテーブルを作成してPostgreSQLが使用可能になる。

ユーザー名rootのパスワードは、このタイミングで変更しておく。

Active Directory認証の設定

次に、Active Directoryで認証するように設定する。 System Settingsで、LDAPの項目を以下のように設定する。

LDAP host
tetera-ad.tetera.org
LDAP port
3268
Bind DN
tetera_admin@tetera.org
Bind password
tetera_admin_password
Base DN
dc=tetera,dc=org
User name sttribute
sAMAccountName
Full name attribute
displayName
Mail address attribute
mail

nginxの設定

nginxでhttpsなウェブサイトとして提供するのであれば、nginx.confで

location /gitcucket {
    http://localhost:8080/gitcucket
}
のように設定した上で、System SettingsのBase URLをhttps://gitbucket.tetera.org/gitcucketのように設定しておけば良い。

コメント

このブログの人気の投稿

#5000へCメールを送れないau端末でezweb.ne.jpの電子メールアドレスをIMAP4/SMTPで扱う方法

Vaio Pro 11/13用のサードパーティーのACアダプター

Windows 7 Professional用のNFSクライアントを使う (NFS 4.1のみ)