🍵

Raspberry PiにGitea(Git Web interface)をインストールする。

2022/12/10に公開
3

Gitea とは

GitHub、BitBucket 等Gitのリポジトリをクラウドに預ける時代ですが、見ず知らずの人には公開したくないといった要望もあることも事実。そのためには自分のPCにWeb画面を備えたGitリポジトリがほしいものです。  
そしてどうせなら、Raspberry Pi等24時間電源ONでも罪悪感少なめなPCがいいです。
代表的なGitLabのインストールを試みましたが、スペックが足らず断念しました。

  • 自前のPCで使えること!というかRaspberryPi で使えること
  • なるべく機能豊富であること

この2つを兼ね備えているのが、Giteaなのです。
ここの記事では1位を獲得していたので期待が持てます。

インストール手順(コマンドだけ)

$ wget https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-arm-6.xz
$ wget https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-arm-6.xz.sha256
$ sha256sum -c gitea-1.17.3-linux-arm-6.xz.sha256
$ xz -d gitea-1.17.3-linux-arm-6.xz
$ chmod a+x gitea-1.17.3-linux-arm-6
$ ./gitea-1.17.3-linux-arm-6

設定項目(最低限必要な設定、localhost は各自必要なアドレスに変更してください。)

データベース設定:
  データベースのタイプ: SQLite3
  パス : (実行ディレクトリ)/data/gitea.db
基本設定:
  サーバードメイン: localhost
  GiteaのベースURL: http://localhost:3000/

インストール手順(だらだらと)

ダウンロードサイトからカレントリリースのバージョンを探します。(現在は1.17.3)

中を見るとarmでも色々なバージョンがあります。
どれをダウンロードしたらいいのかわからないので自分の環境を確認します。

$ uname -a
Linux raspberrypi 5.4.51-v7+ #1327 SMP Thu Jul 23 10:58:46 BST 2020 armv7l GNU/Linux

arm-7 のCPUを積んでいるようです。
で、ダウンロードサイトを見てくると、arm7版が無さそうな雰囲気です。。。

公式ドキュメントには、

Running Gitea on Raspbian

As of v1.8, there is a problem with the arm7 version of Gitea, and it doesn’t run on Raspberry Pis and similar devices.

It is recommended to switch to the arm6 version, which has been tested and shown to work on Raspberry Pis and similar devices.

とありましたので、arm6版を使えば良さそうです。

で arm6版を落としてきます。

$ wget https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-arm-6.xz
$ wget https://dl.gitea.io/gitea/1.17.3/gitea-1.17.3-linux-arm-6.xz.sha256
$ sha256sum -c gitea-1.17.3-linux-arm-6.xz.sha256
$ xz -d gitea-1.17.3-linux-arm-6.xz

解凍してファイルをみると、実行したらすぐ動きそうな感じです。
実行権がついてなかったので、実行権をつけて動かしてみます。

$ file gitea-1.17.3-linux-arm-6
gitea-1.17.3-linux-arm-6: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, Go BuildID=X0MEC02bqKXjqqXP1gBu/YpFu9VnGJgTuCHifpiqK/fYvqrb0vdx7ngmpzmeJ3/VZ-kMfXoDG3d1doxibhR, BuildID[sha1]=d7bcb0405d75cdd42ed053b965eddfdcf270e613, not stripped
$ chmod a+x gitea-1.17.3-linux-arm-6
$ ./gitea-1.17.3-linux-arm-6
2022/12/10 01:17:46 cmd/web.go:106:runWeb() [I] Starting Gitea on PID: 4487
2022/12/10 01:17:46 ...s/install/setting.go:21:PreloadSettings() [I] AppPath: /home/pi/Gitea/gitea-1.17.3-linux-arm-6
2022/12/10 01:17:46 ...s/install/setting.go:22:PreloadSettings() [I] AppWorkPath: /home/pi/Gitea
2022/12/10 01:17:46 ...s/install/setting.go:23:PreloadSettings() [I] Custom path: /home/pi/Gitea/custom
2022/12/10 01:17:46 ...s/install/setting.go:24:PreloadSettings() [I] Log path: /home/pi/Gitea/log
2022/12/10 01:17:46 ...s/install/setting.go:25:PreloadSettings() [I] Configuration file: /home/pi/Gitea/custom/conf/app.ini
2022/12/10 01:17:46 ...s/install/setting.go:26:PreloadSettings() [I] Prepare to run install page
2022/12/10 01:17:47 ...s/install/setting.go:29:PreloadSettings() [I] SQLite3 is supported
2022/12/10 01:17:49 cmd/web.go:217:listen() [I] [63935fad] Listen: http://0.0.0.0:3000
2022/12/10 01:17:49 cmd/web.go:221:listen() [I] [63935fad] AppURL(ROOT_URL): http://localhost:3000/
2022/12/10 01:17:49 ...s/graceful/server.go:61:NewServer() [I] [63935fad] Starting new Web server: tcp:0.0.0.0:3000 on PID: 4487

http://example.com:3000/
に接続します。(example.com はraspberrypiのアドレス)

動きました!(歓喜)

設定

設定項目ですが、ぼっち・ざ・GiteaなのでDBはsqlite3で十分です。他には「MySQL、PostgreSQL、MSSQL、またはTiDB(MySQL プロトコル) 」が選択肢にあります。

データベース設定:
  データベースのタイプ: SQLite3
  パス : (実行ディレクトリ)/data/gitea.db
基本設定:
  サイトタイトル: "Gitea: Git with a cup of tea"
  リポジトリのルートパス: (実行ディレクトリ)/data/gitea-repositories
  Git LFSルートパス: (実行ディレクトリ)/data/lfs
  実行ユーザー名: pi
  サーバードメイン: localhost
  SSHサーバーのポート: 22
  Gitea HTTPポート: 3000
  GiteaのベースURL: http://localhost:3000/
  ログの保存先パス: (実行ディレクトリ)/log
メール設定:          (省略)
サーバーと外部サービスの設定: (省略)   
管理者アカウントの設定:      (省略)

必要な設定をいれたら「Giteaをインストール」のボタンを押す。
途中画面が切り替わっても慌てず2分ほど待ちました。
具体的には以下のメッセージがコンソールに出た後、1分半ブラウザの反応もコンソールの反応もありませんでした。

routers/init.go:136:GlobalInitInstalled() [I] ORM engine initialization successful!

その後、コンソールに以下のメッセージが出てから、

...s/graceful/server.go:61:NewServer() [I] [63940b22] Starting new Web server: tcp:0.0.0.0:3000 on PID: 5438

ブラウザにアクセスすると、無事インストールが完了しました!

今なら、data,custom,log ディレクトリを削除してもう一回./gitea-〜を実行すると、 
初期設定からやり直しできます。

ユーザ登録

後は、「アカウントが必要ですか? 今すぐ登録しましょう。」のリンクを
クリックして、管理者を登録しましょう。
(設定画面で管理者を設定していないと、初登録ユーザが管理者になります。)

ではでは、良いGiteaライフを。

Discussion

Rozetta209Rozetta209

助かりました!(^ω^)
ここですが

xz -d gitea-1.17.3-linux-arm-6.xz.sha256ではなく
xz -d gitea-1.17.3-linux-arm-6.xzではないでしょうか?

黒子黒子

指摘ありがとうございます!修正いたしました。