TrueNAS Scale でおうちサーバーを組んだ

既に組んでいるのだが、まだやりたいことがあり、整理のために記録を残す。
あとでちゃんと記事にするかも。
スペック
Intel Core i3-12100
BIOSTAR B760MX2-E
crucial 32GB DDR5-4800 CT32G48C40U5 x 1枚
SK hynix Platinum P41 500GB PCIe NVMe Gen4 M.2 2280
Seagate IronWolf 3.5" 2TB x 3台
DeepCool AK400 ZERO DARK PLUS
Fractal Design Node 804 black
TP-Link 10Gbps LANカード TX401
電源は家に余ってたやつ
所感としては全然オーパースペックだが、何でもできるので寧ろ嬉しい
今後しばらく困らなさそう
電力も多分大丈夫だけど計測したくはある
用途
- NAS
- discord bot 用のサーバー
- 開発
- 個人的なアプリ公開とか
- お勉強。主にネットワークとか
今出来てること
- Nextcloud
- tailscale で VPN
- cloudflare tunnel 経由で Nextcloud に家の外からアクセス
- S3 にバックアップ
- S.M.A.R.T で異常検知からメール送信
これからやること
LAN 内で cloudflare を経由しないように DNS サーバーを立てて名前解決させるtailscale の magic DNS がなんか効いてないのを直す自作のアプリを動かすために Harbor を立ててプライベートレジストリ作るついでに gitlab とか立てる?virtual machine で開発環境立てるか、docker にするか、直に何か出来るようにするか迷い中……電力計測

電力計測
電力計測は switchbot のスマートプラグが良さそう
ワットチェッカーで調べるとバカ高かったり、ちょっとした表示しか出来なくて困っていた
安いし、多機能

現状で大体 40-50w くらい
ずっとつけっぱで月額 1000 円といったところか
まあ、そんなもんだろう

Nextcloud via cloudflare tunnel
nextcloud は truecharts 入れてボタン押すだけなので説明なし
cloudflared も入れて起動するだけ
cloudflare の方で site を作る
これを見つけるのに一番困った
nameserver さえ cloudflare ならtunnel は使えるので、ドメインは適当にとっていい
最初はドメインも cloudflare にある必要があるのかと焦った
そこを超えればあとは ui から設定する
なお、cloudflare tunnel は https でアクセス出来るし、証明書もなんかいい感じにしてくれる
裏側の nextcloud は http にしている
ところで、nextcloud には trusted domain というパラメータがあり、これを正しく設定しないとアクセス出来ない
どうやら truenas の ui 上からホストネームを設定しても反映されないようで結構困った
しょうがないので shell から pod に入り、config.php を直接編集する
あんまり覚えてないが /root のどこかにあった気がする
reddit とか見てると普通にui 上の設定でいけるっぽいのだが、バージョン違いとかだろうか

tailscale
入れたら動く、のだが、正直良く分かっていない
magic dns が動いて欲しいのだが動かないし
ただ、これは LAN の名前解決が出来れば解決する問題かもしれない
その場合、exit node に設定する必要とかあるんだろうか
あと、こっちにも tunneling 的な機能はあるが使わなかったのはど custom domain のためにはひと工夫いるから
must でもない要件だが後先考えずにドメインを取ってしまったので
もちろんリバースプロキシ的なものを挟んでも良いが、それなら cloudflare の無料枠で良い

急にいろんな謎がわかった
truenas scale だと k8s で動作するので localhost が tailscale の動いている pod でだけ動作している
よって、別の pod やらで動いているアプリにアクセスができない
localhost が tailscale の pod へのアクセスになっており、それでリジェクトされていた
おそらく magic dns も効いているがポートが空いていない
となると、LAN に DNS サーバーを設置するのは真っ当かもしれない

tailscale よりも cloudflare の Warp に寄せる方が便利なのではと思案中。。。
こういう VPN 環境で DNS 良い感じにする方法が悩ましいけど、cloudflare の zero trust だとあまり考えなくて良さそう

cloudflare tunnel むずめ
public で認証を付けるかな~というのが今の感触
private でも通したのだが、この場合、pi-hole に DNS クエリを投げられない
Local Domain Fallback とやらがそうかとも思ったが、理解が正しいならこれはローカル (VPN? ZTNA? 上でない) を指しているので、外から使えない
家の中でも使えなかったのは ip としての local は inculde していたからか

Docker registry
harbor は truecharts にない……
が、docker registry と違うのは GUI 程度らしいので別に docker registry でいっかとなった
こっちは truecharts にある

DNS
Technitium というところの DNS サーバーが charts にあったので入れてみた
全然情報が出てこなくて謎過ぎる
怖い

怖いし、今回やりたいのは LAN 内で名前解決したいだけなので、やはり nsd 辺りを入れたい


traefik が欲しくなりそうだったので先に入れる
間違っても truenas web ui をポートそのままとかにしてはいけない(一敗)

色々面倒になったので pi-hole を選択する
具体的には custom app だと port が 9000 以上しか選択できない(なんで???)ようで
普通に shell 入って起動しても良いのだが、既に truenas scale でなくてよいのでは感が出てきてしまっているので
ad block を家庭内 LAN でやるのも場合によっては面倒なことになりそうでちょっとアレではあるのだが、まあ、都度解除すればよい、かな?

ad block は簡単に解除できそうなので一旦放置
漫画アプリの広告は家人が怒るかもしれないので許可しておきたいのだが、デフォルトで載っているのかな
その他設定は https://dabun.net/md/pi-hole/ を見る
まずは手元の win11 で dns を変更して様子見
大丈夫そうならルーターの設定を変える

pi-hole 経由のアクセスが出来たので、あとは traefik
ルーターとサーバーを通信が行ったり来たりする感じになっているが、ネットワークってこういうことなんだよな(?)

traefik を https 化しておく
ちょっと面倒になってきたので

ここにきて nextcloud の設定に ingress がない問題……
どうやって設定するんだ……
TrueNAS Scale、結局、遠回りしている感をずっと感じてしまう
と思ったら、Truecharts の方には ingress がいた
こいつを使えば良さそうだ

元の設定があるし、これを使う方針でいく
ところで https がうまくいっていない

external-service などをリスタート
traefik をリスタート
という順にやるとうまくいくっぽい?

NixOS on KVM as Dev. Env.
開発環境としては VM でやる

Grachical installer でボタンポチポチ
インストール自体は minimal にしておき、dotfiles を引っ張ってきて適当に改変して nixos-rebuild
gnome 環境が立ち上がった
ところで、この VM どう使おうか
ssh ?
TrueNAS の Web からアクセスするのはたまに通信途絶したりして微妙に使いにくい

やりたいこととしては iPad から ssh 等で開発環境を使うことで iPad のみによる開発スタイルの確立
これでいくなら別に GUI は必要ないが、その設定を組みなおすのも少しだるい
特に WezTerm + NeoVim が手馴れてしまったので、そこに近づけるかは心配

Termius というのが良さそうなのでしばらく使ってみる

悪くない
ガッツリ作業とかまだだが、使いやすいといえる
ipad 作業環境の確立が出来てきたかも

パスワードマネージャー
今は 1Password に課金しているが、折角なら self-hosted なパスワードマネージャーはどうかと思案中
s3 にバックアップもしてるので、早々変なことにはならないだろう
やるなら bitwarden になりそう

ZTNA 出来るのも嬉しいんじゃないかな???

安定稼働したのでクローズ