AmazonLinux2 に Nginx で SSL/TLS 終端構成で Gitea をインストールする
Gitea は Go 言語で書かれた Git サーバです。 Gogs から Fork した OSS です。 今回は AmazonLinux2 に Gitea をインストールする手順をメモしておきます。 DB は選択出来ますが、今回は MariaDB を使うことにします。
環境¶
今回は以下の環境を構築していきます。
- AmazonLinux2
- フロントエンド
- Nginx
- クライアント通信を Proxy し、バックエンドの Gitea へ転送する
- SSL/TLS を終端する
- バックエンド
- Gitea
- 3000/TCP を Listen
- 内蔵 SSH サーバは 22/TCP を Listen
- DB には MariaDB を使う
Git リポジトリの接続には上述の通り、Gitea 内蔵 SSH サーバを用い、22/TCP を Listen させます。 その為、/etc/ssh/sshd_config を修正し、予め sshd が Listen するポートを (22 では無い) 別のポートへ変更しています。
Nginx¶
まず、フロントエンドを担当する Nginx をインストールします。
リポジトリの追加¶
AmazonLinux 標準リポジトリにある Nginx はややバージョンが古い為、Nginx の Mainline リポジトリからインストールします。 /etc/yum.repos.d/nginx.repo を以下の内容で新規作成します。
1 2 3 4 5 6 | |
リポジトリの定義が出来たら Nginx をインストールします。
1 | |
Gitea 用設定ファイルの用意¶
Gitea 用の設定ファイルを用意します。 ポイントは大きく以下の 2 つです。
- クライアント通信を Proxy して Gitea へ転送する
- SSL/TLS を終端する
/etc/nginx/conf.d/gitea.conf を以下の内容で作成します。 FQDN や証明書/秘密鍵のパスなどは環境に合わせて修正します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
自動起動&起動の設定¶
これで Nginx の設定は完了です。 Nginx に自動起動&起動設定を実施しておきます。
1 2 | |
MariaDB¶
次は MariaDB を構築していきます。
インストール¶
AmazonLinux 標準リポジトリにあるパッケージをインストールします。
1 | |
設定の修正¶
/etc/my.cnf の [mysqld] セクションに文字コードの設定を追加しておきます。
1 | |
自動起動&起動の設定¶
自動起動&起動の設定を実施します。
1 2 | |
初期設定¶
mysql_secure_installation で対話的に初期設定を実施しておきます。 テスト用の DB 等は削除しておく方が無難です。
1 | |
Gitea 用データベースの作成¶
Gitea 用のデータベースを作成します。 まず、MariaDB へ接続します。
1 | |
以下の SQL を実行してデータベースやユーザを作成しておきます。 データベース名、ユーザ名、パスワードは適宜、修正します。
1 2 3 4 | |
これで MariaDB の設定修正は完了です。
Gitea¶
最後に Gitea を構築していきます。
| 項目 | 値 |
|---|---|
| パス | /opt/gitea 以下へインストール |
| 実行ユーザ | root |
| 実行グループ | root |
git のインストール¶
Gitea は git コマンドに依存している為、これをインストールしておきます。
1 | |
インストール¶
GitHub からバイナリを取得し、インストールしていきます。
1 2 3 4 5 | |
systemd 用定義ファイルの登録¶
systemd から Gitea を制御出来るよう、定義ファイルを登録します。 /etc/systemd/system/gitea.service を以下の内容で新規作成します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
自動起動&起動の設定¶
systemd 用の登録ファイルを追加している為、systemctl daemon-reload してから自動起動&起動を行います。
1 2 3 | |
初期設定の実施¶
Gitea が起動したらブラウザで https://git.example.com/install へアクセスし、初期設定を実施します。 初期値と、設定値サンプルを掲載しておきます。 尚、インストーラは一度起動して設定ファイルが作成すると、再実行出来なくなります。 設定ファイルは /opt/gitea/bin/custom/conf/app.ini に作成されましたので、以降は直接このファイルを修正するか、もしくは設定ファイルを削除してインストーラを再実行して初期設定をやり直します。 更に重要なポイントですが、インストール時に指定したパラメータは、すぐには反映されないようなので初期設定が完了したら一度、Gitea を再起動 (systemctl restart gitea) し、設定を再読込しておきます。
| 項目 | 初期値 | 設定例 |
|---|---|---|
| データベースのタイプ | MySQL | MySQL |
| ホスト | 127.0.0.1:3306 | 127.0.0.1:3306 |
| ユーザー名 | gitea | gitea |
| パスワード | password | |
| データベース名 | gitea | gitea |
| サブタイトル | Gitea: Git with a cup of tea | Gitea: Git with a cup of tea |
| リポジトリのルートパス | /opt/gitea/gitea-repositories | /opt/gitea/gitea-repositories |
| Git LFS ルートパス | /opt/gitea/bin/data/lfs | /opt/gitea/bin/data/lfs |
| 実行ユーザ名 | root | root |
| SSH サーバーのドメイン | localhost | git.example.com |
| SSH サーバーのドメインポート | 22 | 22 |
| Gitea の HTTP ポート | 3000 | 3000 |
| Gitea のベース URL | http://localhost:3000/ | https://git.example.com/ |
| ログの保存先パス | /opt/gitea/bin/log | /opt/gitea/bin/log |
| SMTP ホスト | ||
| メール送信者 | ||
| SMTP ユーザー名 | ||
| SMTP パスワード | ||
| 登録にはメールによる確認が必要 | ||
| メール通知を有効にする | ||
| ローカルモードを有効にする | ||
| Gravatar を無効にする | チェック | |
| フェデレーテッド・アバターを有効にする | チェック | |
| OpenID を使ったサインインを有効にする | チェック | |
| セルフ登録を無効にする | チェック | |
| 外部サービスを使用した登録のみを許可 | ||
| OpenID を使ったセルフ登録を有効にする | チェック | チェック |
| CAPTCHA を有効にする | ||
| ページ閲覧にサインインが必要 | ||
| デフォルトでメールアドレスを隠す | ||
| デフォルトで組織の作成を許可 | チェック | チェック |
| デフォルトでタイムトラッキングを有効 | チェック | チェック |
| メールを隠すときのドメイン | noreply.example.org | noreply.example.org |
| 管理者ユーザー名 | gitea-admin | |
| パスワード | password | |
| パスワード確認 | password | |
| メールアドレス | gitea-admin@example.com |
初期状態では下記のような表示になっていました。

内蔵 SSH サーバを有効化する¶
少なくても現バージョンの Gitea の Web インストーラには「内蔵 SSH サーバを利用するか?否か?」という選択が無いように見えます。 その為、Web インストーラでの初期設定が完了したら手動で /opt/gitea/bin/custom/conf/app.ini の [server] セクションへ下記を追加します。
1 | |
追記が完了したら Gitea を再起動し、設定変更を反映します。
1 | |
ログイン¶
これで準備完了です。 ブラウザで https://git.example.com へアクセスすると下記のような画面が表示されるはずです。 初期設定で「ページ閲覧にサインインが必要」と設定している為、ログインせずに画面上部の エクスプローラ をクリックしてもユーザやリポジトリ情報が表示される前にログインを要求されます。

参考¶
/opt/gitea/bin/custom/conf/app.ini (サンプル)¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | |
/etc/my.cnf (初期状態)¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |