Giteaのセルフホストに挑戦してみる

きっかけ
現在、ObsidianのVaultをGithubに上げることで複数環境で同期をとっています(まあこれも正直どうなのかと思うが・・・)
そして今日(2024/07/27)、このVaultの中にちょっと審議が入る感じの画像(エッチ…と僕は判断した)が含まれることになった
「Google Driveとかってそういった画像があったりすると急に怒られたりするっていう噂を聞くよな〜一応念のためにGithubはその辺どうなのか調べておこうかな」
っと思い立ち調べてみた結果・・・
ダメっぽい!!!!
知らん振りしてあげてもいいかなと思ったのですが(これはギリエッチじゃねぇ!!) ダメっぽいし、まあ結構個人的なものをあげるのもどうなのか?(これも怒られるのかな・・・すみません・・・)と思ったこともあり、別の方法を考えてみることにしました。
動けばええねん・・・
ちょうど手元にあるラズパイゼロ2ちゃんを活用してどうにかできないかな〜と考えていました。
南の島の湿気?にやられてしまったゼロちゃん。可哀想に。ごめんよ・・・
確か、GitlabっていうのがほぼGithubと同じことができてセルフホストできたよね??それを試してみようかな?と思ったのですが、どうやらかなり重たいらしい。
っということで調べてみたところGiteaというものがあるようですね。 こっちはかなり軽量らしい。
やっていこう
ラズパイのセットアップをする
やっていきましょう。まずはUSBメモリがないことに気づいたのでどうしようか悩んでいます。こういったものの管理が下手くそすぎます。
仕方ないのでこの4GBのUSBメモリを使用しようかな
(残念ながらぶっ壊れていたため、別の8GBのUSBメモリを使用しました)
SDカードはしょっちゅう書き換えをするとすぐに寿命がきちゃうという噂を聞いたので少し避けたいのですね。
まずは、覚えやすいようなホスト名を考えたり色々やっていきます
ごちゃごちゃやってssh接続できるところまでやりました
そしてとりあえずsudo apt update -y && sudo apt upgrade -y
のおまじないをかけてあげます
Giteaのダウンロード等々をする
ぶっちゃけ何をしたら良いかわからないけど
https://docs.gitea.com/installation/install-from-binary
ここの指示に従って進めてみる
wget -O gitea https://dl.gitea.com/gitea/1.22.1/gitea-1.22.1-linux-arm64
chmod +x gitea
AIちゃんがラズパイzero2ちゃんはarm64に対応しているといっていたのでそれを信じて上記のコマンドを実行します
GPG署名というものをするようです。何をしてるのか全くわかりません。改竄防止とかでしょうか?
gpg --keyserver keys.openpgp.org --recv 7C9E68152594688862D62AF62D9AE806EC1592E2
gpg --verify gitea-1.22.1-linux-amd64.asc gitea
gpg: Good signature from "Teabot <[email protected]>" [unknown]
なんか知らないけどGoodって言われているので多分良いのでしょう。次に進もう!!
sudo apt install git
gitをインストールします
# On Ubuntu/Debian:
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
ユーザを作成するためのコマンドを実行するそうです
sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea
そして必要なディレクトリたちを作るようです。permissionで怒られたので全てsudoを頭につけました。ここで気づいたのですが、うまいことgitユーザを作れていなかったので修正。sudo adduserにしたらうまいこといけました。
インストール後に/etc/gitea
の権限を変更するのをお忘れなく、とのことです。任せてくださいよ。
(追記:めちゃめちゃ権限を変更するの忘れていました!!今読み返していて気づいた!!)
なんか他の方法もあるようですが、よくわからないのでパスで
次の手順はLinuxサービスとしてGiteaを動かす場合は無視できるようです。ので、無視しすることにします。
sudo cp gitea /usr/local/bin/gitea
バイナリの場所を移動させる?みたいです
bashのオートコンプリートをいい感じにする方法があるみたいです。せっかくなのでやってみますか。間違った手順かもだけど
wget -O bash_comp https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/autocompletion/bash_autocomplete
これでスクリプトをダウンロード
sudo mkdir /usr/share/bash-completion/completions/gitea
ディレクトリを作って
sudo mv bash_comp /usr/share/bash-completion/completions/gitea/
移動させる。これでいいのか???わからん!!
Giteaを実行する
の前に、サービスファイルを作るといいらしい
https://docs.gitea.com/installation/linux-service
wget https://raw.githubusercontent.com/go-gitea/gitea/release/v1.22/contrib/systemd/gitea.service
ダウンロードする(wgetってすごい便利・・・?)
sudo mv gitea.service /etc/systemd/system/
移動させるみたい
sudo systemctl enable gitea
sudo systemctl start gitea
これで実行できているみたい・・・??手応えを感じないけど・・・
よくわからないので調べてみる
3000番ポートでアクセスするみたいだけど、そこを開けていないから怒られているのかな?
https://server.xn--minecrafter-k83ja61doa.com/introduction/ip-and-port/
試してみる
sudo apt install ufw
sudo ufw allow 22/tcp
sudo ufw allow 3000/tcp
sudo ufw enable
とすると脅されるのでビクビクしながらyを選択
この状態でアクセスしたら何か表示されたりするのかな・・・?
あれ?もしかしてドメイン名の指定が不味かった??ホスト名.localにしてアクセスせずに、ifconfig
を実行して取得したipアドレスを指定したら上手くいった
表示されてしまった・・・ufwの件いらなかったかも・・・
Database TypeだけSQLite3に変えてInstall Giteaをクリックします
最近紅茶を飲んでいませんね
アカウントを登録することができたみたいです!
ObsidianのVaultを投げてみる
リポジトリを作成します。(もはや全てのリポジトリがprivateでは??自分しか使わないからね・・・もしかしてセルフホストってぼっちに厳しい??)
SSH keyを登録します。設定からできるみたいです。この辺もGitHubとほぼ同じですね
ObsidianのVaultがあるディレクトリに移動して・・・
git remote set-url origin ここにURL
でリモートリポジトリのURLを変更できるらしいですよ
この状態でコミットして
git push -u origin main
をします
…の前にsshのconfigファイルを設定してあげましょう(1敗)
Host IPアドレスでした
HostName ipアドレスとか
IdentityFile /path/to/.ssh/secretKey
User git
正直なんでconfig書いたら動くのかも理解していないのよね・・・ Hostの後ろとHostNameをIPアドレスにしたら動くようになりました・・・結構詰まった・・・
おーー!ちゃんと動いているわ!!!
一応a-Shellを使ってpullすることもできそう。ただちょっとトラブった感じするけどね。元々configに書かれていたgithubのものを消して、鍵はそのまま流用(edなんたら形式・・??だったのがよかったのかなぁ・・・)したらpullできるようになった!!
問題点というか・・・
今のままだと家の中でしか使用できないっていうのと、IPアドレスが変わっちゃったりするとめんどくさ過ぎる気がするのでその辺の固定とかする必要がありそう
特に外からのアクセスを今度やりたいんだよね・・・NASとかにも外からアクセスできるようにしたいけど、どうしたらいいのかいまいちわかっていない・・・
とにかく!!!比較的あっさり(とはいったものの時間かかったが・・・)Giteaを導入することができて本当に良かった!!これからはエッチな画像もあげ放題ね!!
ああ・・・今8GBのUSBメモリを使用しているっていう問題とかもあったな・・・
う〜〜ん、NASもそうなんだけど、PleromaもGCEで動かしているし、今回も新しいものをセルフホストし始めたし・・・もはやラズパイで動かすんじゃなくて専用のパソコンを調達してあげてもいいのではないか・・・?とか思い始めてきた今日この頃
これが沼の入り口なのか・・・?