2026年2月11日水曜日

gitea入れた

ちょっとしたリポジトリを管理したいがgithubに入れるほどでもない。というかgithubはなんか遅くて普段使いには向かない気がする。

単に置いとくだけだと何を作ったのかすらわからなくなる。せっかくraspiを買ったのでgitサーバを入れようと思った。 

ローカルで動かすgithubみたいなものとしてgitlabがあるけど、自分しか使わないのにローカルで動かすには重すぎる。できるだけ軽そうなやつを探してgiteaとやらを入れてみた。

インストール 

raspi debianにパッケージはなさそうだったので手動で入れる。
参考URL: https://docs.gitea.com/installation/install-from-binary

書いてある通りにユーザを作る 

# On Ubuntu/Debian:
adduser \
   --system \
   --shell /bin/bash \
   --gecos 'Git Version Control' \
   --group \
   --disabled-password \
   --home /home/git \
   git

次にインストール先を作る
見たところインストール先は任意に決められそうだったので、設定やらなにやら全部一か所にまとめて入れることにした。 

cd /mnt/disk/gitea
mkdir -p etc var/lib/{custom,data,log} bin

インストール先のディレクトリ構成は以下のような感じにした。etcに設定ファイル、binに実行ファイルを入れる。varにリポジトリ等が入るはず。

gitea/
gitea/etc
gitea/var
gitea/var/lib
gitea/var/lib/log
gitea/var/lib/custom
gitea/var/lib/data
gitea/bin 

binにバイナリを置く

wget https://dl.gitea.com/gitea/1.25.4/gitea-1.25.4-linux-arm64
chmod a+x gitea-1.25.4-linux-arm64
mv gitea-1.25.4-linux-arm64 gitea/bin

systemdのサービスを置く。サンプルがあるので取ってきて編集。
参考URL: https://docs.gitea.com/installation/linux-service 

wget https://raw.githubusercontent.com/go-gitea/gitea/refs/heads/release/v1.25/contrib/systemd/gitea.service
mv gitea.service gitea/etc

gitea.serviceを編集。以下の行を変えたくらい

WorkingDirectory=/mnt/disk/gitea/var/lib/
ExecStart=/mnt/disk/gitea/bin/gitea web --config /mnt/disk/gitea/etc/app.ini
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/mnt/disk/gitea/var/lib

とりあえず全部gitユーザにする

chown -R git:git gitea/ 

systemdに置く(リンクにした) 

cd /etc/systemd/system
ln -s /mnt/disk/gitea/gitea.service ./ 

サービス有効&サービス起動

systemctl enable gitea
systemctl start gitea

動いた。(以下はいくつかリポジトリを登録した後)

 

まだ大して使ってないが、なかなか軽くてよさげな気がする。gitlabよりgithubに近い感じ。

これで適当に書き散らかしていたプログラムを集約できる。(すでに行方不明になっているものも多いが) 

sshアクセス

httpで毎回パスワード聞かれるのがうっとおしいのでsshでアクセスしたい。が、sshでcloneしようとするとgitユーザになってパスワードを聞かれる。ssh-keygenで作ったpubkeyは登録してあるが。。。

git clone git@192.168.11.50:ttfugapiyo/photofix.git
git@192.168.11.50's password:

検索したところgitユーザをssd_configで許可すればいいようだ。
参考URL: https://forum.gitea.com/t/gitea-requests-password-with-a-correct-ssh-key/7870

/etc/ssh/ssd_configを見ると、うちのraspiではAllowGroupsで_sshグループが許可されている。(いつ入ったのか不明。raspi osのデフォルトなのか、openmediavaultの設定なのか)
なのでgitユーザを_sshグループに入れればよさそう。

usermod -aG _ssh git

これでclone / push / pullできた。