GitBucket 向け PostgreSQL の設定

GitBucket上のデータはデータベースで管理されていますが、そのデフォルトは Java で作られた SQLデータベースである H2 database です。

この H2データベースの使用に関して、GitBucket のシステム設定画面でも以下のような注意喚起が行われています:

GitBucket is using the embedded H2 database. It's recommended that you configure GitBucket to use an external database if you're running GitBucket in a production environment.

因みに "production environment" とはシステム開発において「本番環境」とか「本番系」とか言われる「システムを実際に稼働させ運用させる環境」のことです。

今回はホームサーバとは言え「本番系」であることもあり、外部データベース上にデータを保存しようかと思います。

データベースサーバは幾つか選択可能ですが、今回は PostgreSQL を使用します。

設定のやり方は、GitBucketのWiki にある External database configuration ページに記載されている通りです。なお、その設定の際に、「GITBUCKET_HOME」がどこであるかも確認しておく必要があるので、上記のシステム設定画面に表示されている GITBUCKET_HOME を確認しておきます。

まず最初に gitbucket を停止します。tomcat ベースで動作させている場合には、

systemctl stop tomcat9

などを発行する形になります。

次に postgres 上に gitbucket のユーザ登録とデータベースの作成を行います。postgres ユーザとなり、psqlコマンドにて行います。

$ sudo su - postgres
$ psql

psql (14.7 (Ubuntu 14.7-0ubuntu0.22.04.1))

Type "help" for help.



postgres=# CREATE DATABASE gitbucket;

CREATE DATABASE

postgres=# CREATE USER gitbucket_user WITH ENCRYPTED PASSWORD 'ここにパスワード';

CREATE ROLE

postgres=# GRANT ALL PRIVILEGES ON DATABASE gitbucket TO gitbucket_user;

GRANT

postgres=# GRANT CONNECT ON database gitbucket to gitbucket_user;

GRANT

postgres=# \q

なお psql コマンドを抜ける時は "\q" と入力します。


その後、database.conf ファイルを作成して先ほどの GITBUCKET_HOME に記載されているフォルダに置きます。

そして tomcat を起動します(systemctl start tomcat9)。

これにより無事に PostgreSQL をバックエンドデータベースとした GitBucket が動作します。


もし PostgreSQL 上で正しくユーザ登録が出来ているかや、データベースの状況を確認するには、先ほどと同じように psql コマンド上で各種情報確認を行います(SQL文で)。

~$ psql
psql (14.7 (Ubuntu 14.7-0ubuntu0.22.04.1))
Type "help" for help.

postgres=# select usename from pg_user;
    usename
----------------
 postgres
 gitbucket_user
(2 rows)

postgres=# select * from pg_user;
    usename     | usesysid | usecreatedb | usesuper | userepl | usebypassrls |  passwd  | valuntil | useconfig
----------------+----------+-------------+----------+---------+--------------+----------+----------+-----------
 postgres       |       10 | t           | t        | t       | t            | ******** |          |
 gitbucket_user |    16385 | f           | f        | f       | f            | ******** |          |
(2 rows)

postgres=#

この先、データベースのバックアップ作業が必要になってきますが、そこは PostgreSQL 側の操作の話になるので、別の記事 にしようかと思います。

実際に Eclipseから多数のプロジェクトの Commit and Push を行いました。

一例として 30000個ぐらいのファイルを一度に行いましたが、特段問題もなく、数秒ぐらいで Push を完了しました。同じタイミングでサーバ側の CPU利用率・タスク利用率も見てましたが、一瞬 java (tomcat+gitbucket)が100%になったぐらいで、PostgreSQLの利用率はほとんど目につかないぐらいでした。ホームサーバで使うケースとしては、十分な性能だと思います。


コメント

このブログの人気の投稿

tomcat10をやめてtomcat9に戻る日...

このブログについて