QNAP NASでgiteaを動作させる

QNAP NAS(TS-133)の「Container Station 3」でGitLabを動作させようと調べたところ動作条件が厳しそうなので、giteaを動作させることにしました。

giteaに関係するアプリケーションおよびツールを動作させる手順を記載します。
・Dockerアプリのgitea
・QNAP NASアプリのMariaDB 10
・QNAP NASアプリのphpMyAdmin
・QNAP NASのWebサーバー
既に動作させているサーバーはSSHサーバ(ポート:22、SFTP有効)です。

Webサーバー

Dockerアプリケーションで「gitea」を動作させるためのDBは「MariaDB 10」を使用します。
「MariaDB 10」アクセスのGUIは「phpMyAdmin」を使用したいので、まずはWebサーバーを有効にします。
「Container Station 3」のコントロールパネル – アプリケーション – Webサーバー を選択して設定画面を表示します。設定は、ほぼデフォルト設定のままで良さそうなので以下設定にしました。

Webサーバーを有効にする有効
ポート番号80
HTTP圧縮を有効にする
セキュリティ保護された接続(HTTPS)を有効にする有効
TLSバージョン互換性1.2以降
強力な暗号スィートを有効にする
セキュリティ保護された接続(HTTPS)のみを使用にする
クライアントの最大数256
IFrame内にWebサーバーの埋め込みはできません有効
X-Content-Type-Options HTTPヘッダーを有効にする有効
Content-Security-Policy HTTPヘッダーを有効にする有効

MariaDB 10

App CenterからMariaDB 10をインストールして動作設定します。
設定は、ほぼデフォルト設定のままで以下設定にしました。

SQLサーバーMariaDB 10.5.8
ドメインソケット/var/run/mariadb10.sock
TCP/IPネットワークを有効にする有効
ポート番号3307

phpMyAdmin

App CenterからphpMyAdminをインストールして動作設定します。
設定は、以下設定にしました。

ユーザ名root
パスワードrootのパスワード
サーバの選択MariaDB 10

ログイン後、giteaで使用するデータベースとユーザを追加します。

データベースを新規作成します。

データベース名gitea
キャラクタセットutf8mb4_bin

ユーザアカウントを追加します。

ユーザ名gitea
ホスト名%
パスワードgiteaのパスワード
認証プラグインネイティブMySQL認証
同名のデータベースを作成してすべての権限を与える
ワールドカード(ユーザ名_%)に該当するデータベースにすべての権限を与える
データベースgiteaへのすべての権限を与える有効
グローバル権限すべてチェックする
SSLREQUIRE NONE

Container Station 3(Docker) gitea

Container Station の[イメージ]画面を開いて右上の[検索]から「gitea/gitea」を検索して、任意バージョンを選択してdockerイメージをプルします。私はlatestでプルしました。因みに現在gitea安定版は1.20.4

Container Station の[コンテナ]画面を開いて以下設定で[新規作成]します。

モード基本モード
レジストリDocker Hub
イメージgitea/gitea:latest
名前gitea
再起動ポリシー停止時以外
露出ポート22/tcp, 3000/tcp
ネットワークモードデフォルト(NAT)
デフォルトWeb URLポート3000
※その他の設定はデフォルトのままとした

Container Station の[アプリケーション]画面を開いて[新規作成]します。

docker-compose.yml は以下の通り。

version: "3"

networks:
  gitea:

volumes:
  gitea:

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__database__DB_TYPE=mysql
      - GITEA__database__HOST=landisk02:3307
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=データベースgiteaのパスワード
    restart: always
    networks:
      - gitea
    volumes:
      - gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - 3000:3000
      - 222:22

GITEA__database__HOSTは、私がNTTルータに設定済みのホスト名です。ホスト名にはIPv4アドレスも指定可能です。(例 GITEA__database__HOST=192.168.1.100:3307)

Web URLをクリックするとgitea初期設定画面が新しいブラウザ画面に表示されます。

gitea

変更する箇所はなく、上段のインストールボタンを押します。

数秒後にはログイン画面が表示されます。上画面のオプション設定の[管理者アカウントの設定]を行わなければ、最初に登録したユーザが管理者になります。gitea公式URL情報。

これで完了です。