0
1

WindowsサービスとしてGiteaを設置する

Posted at

この記事の概要

Gitベースのソース管理ツールであるGiteaを、Windowsサービスとして登録、設置する。

用意するもの

Gitea

まずはじめにGiteaです。
公式文書でさまざまな方法が紹介されていますが、この記事ではビルド済みのgogit-windowsビルドというWindowsバイナリを使います。
ダウンロードエリアから最新版をダウンロードしてください。

この記事執筆時点ではgitea-1.22.2-gogit-windows-4.0-amd64.exeが対象ファイルです。

PortableGit

Giteaは単体では動作せず、別途GitのCLI一式が必要です。
Git for Windows - ReleasesからPortableGit版の最新をダウンロードします。

この記事執筆時点ではPortableGit-2.46.0-64-bit.7z.exeです。

自己解凍形式の実行ファイルになっていますが、7-zipなどの解凍ツールで解凍できるはずです。

ちなみに mingit では利用できないです。
(たしかコマンドが不足しているとエラーが出たはず、詳細は失念)

WinSW

Windows Service Wrapperは、あらゆるをWindowsサービス化しちゃいます。
過去記事でも紹介しているので参考にしてください。

Giteaの公式文書にはGitea単体でサービス登録する方法も掲載されていますが、ちょっと小細工したいのであえて使います。

alpha版の3.0系を使います。
この記事執筆時点では、Releaseを見ると3.0.0-alpha11というのが出ているので、.net Framework 4.61版の実行ファイルをダウンロードします。

作業内容

今回は(ちょっと諸事情で)手作業での作業内容を説明します。
(普段はScoopのmanifestつくってガリガリ入れてしまうんですが、機会があれば別記事で)

各ファイルの展開・配置

前項で入手したファイル群を配置します。
「Gitea」と「WinSW3」には、それぞれ直下にリネームした実行ファイルを配置しましょう。
「PortableGit」フォルダには、PortableGitの実行ファイルを 7-zip等の解凍ツールで開き、展開して 配置します。

アーカイブには post-install.bat というバッチが含まれていて、コマンド実行で自己解凍した場合は自動実行されてしまうようでした。
Giteaからの利用には関係なさそうで、実行したくないので。

Giteaとファイル名は展開イメージは以下のとおりです。

D:\app\Git
       ├─\Gitea
       │  └─ gitea.exe
       ├─\WinSW3
       │  └─ WinSW3.exe
       └─\PortableGit
           ├─\bin
           └─\cmd
              ...

Gitea設定ファイルの作成と配置

Giteaの設定は app.ini というファイルに保存します。

慣例的に D:\app\Git\Gitea\custom\conf\app.ini として配置することになっているようなので従いますが、任意の場所へ配置可能です。(後述)

まずは最低限、初回起動に含めたいパラメータだけ記載します。

app.ini
[database]
DB_TYPE = sqlite3
PATH = D:/app/Git/Gitea/data/gitea.db
[repository]
ROOT = D:/app/Git/Gitea/repositories
[log]
ROOT_PATH = D:/app/Git/Gitea/log
[server]
PROTOCOL = http
HTTP_PORT = 2401

gitea.exeのコマンドライン起動

上記設定の確認も兼ねて、まずは gitea.exe 実行ファイルをコマンドプロンプトから起動しましょう。

D:\app\Git\Gitea\gitea.exe web --config D:\app\Git\Gitea\custom\conf\app.ini

上記例のとおり、設定ファイルの場所は引数で指定可能です。

Windowsファイアウォールの許可設定追加

Windows 11などのクライアントOSの場合など、ファイアウォールの受信規則が有効な場合、(許可設定の追加まで)外部から接続できないと思います。

Windowsファイアウオールのブロック時通知を有効にしているならば、起動時に以下のような画面が出て、許可するか確認してくれるはず。

image.png

許可できたら、タスクマネージャからプロセス指定killして、あらためてサービス起動する。

設定したURLへのアクセス

本記事ではポート2401を指定しているので、当該マシンの2401ポートへブラウザで接続します。
以下のような画面が開けば一安心。

image.png

個々の設定の説明は、すみませんが省きます。
最初の初期ユーザの登録も、この画面から。

画面最下部に、設定ファイルの保存先が記載されているので「Giteaをインストール」ボタンを押下すれば、設定ファイルが保存され、インストール完了です。

保存された設定の確認

あらためて app.ini 開くと、作成時からパラメータが多数増えているのが分かると思います。

また、画面上で設定可能なパラメータと、そうでないパラメータもあるはず。
(暗黙的に設定されるものとか)

指定可能なパラメータは公式文書も参考に。

サービス設定ファイルの作成

本記事のポイントといってもいいかもしれない。。

WinSW3によるサービス化のため、以下内容でサービス定義ファイルを作成します。

Gitea.xml
<service>
  <id>Gitea</id>
  <name>Gitea</name>
  <description>a painless, self-hosted, all-in-one software development service.</description>
  <env name="Path" value="D:\app\PortableGit\bin;%Path%" />
  <workingdirectory>D:\app\Git\WinSW3\work</workingdirectory>
  <executable>D:\app\Git\Gitea\gitea.exe</executable>
  <arguments>web --config D:\app\Git\Gitea\custom\conf\app.ini</arguments>
  <log mode="rotate" />
  <onfailure action="restart" delay="300 sec" />
  <logpath>D:\app\Git\Gitea\log</logpath>
</service>

<env> 要素に記載のとおり、コマンド検索パスにGitのbinフォルダ追加しています。

Giteaサービスの登録

cmd.exe
C:\>winsw3 install Gitea.xml

Giteaサービスの起動

cmd.exe
C:\>sc start Gitea

その他補足

データベースの保存先

Gitea設定ファイルの作成と配置 の項の記載例では、データベースはSQLite(ファイルベース)としています。

app.ini (抜粋)
[database]
DB_TYPE = sqlite3
PATH = D:/app/Git/Gitea/data/gitea.db

リポジトリの保存先

同様に、記載例では以下のフォルダ配下に保存されます。

app.ini (抜粋)
[repository]
ROOT = D:/app/Git/Gitea/repositories

ユーザまたは組織のフォルダが作成され、その下に各プロジェクトのBareリポジトリが作成されます。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1