10
9

More than 3 years have passed since last update.

GiteaをUbuntuにインストール

Last updated at Posted at 2020-08-14

備忘録です。
GiteaをUbuntuにインストールしました。

Gitは基本コマンドラインで操作しますが、GitHubのように、GUIから一覧管理できると便利です。Giteaがうってつけです。

Gitea – Git with a coup of tea
 https://gitea.io/ja-jp/

インストール

以下の手順に従います。

Installation from binary
 https://docs.gitea.io/en-us/install-from-binary/

とりあえず、Gitをインストール

# apt-get install git

以降が、Giteaのインストール

$ wget -O gitea https://dl.gitea.io/gitea/1.12.2/gitea-1.12.2-linux-amd64
$ chmod +x gitea
# cp gitea /usr/local/bin/gitea
# adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
# mkdir -p /var/lib/gitea/{custom,data,log}
# chown -R git:git /var/lib/gitea/
# chmod -R 750 /var/lib/gitea/
# mkdir /etc/gitea
# chown root:git /etc/gitea
# chmod 770 /etc/gitea

自動起動のため、systemdファイルを作成します。

vi /etc/systemd/system/gitea.service

/etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
###
# Don't forget to add the database service requirements
###
#
#Requires=mysql.service
#Requires=mariadb.service
#Requires=postgresql.service
#Requires=memcached.service
#Requires=redis.service
#
###
# If using socket activation for main http/s
###
#
#After=gitea.main.socket
#Requires=gitea.main.socket
#
###
# (You can also provide gitea an http fallback and/or ssh socket too)
#
# An example of /etc/systemd/system/gitea.main.socket
###
##
## [Unit]
## Description=Gitea Web Socket
## PartOf=gitea.service
##
## [Socket]
## Service=gitea.service
## ListenStream=<some_port>
## NoDelay=true
##
## [Install]
## WantedBy=sockets.target
##
###

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
# If using Unix socket: tells systemd to create the /run/gitea folder, which will contain the gitea.sock file
# (manually creating /run/gitea doesn't work, because it would not persist across reboots)
#RuntimeDirectory=gitea
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024, uncomment
# the two values below, or use socket activation to pass Gitea its ports as above
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE
###

[Install]
WantedBy=multi-user.target

とりあえず、Giteaを起動させます。

# systemctl start gitea

/etc/giteaにapp.iniが生成されます。
私の場合、デフォルトのポート番号3000が他とかぶっていたため、変更しました。

vi /etc/gitea/app.ini

・・・
[server]
HTTP_PORT = 3001
・・・

再起動

# systemctl restart gitea

MySQLにデータベース作成

Gitea経由で設定した情報の管理のために、MySQLを使います。

 DB名:giteadb
 照合順序:utf8mb4_unicode_ci

ブラウザからログイン

以下のURLをブラウザから開きます。

 http://【インストールしたPCのホスト名】:3000

image.png

右上の登録からユーザを追加
※一番最初に登録したユーザは管理者として登録される。以降は一般ユーザとして登録される。

image.png

最初に接続するDBの設定画面が表示されるので、作成したデータベースの情報とデータベースのホスト名:ポート番号、ログインユーザ名・パスワードを指定する。(メール設定欄がありますが、使わないのであれば、そこに何も入力しないこと。)

うまくいきましたでしょうか?

image.png

あとは、GitHubと同じ要領で操作できます。

後処理

(参考)
 https://docs.gitea.io/en-us/config-cheat-sheet/

〇セルフユーザ登録の無効化

誰でも右上の登録から、ユーザ登録してログインできてしまっています。以下で無効化します。

vi /etc/gitea/app.ini

/etc/gitea/app.ini
DISABLE_REGISTRATION = false
ENABLE_OPENID_SIGNUP = true

DISABLE_REGISTRATION = true
ENABLE_OPENID_SIGNUP = false

〇パスワード制限の緩和

結構パスワードの制限がきついので、緩和したい方向け。

vi /etc/gitea/app.ini

/etc/gitea/app.ini
[security]
PASSWORD_COMPLEXITY = off

〇app.iniの保護

DBのセットアップが完了して、app.iniが更新されたので、もうWebからの変更は不要です。以下で、アクセス権を制限します。

# chmod 750 /etc/gitea
# chmod 640 /etc/gitea/app.ini

○その他

PC再起動後も自動起動させます。

# systemctl enable gitea

Giteaを再起動します。

# systemctl restart gitea

リポジトリをNFSに設定

リポジトリをRAID化された別のNASにマウントします。プロトコルはNFSにしました。(この作業は必須ではありません)

# apt-get install nfs-common

idmapd.confにこのPCのホスト名を記載します。

vi /etc/idmapd.conf

Domain = 【このPCのホスト名】

次回PC起動後も有効にします。以下を追記します。

vi /etc/fstab

/etc/fstab
【NFSサーバのホスト名】:/git_data /home/git/gitea-repositories nfs defalts 0 0

以下のようにマウントして、データを丸ごとコピー

# cd /home/git
# mv gitea-repositories gitea-repositories.org
# mkdir gitea-repositories
# mount /home/git/gitea-repositories
# cp -Ra /home/git/gitea-repositories.org/* /home/git/git-repositories/
# chown git:git /home/git/gitea-repositories

以上

10
9
1

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
10
9