バージョン管理は、ずっと GitBucket にお世話になってきたのですが、先日Gitbucketをバージョンアップした時にH2データベースが壊れアクセス出来なくなってしまいました (^_^;)
H2データベースよくわからず、リカバリーも出来なかった
調べるとH2データベースは壊れることがあるので、違うデータベース MySQL 等の使用を推奨されているみたい
(ただ、DBが起動不可になるのは全てのDBに言えるので、大切なのはやはりバックアップ)
そのまま Gitbucket を使い続けるより、手軽な SQLite3 が使えるのがないかなーと思い調べてみると Gitea という Go言語で作成している Gitサーバーがあったので試してみました
Gitea を Windows サービスとして起動させるまでの手順を紹介します
準備
まずは Git が使える環境を構築します
Git for Windows
Git が使えないとどうにもなりません。
詳しい手順はここでは書きませんが、Git for Windows がインストールされていない場合は、まずはこれをインストールしてください
Git をインストールしたら、環境変数 PATH に C:\Program Files\git\bin を登録してください(ご自身のインストール先に合わせて変更してください)
プライベートネットワーク
Gitサーバーをプライベートネットワークで使うには、LAN内のIPアドレスを固定化しておくと便利なので必要に応じて固定化してください
IPアドレスの固定化
プライベートネットワーク内の共有データとして扱っていきたいので、localhost ではなく IP アドレスまたはコンピュータ名を指定して使用することとします
IPアドレスは固定化しておいたほうが都合がよいので、自分の環境に合わせて コンピュータのIPアドレスを固定化して下さい
ネットワーク上の別PCからアクセスする場合には、固定化した IPアドレス、
あるいは Windows のネットワークブループ内で使用しているコンピュータ名を使ってもアクセスします
Gitea
一番手軽なバイナリー版を使って設置します。バイナリー版なら Go言語も不要ですし、実行ファイルを配置するだけですみます
ダウンロード
ここから、今回は最新版の 11.1 を選んで Windows10(64bit)用のバイナリファイル gitea-1.11-windows-4.0-amd64.exe をダウンロードします
インストール
Cドライブに gitea というフォルダーを作成して、そこにダウウンロードした gitea-1.11-windows-4.0-amd84.exe をコピーし、gitea.exe にリネームしておきます
起動
PowerShell を開き C:\gitea から ./gitea web
を実行します
これで Gitea へアクセスできるようになっているはずです
ブラウザから http://localhost:3000/ にアクセスしてみます
きました。こんな表示になればOKです
ここでいったん終了させます
終了は PowerShell で Ctrl C キーで出来るはずですが、効いたり効かなかったりすることがあるので、効かないときは PowerShell 自体を終了させればOKです
初期設定
今回は SQLite3 を使い設定データを C:\gitea\data フォルダーに作成していきます。 事前に c:\gitea\data フォルダーを作っておいてください
それでは再度 PowerShell から ./gitea web
を実行します
サインインをクリックして初期設定をします
使用するデータベース毎に必要な項目が異なりますが、手軽で扱いやすい SQLite3 を選択します
他の項目も必要に応じてセットします
殆どそのままでOKと思いますが localhost の部分をプライベートネットワーク上のコンピュータ名に変更するのがお勧めです。私の場合は celtis-vaio というコンピュータ名なので http://celtis-vaio:3000/
でアクセスできるようにしています
Gitea をインストール ボタンをクリックして登録します
data フォルダーがないとデータベース設定が無効です というエラーに なるので、エラーとなった場合は data フォルダーを作成してから再実行してください
最初のユーザー(管理者)
サインインの画面が表示されたら、アカウントが必要ですか? 今すぐ登録しましょう。をクリックしてユーザーを登録します
ユーザー名、メールアドレス、パスワードを入力して登録し、サインインします。
最初のアカウントのユーザーが管理者として登録されます
アカウントの追加作成
試しに別のアカウントも作成してみます
サイト管理 -> ユーザーアカウントから ユーザーアカウント作成 をクリック
ユーザー名、メールアドレス等の必要な項目を設定して登録します
必要事項を入力して更新します
組織(グループ)
バージョン管理対象を共有するグループを登録してみます
サイト管理 -> 組織から登録します
新しい組織 をクリックして組織名を登録していきます
作成した組織を表示してみます
とりあえず自分一人がメンバーの組織が作られたようです
組織に属する複数のチームを作成できるようですが、ここではシンプルに組織までの作成とし、組織=チーム として扱っています
メンバーの追加
チームの Owners をクリックして組織に別のユーザーを追加してみます
ユーザー名を入力して チームメンバーを追加 をクリックします
雰囲気としては、プロジェクトごとに組織あるいはチームを作成して、そのプロジェクトのメンバーをチームメンバーとして登録して、リポジトリを共有していく感じです
リポジトリ作成
オーナーのところで個人か組織化のリポジトリが選択できるようになっているので、 ここでは組織がオーナーのリポジトリとして作成してみます
組織(グループ)を作成しているので、バージョン管理するリポジトリは個人でも組織でも作成することができます
これで中身が空のリポジトリが作成されましたので、表示してみます
あとは、このリポジトリにローカル側のGitクライアント( SouceTree や VSCode 、ターミナルからの Git コマンド等 )からプッシュしてバージョン管理していけばOKです
リポジトリの移行
リポジトリの移行をググってみると git clone –mirror , git push –mirror 等を使うらしいというのはわかったのですが、何せ今回は GitBucket が起動しなくなってしまったというケースなので使えません (>_<)
ローカル側のリポジトリを push する作業を地道に繰り返します
それでは、愛用している NetBeans を使いローカル側のリポジトリをリモート(Gitea)側のリポジトリへ push してみます
NetBeans でGitを使ったバージョン管理については、少し古いですが以前書いた下記記事を参考にしてください
リポジトリブラウザーから選択したリポジトリを右クリックして表示されるポップアップメニューから Remote->Push で表示されるダイアログの Repository URL に Gitea で作成したリポジトリのURLを指定し、ユーザー名とパスワードを入力して Next> をクリックします
該当リポジトリ内のブランチとタグがリストアップされるので、必要なブランチとタグを選択して Next> をクリック
Finish をクリックして Push を実行します
Gitea のリポジトリをブラウザで見てみるとタグも含めきちんと作成されています
あとは、すべてのローカルリポジトリ毎にリモート側の Gitea でリポジトリ作成して同様にプッシュする作業を繰り返して行うだけです
Gitbucket の H2 database が壊れて、どうしようかと思いましたが、これで Gitea への移行完了です
Windows サービスからの起動
毎回、PowerShell から gitea web と入力して起動させるのも面倒なので、Windowsサービスから自動で起動するように設定します
Gitea が動作中なら停止させ て、Windows サービスから起動するようにします
手順は https://docs.gitea.io/en-us/windows-service/ に書かれていましたので、これを参考にやってみたら簡単に出来ました
コンフィグファイル修正
c:\gitea\custom\conf\app.ini
をテキストエディターで開き
RUN_USER をコンピュータの名前に書き換え、Giteaをローカルシステムユーザーとして実行するように設定します
Windows サービスへの登録には管理者権限が必要のため、PowerShell(管理者)を起動します
コンピュータの名前は、 $Env:COMPUTERNAME
で表示されます
Windows サービスへの登録
sc.exe create gitea start= auto binPath= ""C:\gitea\gitea.exe\" web --config "C:\gitea\custom\conf\app.ini""
gitea.exe の PATH はご自身の環境に合わせて修正してください。
また、参考ページでは "
をエスケープして \"
としていますが、エスケープしたままだとうまくいかなかったので上記をそのまま入力してみたら登録出来ました
サービスの開始
コンピュータの管理からサービスを表示して、登録された gitea サービスを確認
右クリックしてポップアップメニューの 開始 をクリックして実行します
これで自動的に起動するようになり快適に使えるようになりました
Windows サービスからの登録解除
gitea の使用を止めるときはサービスから削除します
PowerShell(管理者)から sc.exe delete gitea
コマンドを実行
少し使ってみた感じでは、日本語化されていて使いやすいし、動作も軽快で気持ちいいくらいです
おすすめです。快適なバージョン管理をエンジョイしてください (^^♪