Raspberry PiにGitea(Git Web interface)をインストールする。
Gitea とは
GitHub、BitBucket 等Gitのリポジトリをクラウドに預ける時代ですが、見ず知らずの人には公開したくないといった要望もあることも事実。そのためには自分のPCにWeb画面を備えたGitリポジトリがほしいものです。
そしてどうせなら、Raspberry Pi等24時間電源ONでも罪悪感少なめなPCがいいです。
代表的なGitLabのインストールを試みましたが、スペックが足らず断念しました。
- 自前のPCで使えること!というかRaspberryPi で使えること
- なるべく機能豊富であること
- Wiki にmermaid.jsまで使えちゃう
この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
動きました!(歓喜)
設定
設定項目ですが、ぼっち・ざ・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
1日経過して。。
なんだかんだで、結局インストール先は Synology DiskStation:216j(PDF)に落ち着きました。
Raspberry Pi 3 Bより低スペックですが、問題なく動いています。
助かりました!(^ω^)
ここですが
xz -d gitea-1.17.3-linux-arm-6.xz.sha256ではなく
xz -d gitea-1.17.3-linux-arm-6.xzではないでしょうか?
指摘ありがとうございます!修正いたしました。