Closed33

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

lmdexprlmdexpr

既に組んでいるのだが、まだやりたいことがあり、整理のために記録を残す。
あとでちゃんと記事にするかも。

スペック

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 にするか、直に何か出来るようにするか迷い中……
  • 電力計測
lmdexprlmdexpr

電力計測

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

lmdexprlmdexpr

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

lmdexprlmdexpr

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 上の設定でいけるっぽいのだが、バージョン違いとかだろうか

lmdexprlmdexpr

minio も立ててみた
s3 互換

悪くない
api でなんかするとかならこれの方が良さそう

lmdexprlmdexpr

tailscale

入れたら動く、のだが、正直良く分かっていない
magic dns が動いて欲しいのだが動かないし
ただ、これは LAN の名前解決が出来れば解決する問題かもしれない
その場合、exit node に設定する必要とかあるんだろうか

あと、こっちにも tunneling 的な機能はあるが使わなかったのはど custom domain のためにはひと工夫いるから
must でもない要件だが後先考えずにドメインを取ってしまったので
もちろんリバースプロキシ的なものを挟んでも良いが、それなら cloudflare の無料枠で良い

lmdexprlmdexpr

急にいろんな謎がわかった

truenas scale だと k8s で動作するので localhost が tailscale の動いている pod でだけ動作している
よって、別の pod やらで動いているアプリにアクセスができない
localhost が tailscale の pod へのアクセスになっており、それでリジェクトされていた
おそらく magic dns も効いているがポートが空いていない

となると、LAN に DNS サーバーを設置するのは真っ当かもしれない

lmdexprlmdexpr

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

lmdexprlmdexpr

cloudflare tunnel むずめ

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

lmdexprlmdexpr

Docker registry

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

lmdexprlmdexpr

秒で入った
ただ、実は必要ない説も出てきている

lmdexprlmdexpr

docker desktop を win に入れて nixos on wsl2 からアクセスできるように configuration.nix を修正
docker login まで成功

lmdexprlmdexpr

DNS

Technitium というところの DNS サーバーが charts にあったので入れてみた
https://github.com/TechnitiumSoftware/DnsServer

全然情報が出てこなくて謎過ぎる
怖い

lmdexprlmdexpr

色々面倒になったので pi-hole を選択する
具体的には custom app だと port が 9000 以上しか選択できない(なんで???)ようで
普通に shell 入って起動しても良いのだが、既に truenas scale でなくてよいのでは感が出てきてしまっているので

ad block を家庭内 LAN でやるのも場合によっては面倒なことになりそうでちょっとアレではあるのだが、まあ、都度解除すればよい、かな?

lmdexprlmdexpr

ad block は簡単に解除できそうなので一旦放置
漫画アプリの広告は家人が怒るかもしれないので許可しておきたいのだが、デフォルトで載っているのかな
その他設定は https://dabun.net/md/pi-hole/ を見る

まずは手元の win11 で dns を変更して様子見
大丈夫そうならルーターの設定を変える

lmdexprlmdexpr

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

lmdexprlmdexpr

ここにきて nextcloud の設定に ingress がない問題……
どうやって設定するんだ……
TrueNAS Scale、結局、遠回りしている感をずっと感じてしまう

と思ったら、Truecharts の方には ingress がいた
こいつを使えば良さそうだ

lmdexprlmdexpr

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

lmdexprlmdexpr

NixOS on KVM as Dev. Env.

開発環境としては VM でやる

lmdexprlmdexpr

Grachical installer でボタンポチポチ
インストール自体は minimal にしておき、dotfiles を引っ張ってきて適当に改変して nixos-rebuild
gnome 環境が立ち上がった

ところで、この VM どう使おうか
ssh ?

TrueNAS の Web からアクセスするのはたまに通信途絶したりして微妙に使いにくい

lmdexprlmdexpr

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

lmdexprlmdexpr

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

lmdexprlmdexpr

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

lmdexprlmdexpr

パスワードマネージャー

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

やるなら bitwarden になりそう

このスクラップは2024/04/09にクローズされました