ラズパイをリモートリポジトリサーバにするログ

ラズパイ4を使用。

imagerを使用して、イメージを作成。

そして、windowsからSSH接続。
wifi経由だとうまくいかなかったので、LANケーブルを直にさして、SSH接続を試みる。

まず接続を見る

rerur@reruberrypi:~ $ nmcli device
DEVICE         TYPE      STATE                   CONNECTION
eth0           ethernet  connected               netplan-eth0
lo             loopback  connected (externally)  lo
wlan0          wifi      disconnected            --
p2p-dev-wlan0  wifi-p2p  disconnected            --

wlan0はインターネット接続
wifiにつなぎなおす。
まずwifiを確認。

rerur@reruberrypi:~ $ nmcli device wifi list
IN-USE  BSSID              SSID                 MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        C4:3C:EA:CF:5A:33  Buffalo-AAAAAA-WPA3  Infra  5     130 Mbit/s  62      ▂▄▆_  WPA3
        C4:3C:EA:CF:5A:32  Buffalo-BBBBBB       Infra  5     130 Mbit/s  62      ▂▄▆_  WPA2
        C4:3C:EA:CF:5A:39  Buffalo-CCCCCC       Infra  36    270 Mbit/s  62      ▂▄▆_  WPA2
        C4:3C:EA:CF:5A:3A  Buffalo-DDDDDD-WPA3  Infra  36    270 Mbit/s  62      ▂▄▆_  WPA3
        CC:E1:D5:E5:E8:80  Buffalo-EEEEEE       Infra  1     130 Mbit/s  45      ▂▄__  WPA2
        02:90:FE:D0:D2:72  e-timer-FFFFFF       Infra  1     270 Mbit/s  34      ▂▄__  WPA2

これで接続。

rerur@reruberrypi:~ $ sudo nmcli device wifi connect "Buffalo-AAAAAA" password "wifiパスワード"
Device 'wlan0' successfully activated with 'なんか文字列一応消しとく'.

一応確認して接続されていることを確認

rerur@reruberrypi:~ $ ping google.com
PING google.com (2404:6800:4004:822::200e) 56 data bytes

なんかラズパイの接続がすぐに終わってしまう問題を修正する。どうやらIPが動的なので、それで変わってしまって接続が途切れるらしい。
まず、ネットワークの設定を見る

rerur@reruberrypi:~ $ nmcli connection show
NAME                               UUID                                  TYPE      DEVICE
netplan-eth0                       75ddddddddddddddddddddddddddddddd1  ethernet     eth0
lo                                 18dddddddddddddddddddddddddddddddd  loopback      lo
netplan-wlan0-Buffalo-AAAAAA-WPA3  e0016ddddddddddddddddddddddddddde308  wifi        --

netplan-wlan0-Buffalo-AAAAAA-WPA3がnetplanだったので、これを前提に設定していく。
まあlinuxなのであたりまえだけど。

有線LANの接続名は netplan-eth0なので、そこでIPを固定していく、

それでIPを固定していく。

sudo nmcli con mod netplan-eth0 ipv4.addresses 169.254.1.100/16 ipv4.method manual
sudo nmcli con up netplan-eth0

これで固定されたので、SSHするときは、

ssh -o ServerAliveInterval=60 rerur@169.254.1.100

で接続する。

Giteaはこれでやってみりる

ここでSSH接続しているので、WEBでの設定は自分のデスクトップPCから行った

sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /opt/gitea gitea
 
sudo su - gitea
 
curl -O https://dl.gitea.com/gitea/1.25.4/gitea-1.25.4-linux-arm64?_gl=1*x6hm9l*_g
cl_au*MjczMTQ3MzY2LjE3Mzg4NDMzMTQ.
 
chmod u+x gitea-1.25.4-linux-arm64
 
ln -s gitea-1.25.4-linux-arm64 gitea

ここまでは設定

これでGiteaの設定用のWEBを起動。

GITEA_WORK_DIR=/opt/gitea ./gitea-1.25.4-linux-arm64 web

ホストPCのWEBからIPとポートを指定して接続。
http://169.254.1.100:3001

設定したらアカウントを作成してログインするだけ

あとはSSH経由でリポジトリの操作とかできるようにする

一応直刺しから脱却するため、wifi経由でSSHできるようにしとく。

ip addr show wlan0

によると、ラズパイがルータから割り当てられているIPアドレスを知ることができる。
そのIPを使用して、接続などできる。

それでSSHでリポジトリをアップしてみる

まずSSHポートを開放する

sudo apt update
sudo apt install ufw
 
sudo ufw allow 22/tcp
sudo ufw allow 3001/tcp
sudo ufw enable

そしてSSHキーを作成する。

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

そして、C:\Users\use\.ssh\id_rsa.pubの中身をコピーする。

Giteaにログインし、右上のプロフィールアイコンから「SSHキー」を選択。キーを貼り付け、「追加」をクリック。

これにremote add すると、できる

git remote add origin http://192.168.0.29:3001/pdf-researcher/pdf-research-kt.git "http://192.168.0.29:3001/組織名/リポジトリ名.git"

外部から接続できるようにCloudflare Tunnelを使用する。
Zero trust Tunnel

ラズパイはDebianなので、


ここでDebianを選択すると、コマンドが表示されるのでそれを使用する。

コマンド

# Add cloudflare gpg key
sudo mkdir -p --mode=0755 /usr/share/keyrings
curl -fsSL https://pkg.cloudflare.com/cloudflare-public-v2.gpg | sudo tee /usr/share/keyrings/cloudflare-public-v2.gpg >/dev/null
 
# Add this repo to your apt repositories
echo 'deb [signed-by=/usr/share/keyrings/cloudflare-public-v2.gpg] https://pkg.cloudflare.com/cloudflared any main' | sudo tee /etc/apt/sources.list.d/cloudflared.list
 
# install cloudflared
sudo apt-get update && sudo apt-get install cloudflared
 
sudo cloudflared service install ここにtoken
 
cloudflared tunnel run --token ここにtoken

正常なら緑でハイライトされる
おすすめはサブドメインを設定した方がよい

もしここで、接続がうまくいかなかったら、Giteaの設定を変えてみる。

[F] Failed to start SSH server: listen tcp :22: bind: permission denied

開くまで

sudo su - gitea
cd custom/conf
nano app.ini

でSSH_PORTを2222番に変更してみてGiteaを再起動

sudo systemctl restart gitea

状態を確認してrunningなら完了

sudo systemctl status gitea

あとはhttpを通して、cloneなど行う。
remote設定もhttpにする。
その際、毎回パスワード入力などを求められるので、(WSL内)

git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"

これで、Gitが自動的にその辺をやってくれるようにする。

これで出先からも自分の家のラズパイに対してpushなどをできるようになった。

ラズパイ終了

このコマンドを打たないで電源を抜かないこと

sudo shutdown -h now

再起動はこれ

sudo reboot

ラズパイが突然つなげなくなった

まずLANケーブルとPCで接続して、SSHを試みる

ssh rerur@reruberrypi.local

自分のIPアドレスを見たい

curl inet-ip.info

レスポンスはこれだった
180.49.70.133

Giteaの起動を試みる

sudo su - gitea
GITEA_WORK_DIR=/opt/gitea ./gitea

しかし失敗

2026/03/14 11:48:12 modules/queue/manager.go:110:createWorkerPoolQueue() [E] Failed to create queue "notification-service": unable to lock level db at /opt/gitea/data/queues/common: resource temporarily unavailable

どうやらすでにGiteaプロセスが実行されているらしい

プロセス確認

gitea@reruberrypi:~$ ps aux | grep gitea
gitea       1106  1.0  7.9 2211984 149408 ?      Ssl  11:44   0:02 /opt/gitea/gitea
root        1235  0.0  0.3  20580  6648 pts/0    S+   11:46   0:00 sudo su - gitea
root        1237  0.0  0.1  20580  2608 pts/1    Ss   11:46   0:00 sudo su - gitea
root        1238  0.0  0.2  11468  4056 pts/1    S    11:46   0:00 su - gitea
gitea       1240  0.0  0.2   8872  5652 pts/1    S    11:46   0:00 -bash
gitea       1277  200  0.2   9104  3788 pts/1    R+   11:49   0:00 ps aux
gitea       1278  0.0  0.1   6252  2016 pts/1    S+   11:49   0:00 grep gitea

実行済み

次にCloudFlaredが動いているか確認

sudo systemctl status cloudflared


どうやらcloudflaredは動いているが、つなげていないみたい

結局問題はCloudFlare zetotrust tunnelのSerivceIDが、プライベートネットワークのローカルIPを設定していたのが問題だった。
多分、どこかのタイミングでIPが変わってつなげなくなった感じ。
解決はSeriveIDをlocalhostにして解決

まだZeroTrust Tunnelの仕組みがよくわかってないのが問題でちょっとだけ解決に時間がかかった