Giteaの設置と移行。Windowsサービスに登録して快適バージョン管理

バージョン管理は、ずっと GitBucket にお世話になってきたのですが、先日Gitbucketをバージョンアップした時にH2データベースが壊れアクセス出来なくなってしまいました (^_^;)

H2データベースよくわからず、リカバリーも出来なかった

調べるとH2データベースは壊れることがあるので、違うデータベース MySQL 等の使用を推奨されているみたい
(ただ、DBが起動不可になるのは全てのDBに言えるので、大切なのはやはりバックアップ)

そのまま Gitbucket を使い続けるより、手軽な SQLite3 が使えるのがないかなーと思い調べてみると Gitea という Go言語で作成している Gitサーバーがあったので試してみました

Gitea を Windows サービスとして起動させるまでの手順を紹介します

準備

まずは Git が使える環境を構築します

Git for Windows

Git が使えないとどうにもなりません。

詳しい手順はここでは書きませんが、Git for Windows がインストールされていない場合は、まずはこれをインストールしてください

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を使ったバージョン管理については、少し古いですが以前書いた下記記事を参考にしてください

Git入門(NetBeans からの使い方)
NetBeans での Git バージョン管理の使い方を紹介します。使いにくい部分もあるので SourceTree と併用して使用するのがお勧めです
Git入門(NetBeans からの使い方)

リポジトリブラウザーから選択したリポジトリを右クリックして表示されるポップアップメニューから 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 コマンドを実行

少し使ってみた感じでは、日本語化されていて使いやすいし、動作も軽快で気持ちいいくらいです

おすすめです。快適なバージョン管理をエンジョイしてください (^^♪


まとめ記事紹介

go-to-top