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の利用率はほとんど目につかないぐらいでした。ホームサーバで使うケースとしては、十分な性能だと思います。
コメント
コメントを投稿