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

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/go2gitea.jpeg

きっかけ

現在、ObsidianのVaultをGithubに上げることで複数環境で同期をとっています(まあこれも正直どうなのかと思うが・・・)

そして今日(2024/07/27)、このVaultの中にちょっと審議が入る感じの画像(エッチ…と僕は判断した)が含まれることになった

「Google Driveとかってそういった画像があったりすると急に怒られたりするっていう噂を聞くよな〜一応念のためにGithubはその辺どうなのか調べておこうかな」

っと思い立ち調べてみた結果・・・

成人向け同人(R-18)のファイル管理方法を考える

ダメっぽい!!!!

知らん振りしてあげてもいいかなと思ったのですが(これはギリエッチじゃねぇ!!) ダメっぽいし、まあ結構個人的なものをあげるのもどうなのか?(これも怒られるのかな・・・すみません・・・)と思ったこともあり、別の方法を考えてみることにしました。

動けばええねん・・・

ちょうど手元にあるラズパイゼロ2ちゃんを活用してどうにかできないかな〜と考えていました。

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/IMG_4106.jpg

南の島の湿気?にやられてしまったゼロちゃん。可哀想に。ごめんよ・・・

確か、GitlabっていうのがほぼGithubと同じことができてセルフホストできたよね??それを試してみようかな?と思ったのですが、どうやらかなり重たいらしい。

っということで調べてみたところGiteaというものがあるようですね。 こっちはかなり軽量らしい。

https://about.gitea.com/

やっていこう

ラズパイのセットアップをする

やっていきましょう。まずはUSBメモリがないことに気づいたのでどうしようか悩んでいます。こういったものの管理が下手くそすぎます。

仕方ないのでこの4GBのUSBメモリを使用しようかな

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/IMG_4105.jpg

(残念ながらぶっ壊れていたため、別の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アドレスを指定したら上手くいった

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%882024-07-2723.36.04.png

表示されてしまった・・・ufwの件いらなかったかも・・・

Database TypeだけSQLite3に変えてInstall Giteaをクリックします

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%882024-07-2723.47.27.png

最近紅茶を飲んでいませんね

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%882024-07-2723.50.29.png

アカウントを登録することができたみたいです!

ObsidianのVaultを投げてみる

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%882024-07-2723.55.37.png

リポジトリを作成します。(もはや全てのリポジトリがprivateでは??自分しか使わないからね・・・もしかしてセルフホストってぼっちに厳しい??)

SSH keyを登録します。設定からできるみたいです。この辺もGitHubとほぼ同じですね

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%882024-07-280.00.14.png

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アドレスにしたら動くようになりました・・・結構詰まった・・・

/posts/2024/07/gitea%E3%81%AE%E3%82%BB%E3%83%AB%E3%83%95%E3%83%9B%E3%82%B9%E3%83%88%E3%81%AB%E6%8C%91%E6%88%A6%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%882024-07-280.32.57.png

おーー!ちゃんと動いているわ!!!

一応a-Shellを使ってpullすることもできそう。ただちょっとトラブった感じするけどね。元々configに書かれていたgithubのものを消して、鍵はそのまま流用(edなんたら形式・・??だったのがよかったのかなぁ・・・)したらpullできるようになった!!

問題点というか・・・

今のままだと家の中でしか使用できないっていうのと、IPアドレスが変わっちゃったりするとめんどくさ過ぎる気がするのでその辺の固定とかする必要がありそう

特に外からのアクセスを今度やりたいんだよね・・・NASとかにも外からアクセスできるようにしたいけど、どうしたらいいのかいまいちわかっていない・・・

とにかく!!!比較的あっさり(とはいったものの時間かかったが・・・)Giteaを導入することができて本当に良かった!!これからはエッチな画像もあげ放題ね!!

ああ・・・今8GBのUSBメモリを使用しているっていう問題とかもあったな・・・

う〜〜ん、NASもそうなんだけど、PleromaもGCEで動かしているし、今回も新しいものをセルフホストし始めたし・・・もはやラズパイで動かすんじゃなくて専用のパソコンを調達してあげてもいいのではないか・・・?とか思い始めてきた今日この頃

これが沼の入り口なのか・・・?