カテゴリー: Linux

  • Surface Go2に入れるOSで悩んで苦労した話(1)

    Surface Go2にはMXLinuxを入れていましたが、謎にバッテリーを消費していくのを防げなかったため、FydeOSを入れてみました。

    流石にAndroid系ということで、バッテリ周りの動作は非常に良かったが、Gappsから入れたAmazonKindleアプリで漫画を表示したら真っ黒になるトラブルを解決できませんでした。

    そこで、FydeOSの本家とも言うべき、ChromeOSFlexを入れてみたのですが、USBメモリからインストールすると、なぜかまたFydeOSが立ち上がってしまう。ブートローダーを見ても分からず。

    GeminiやChatGPTに聞いてみると、FydeOSがインストール先を細かく分割してしまうので、おかしくなっているのでは、ということで、MXLinuxのLiveUSBメモリから起動して、Gpartedで見てみると、確かにSurface go2のドライブがそうなっていました。へー、FydeOSやChromeOSってこんな細かくパーティション区切るのか、と思いつつ、新しいパーティションテーブルをgptで作成してまっさらな状態にしました。そして、再度ChromeOSFlexをインストールすると、今度はドライブにOSが見つからない。

    もう全くわからないので、気まぐれにZorinOSを入れてみようと思い、インストールを進めていると、インストール先のドライブを選択したところで、Surface go2に入れていた512GBのmicroSDが異様に細かく分割されていて、その中に「ChromeOS・・・」の文字を発見。
    ようやく理解できました。ChromeOSFlexのインストール時に、SurfaceGO2のeMMCではなくて、microSDにインストールされていました。

    そもそも、ChromeOSFlexはインストール時にドライブ選択する場面がないのですが、勝手にmicroSDにインストールするとか乱暴者すぎるやろ。幸いなことに、そのカードには特に重要なものを入れていなかったので良かったですが。

    まあ、この苦心してインストールしたChromeOSFlexも、結局はFirefoxとKindleアプリをそもそも入れられないのですぐに諦めたのですけれど。スマホからAPKファイル持っていったらイケるやろ、と根拠のない自信があったのですがダメでした。

    ということで、また「SurfaceGo2に入れるOSで悩む」難民になってしまいましたが、さっきインストールしかけていた、昨年からWindows10難民を救ってきたZorinOSを入れてみることにします。その話はまた次の記事で。

    ちなみに、このZorinOSを入れるときにドライブやパーティションを見たときに、なんでChromeOSFlexのインストーラがmicroSDにインストールしてしまったのか分かりました。eMMCがインストーラ(Gparted)からはどっちもSDカードっぽく認識されているようです。それで勝手に容量の大きい方に入れたんでしょうけれど、迷惑だなあ・・・。

    eMMCが使われているPCって、たいていそのeMMCの容量も小さいので、microSDを入れてデータ保存をしている人は多いと思いますけれど、microSDカードを抜かないままChromeOSFlexを入れて絶望する人ってこれまでいなかったんでしょうか?

  • セルフホストのサーバの大半をSSL化

    昨年10月にこのブログでも使っている独自ドメインをCloudflareに移管したのですが、

    その時にやろうと思っていたことを忘れていました。

    DNSチャレンジを使っての、ローカル環境の各サーバのSSL化です。前にドメイン管理をしていたバリュードメインでは出来なかったのですよね。前にDNSチャレンジという技術を知ってやってみようと思ったら駄目で、それもあってCloudflareに移管したのをすっかり忘れていました。

    当然ですがこのブログを運用しているGhostのサーバと、あとNextcloudとVaultwardenとFreshRSSは既にCloudflareトンネルでSSL化していたので、残りのMemosとJellyfinをDNSチャレンジでSSL化します。

    まず準備として、CloudflareでAPIトークンを作成します。

    Cloudflareの「アカウントの管理」→「アカウントAPIトークン」で「トークンを作成」をクリックし、「ゾーンDNSを編集する テンプレートを使用する」から、
    特定のゾーン : 独自ドメイン
    を選んでから「概要に進む」をクリックして、
    出てきたAPIトークンをコピペしておきます。一回限りしか表示されないそうです。

    次に、Cloudflareでドメインを管理するようになって不要になり、Proxmoxからは削除していたNgnix Proxy Managerを、Proxmox Backup Serverからリストアします。

    リストアしたNPMで、
    「SSL Certificates」から「Add Let’s Encrypt Certificate」を選び、
    ドメインネームはサブドメインをワイルドカードで指定して、「Use a DNS Challenge」でCloudflareを選び、さっきコピペしておいたAPIトークンを貼り付けて保存すると、サブドメイン共通で使い回せるSSL証明書が完成します。

    次に、「Proxy Hosts」で作りたいサブドメインを「Add Proxy Host」から作成します。ドメインネームにサブドメインを入れて、Forward Hostname/IPにプライベートIPアドレスを入れて、必要ならPortも指定して、SSLタブでさっき作ったSSLを選んで完了。

    最後に、OpenWrtで「Network」→「DHCP and DNS」→「DNS Records」タブで、
    必要なサブドメインについてHostnameとIPアドレスを入れます。
    ここで最後に「Save& Apply」を押して適用しないと有効にならないのが落とし穴。今回何度も忘れて、???という状態になってしまいました。

    成功したので気を良くした自分は、ついでにProxmox VEとProxmox Backup ServerもSSL化しようとして、ハマりました。

    他のサーバと同じようにやってもブラウザで開かず、AIに聞いてみると、NPMで
    Websockets Support: ON
    HTTP/2 Support: ON
    にした上で、Advancedタブに

    location / {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection “upgrade”;
    proxy_set_header Host $host;
    proxy_pass https://192.168.x.x:8006; # ← ここはPVEのIP(PBSの場合は8007ポート)にする
    }

    を書かないといけないらしい。マジでAIに聞かないとわからんわ。

    というか、そもそもProxmoxの場合は、
    「データセンター」→「ACME」
    にある機能で、ここからDNSチャレンジできるやん。まあ、その場合はワイルドカードで作ったSSL証明書の使い回しが出来ないので、それはそれで面倒ですけれど、Proxmox単体でSSL化するならこっちのほうが圧倒的に早いです。

    素人だからこそのアホな悩みでしたけれど、まあこれでProxmox VEもProxmox Backup Serverも、他のローカル環境のサーバもSSL化出来たのでOKです。

    一応、怖くてやっていないですが、
    ・OpenWrt
    ・Pi-hole
    ・Ngnix Proxy Manager
    については、SSL化したらややこしいですよねえ・・・。

  • Surface Go2のMXLinuxは、マウスやキーボードを使うならXFCEで良いけれど、タッチ操作ならGNOMEだよね

    記事の中身はほぼタイトルで書き尽くしてしまっているのですが、先日、ジャンク品として手に入れた、液晶割れのSurface Go2ですが、MXLinux25を入れて我ながらご満悦に使用しています。

    枕元でもこれまで使っていたAndroidタブレットに代えて、Surface Go2を使っています。件のタブレットは幸いなことに世間騒がすマルウェアには感染していなかったようですが、Headwolf社の反応もあまりかんばしくないようですので、ちょっと今後も継続して使用する気にはなれないですね。

    そんなこんなでSurface Go2を愛用していますが、MXLinuxで使用しているUIは、低スペックマシンでおなじみのXfceです。ただ、これはマウス・キーボードを使う分には良いですが、タッチ操作のタブレットとしては使いづらい。

    ということで、GNOMEで使ってみることにします。

    一度ログアウトして、画面上部にあるボタンからGNOMEを選択してからログインすれば終わりです。

    使っている時間のほとんどはFloorpブラウザを最大化して表示していますので、その際の効果はあまり感じられませんが、別のなにかのアプリを立ち上げる際には、タッチ操作でも全然苦にならないGNOMEと、マウスやタッチパッドでメニューから選ぶXfceでは使い勝手に雲泥の差があります。

    ただ、一転してマウス(タッチパッド)とキーボードを使って文章を書いたり、なんやかんやするようになったら、GNOMEだと動作がもっさりしすぎです。ハイスペックなマシンなら気にならないでしょうけれど、このSurface Go2の4GB版はメモリが少ない上にCPUも貧弱なので、GNOME常用というわけには行きません。XfceとGNOMEを使い分けて行く必要がありますね。

  • メインPCを昨年手に入れたジャンク品だったNECのスリムPCに変更した

    メインPCを昨年手に入れたジャンク品だったNECのスリムPCに変更した

    先日の記事で書いたようにゲートウェイPCをNECスリムPCからZimaboard232に移行したので、空いたスリムPCをメインPCに昇格させます。

    このMKM21/CはPCIeスロット搭載というなかなかの変態ミニPCです。これまではそこにLANカードを挿して使っていましたが、GPUカードも当然ながら利用できます。

    共同開発しているLenovoにも色違いで同等製品がありますので、それを使った海外のYouTuberの動画でGPUを搭載する使い方を紹介しているのがいっぱいあります。

    ということで、私もやってみますが搭載できるビデオカードは非常に限られます。

    まず、幅的にロープロファイルのサイズのビデオカードオンリーです。これは絶対です。

    そしてPCの蓋を閉めて使うのであれば、1スロットサイズのものでないといけません。蓋を全開にするなら、ロープロファイルであれば2スロットのものでも大丈夫です。

    ただ、全長も当然ながら重要で、そんなに長いものは入れられません。金属加工したり、ケースごと3Dプリントで作っちゃう人は期にしなくて良いでしょうけれど。

    こういった条件がありますが、私が今回選んだGPUは、NVIDIA P1000です。
    DDR5メモリが4GBありますので、これまでのPCで使っていたLLMもそのまま使えるはずです。

    P1000は中古で手に入れましたが、7,800円でした。

    さらに、このスリムPCはACアダプタで駆動しますが、手に入れた時に別の店で買ったアダプタは45Wのものでしたので、さすがにGPUを挿したら動きません。

    ということで、45Wのときと同じく、じゃんぱら大阪本店2階のジャンク品コーナーにあった、Lenovoの90Wのものを480円で購入しました。

    GPU無しで45Wのアダプタで動いているところに、TDPが47WのP1000を足すのですから、90Wでもなんとか動くはずです。

    PC本体がジャンクながら10,000円、ビデオカードが7,800円、ACアダプタが480円、ライザーカードが1,640円でしたので、GPU搭載スリムPCが〆て19,920円で出来上がりました。

    ちなみに、無線LAN&Bluetooth機能は無い状態で売られていて、Wifi用M.2スロットも空いたままでしたので、以前壊れたPCから部品を取っておいた、Mediatek製のmt7921eを挿したらMXLinuxで何もすることなく認識してくれました。WifiもBluetoothも正常動作しています。最近のLinuxは簡単ですね。

    元のPCで動いていたMXLinuxの入ったSSDをそのまま持ってきても動作します。同じIntel製のCPUだからということもあるのかも知れませんが、多分、Windowsでは出来ない芸当ですね。

    騒音については、やはりGPUを使用する段になると爆音になります。これは前のPCと大差ありません。ただこれで終わっては芸がないので、また別の記事にて実施した対策を書こうと思います。

  • Zimaboard232にOpenWrtをインストールしてゲートウェイ兼ファイアウォールを入れ替えた

    以前購入して、今は余っている状態だったZimaboard232をなんとか使いたいと思っていましたが、ようやく実行しました。LANポートが2つあるZimaboardを自宅ネットワーク内のゲートウェイ兼ファイアウォールとして使います。

    これまでOpnsense、pfsenseは使っていましたが、Zimaboard232はメモリが2GBであり、ギリギリかも知れないので、もっと低スペックでも動作するOpenWrtを使うことにします。

    ちなみにZimaboard232のスペックは、
    CPU CeleronN3350 1.10GHz
    メモリ 2GB
    eMMC 32GB
    です。メモリとストレージの数字が232の型番の由来ですね。この初代Zimaboardはメモリ4GBや8GBのものもあったのですが、その分値段も高かったです。

    さて、OpenWrtはISOファイルでの提供がされていないため、普段のインストールで使うVentoyに入れられません。ということで、新しくUSBメモリを買ってきて、OpenWrtのイメージファイルをbalenaEtcherで書き込みます。

    このUSBメモリを、Zimaboard232に挿して起動してからddコマンドで本体に書き込みます。

    そしてZimaboard232で起動するとあっさり動きました。元々使っていたpfsenseのIPアドレスと同じように設定して、晴れて全てのデバイスがネット接続できたのですが、なぜかストレージのディスクスペースが20MBくらいの空きしかなく、全体でも100MBくらいしか使っていません。32GBのeMMCなのに。

    ということで、コマンドラインからfdiskでイジったら見事に失敗しました。一からやり直しです。

    再度インストールしてから、今度はUSBメモリにGparted Liveを入れたもので起動して、GUIでディスクスペースを拡張します。ここで気が付きましたが、なんかエラーがあってチェックから修復できました。これでようやく、eMMCの全てをOpenWrtに使うことが出来ます。

    OpenWrtで起動したらあまりすることはありません。一応、AdGuardHomeのプラグインを入れましたが、設定しても広告ブロックが出来ていない・・・。既に立てているPi-holeの方を削除できるかと思いましたが、とりあえずこのままにします。

    OpenWrtでTailscaleのプラグインもあるので、それもやってみましたが、こちらも駄目。

    AdGuardHomeもTailscaleもGeminiに聞きながらアレコレ頑張りましたけど駄目だったので、Proxmoxに頼ることにします。

    広告ブロックはPi-holeのLXCがすでにあるので、後はTailscaleですが、こちらはVMで立てることにします。Ubuntu server 24.04を入れて、Tailscaleも入れて、ブラウザ上でTailscaleの管理画面から設定したら、あっさり動作OK。モバイル回線でのスマホからでもちゃんとセルフホストのサーバにアクセスできました。

    結局、Zimaboard232でOpenWrtを動かしていますが、プラグインを使っていないのでリソースが余りまくっています。まあいいか。

  • ブログを固定IPで公開するのを止めてCloudflare Tunnelに切り替えた

    先日まで3連休を費やして、自宅サーバを入れていたCasaOSから、一つずつProxmoxに移行していった面倒な作業は終了しましたが、ブログを入れているサーバが、他のサーバと同じLAN内に同居することになりました。

    今まではブログのあるネットワークと、他のネットワークは分けていて、pfsenseで振り分けていました。

    今回も分けることは可能ではあるのですが、面倒にもなりましたし、独自ドメインの管理先をCloudflareにもしましたので、Cloudflare Tunnelを利用してブログを安全に公開する設定を行います。

    例によって生成AIに教えてもらいつつではありますが、
    ステップ1:Cloudflare Tunnel用LXCの作成
    ステップ2:Tunnelの作成(Cloudflare側での操作)
    ステップ3:ルーティングの設定(公開設定)
    ステップ4:Nginx Proxy Manager (NPM) との連携
    という順序で設定していきます。

    これで完了!と思いきや、元々固定IPで公開していたので、DNSレコードを削除しないといけなかったり、NginxProxyManagerのSSLを削除してCloudflareのSSLをフルで有効化したり、なんやかんやありました。

    外部ネットワーク(スマホのモバイル通信)からでもちゃんとアクセスできる、すなわち自分以外の人がアクセスできることを確認して、やれやれ終わった、と思ったら、自宅ネットワーク内のパソコンからブログにアクセスできない!

    調べたら、外部ネットワークからCloudflare経由でGhostサーバまで、カッチリ経路をSSLで確保しているのに、自宅ネットワーク内から経路に横入りするようなもので、そりゃエラーになりまっせ、ということらしいです。

    ということで、Pi-holeのDNS設定を削り、自宅からでも一旦Cloudflare経由でアクセスするようにしたら、晴れて
    ・自宅ネットワーク内のTailscale無し
    ・自宅ネットワーク内のTailscale有り
    ・外部ネットワークからTailscale無し
    ・外部ネットワークからTailscale有り
    の4パターンで問題なく、アクセスできるようになりました。

    面倒と言えば面倒、しかし設定してしまえばこれほど楽なこともないでしょう。全部Cloudflare任せですし。

  • 脱CasaOS計画〜その9:ProxmoxBackupServerを設定してProxmoxのバックアップ実行

    前回の「その8」で移行そのものは終わりですので、今回は番外編です。

    CasaOSからの離脱そのものではないですが、これまで移行してきたProxmoxにもバックアップが必要です。

    Proxmoxのバックアップと言えば、ProxmoxBackupServer(PBS)です。インストールするのは以前にヤフオクで買って、一時期PBSとしても使用していた、
    HP t520 Flexible Thin Client
    https://support.hp.com/jp-ja/product/details/hp-t520-flexiblethin-client/6875920
    を使用します。

    スペックは低いですが、PBS専用マシンとしては十分です。メモリは元々DDR3の4GBが入っていましたが、メモリ高騰の波が来る前に、8GBを購入して差し替えていました。

    これに、2TBのUSB接続HDDを接続して、初期化して、ディレクトリ作成でデータストアに追加します。

    後は、LXCやVMを動かしているProxmoxVEの方で、PBSの指紋を使ってつなげて、バックアップジョブを設定して実行です。

    PBSのダッシュボードを見る感じ、バックアップジョブを走らせている状況では、2コアの遅いCPUが100%ほぼ張り付きで動いているのに対し、メモリは8GBの2割も使用しません。4GBのままでも良かったですね。今更DDR3の4GBとか使いようがない・・・。

    今回で、脱CasaOS計画の全てが終わりました。ZimaOSやumbrelOS、あるいはTrueNASなんか使ったほうがもっとモダンでシンプルに移行出来てたかも知れないですが、やはりそれらも今後いつまで無料で開放されているか分からないのですよね。

    もちろん、Proxmoxが今後も無料で今の機能が使える保証も無いのですけれど。

  • 脱CasaOS計画〜その8:JellyfinをProxmoxに移行

    脱CasaOS計画の最後は、こちらも外部ストレージを使っていたJellyfinです。動画ファイルを保存しているSSDは、今のCasaOSが入っている、UN100PというミニPCに内蔵SSD(SATA)の形で入っています。NVMeの方は起動ディスクとして使っていました。

    今回の移行計画でJellyfinを最後にした理由でもあるのですが、この元のCasaOSが入っているミニPCからSATA SSDを取り外さずに、ミニPCにProxmoxを入れてJellyfinを使えるようにして、Proxmox2台でのクラスタを組んで運用しよう、ということです。

    ということで、一旦、CasaOSを全てシャットダウンしてから、USBメモリを挿して起動し、Proxmoxをインストールします。

    インストール後、1台目のProxmoxとクラスタ化して、2台目のProxmoxでJellyfinのLXCを作成します。
    スペックは、
    コンテナイメージ:Debian12(13だとJellyfinのインストールが出来ませんでした)
    CPU:2コア
    メモリ:4GB
    スワップ:4GB
    ストレージ:20GB
    です。

    Jellyfinをインストール後、ブラウザから開きます。元々入っているSATA SSDを認識させ、そのマウントしたパスで、メディアライブラリーを作成すれば完了です。前の設定を持ってくるのは止めて、結局データ以外は一から設定したことになります。

    一応、これでCasaOSにおいて運用していたセルフホストのサービスは、全てProxmox上に移し終えました。

    3連休がガッツリ潰れましたが、それくらい時間がある時でないとやってられないですね。

    ・CasaOSで運用中のセルフホストのサービス
    FreshRSS→移行完了
    Jellyfin→移行完了
    Nextcloud→移行完了
    AdGuardHome→Pi-holeに移行完了
    Memos→移行完了
    Vaultwarden→移行完了
    PhotoPrism→Nextcloudに移行完了
    Ghost→移行完了

    本当は、ゲートウェイに使っているPCを入れ替えたいのですが、やるとしたらゴールデンウィークかなあ・・・。

  • 脱CasaOS計画〜その7:NextcloudとPhotoPrismをProxmoxのNextcloudに移行(デスクトップ同期、クラウドストレージ、フォト)

    ようやく終わりが見えてきた、この脱CasaOS計画の7回目は、再びNextcloudの設定です。

    まず、Proxmoxが入っているPCに、USB接続HDDを接続し、ProxmoxのVMの設定でUSBパススルーで直接アクセスできるようにします。

    次にそのVMにSSHで入ってから、外部ストレージをマウントします。再起動時にも自動でマウントするように、fstabにも書き込みます。

    Nextcloudで外部ストレージを読み書きするためのアプリを有効化して、マウントしている場所を認識させると、ファイルアプリで見えるようになります。

    後は、メインPCのMXLinuxで同期させたいフォルダと、新しいNextcloud内のフォルダをNextcloudアプリを使って同期させれば、デスクトップ同期の移行は完了です。

    それと、PhotoPrismで管理・保存していたスマホの写真については、NextcloudにMemoriesと言うアプリがあることを初めて知りましたので、これを使うことにします。そんなに頻繁に見ないですし、AIでの分析とかも要らないですし。

    NextcloudのアプリからMemoriesをダウンロードして有効化。そのままだと写真を認識してくれなかったので、管理者設定からMemoriesの設定を開き、片っ端からチェックを入れていき、SSHで入ってSnapで入れたNextcloudの設定を変更してインデックスを作成させれば、読み込んでくれました。

    デフォルトの写真アプリに比べると、Memoriesが異常に速く感じますが、そもそもNextcloudの公式写真アプリが遅すぎるのですよね。

    そもそもCasaOSのときにNextcloudでの写真管理・アップロードがなんか上手くいかなかったので、PhotoPrismを選んだ経緯がありました。他にもImmichとかありましたので試してみましたが、私の環境ではすんなり動かなかったので、結局PhotoPrismを入れていたのですが、今回を機に、写真もファイル同期もテキストデータ管理(noteやブログで書いた文章など含む)も全てまとめることにします。

    さあ、これで残りは一つになりました。

    ・CasaOSで運用中のセルフホストのサービス
    FreshRSS→移行完了
    Jellyfin
    Nextcloud→移行完了
    AdGuardHome→Pi-holeに移行完了
    Memos→移行完了
    Vaultwarden→移行完了
    PhotoPrism→Nextcloudに移行完了
    Ghost→移行完了

  • 脱CasaOS計画〜その6:VaultwardenをProxmoxに移行

    いよいよ移行済みのサービスが未移行のサービスを上回ってきましたが、まだ面倒なのが残っています。

    とりあえず外部ストレージを使っていないものを先に終わらせたいので、今回はVaultwardenのサーバの移行です。

    まず先に、CasaOSの
    /Root/DATA/AppData/vaultwarden/data
    の中身をダウンロードしておきます。

    Proxmoxで新しいLXCを作り、
    コンテナイメージ:Debian13
    CPU:1コア
    メモリ:1024MB(後に512MBに縮小)
    スワップ:1024MB(後に512MBに縮小)
    ストレージ:8GB
    メモリは後になって減らしましたが、後から減らせないストレージはそのままです。8GBも要らないですね。メモリもなんなら256MBでも大丈夫かも。

    さて、LXCでDockerを準備してから、SCPコマンドで先程保存しておいた旧サーバにあったデータを全て、新サーバにコピーしておきます。

    そして新環境でのVaultwardenを構築。さらにNginxProxyManagerでのIPアドレス指定を変更して、ブラウザでアクセスしてログインを確かめれば完了です。

    始め、SCPでコピーする先の指定を一つ下のフォルダにしてしまっていたため、ログイン時にマスターパスワードが通らなくて焦りました。コピーし直せば良いだけでしたけど。

    あと、最近何故かスマホでのVaultwardenへのログイン(Bitwardenアプリ)が出来ていなかったのですが、今回の移行後に試してみたら大丈夫でした。前のCasaOSでのVaultwardenの設定がおかしくなっていたのかも知れませんが、今回の移行で問題なくなって良かったです。

    これで外部ストレージを使っていないサーバの移行は全て終わりました。ここからが面倒なんですよね・・・。

    ・CasaOSで運用中のセルフホストのサービス
    FreshRSS→移行完了
    Jellyfin
    Nextcloud→移行途中
    AdGuardHome→Pi-holeに移行完了
    Memos→移行完了
    Vaultwarden→移行完了
    PhotoPrism
    Ghost→移行完了

  • 脱CasaOS計画〜その5:GhostをProxmoxに移行

    連続ブログ投稿の第5回目は、ブログサービスのGhostを、CasaOS上からProxmoxのLXCに移すお話です。

    中身自体はスッカスカのブログなので、テキストデータ量自体はかつてのフロッピーディスクに入る程度ですが、画像をたまに貼り付けているのでその移行が面倒ですね。

    とはいえ、昨年WordpressからGhostに移したこともありますので、それを思い出しながら実行します。

    まずはProxmoxでのLXCを作ります。
    コンテナイメージ:Ubuntu server 24.04
    CPU:1コア
    メモリ:1024MB
    スワップ:1024MB
    ストレージ:8GB
    で作成。Ghost用の一般ユーザーを作り、Node.jsをインストールしますが、ここで浅薄な知識を持つオジサンは、新しいバージョンのほうが良いだろうと勝手に思ってv25を入れてしまいましたが、後ほどエラーが出て進まなくなったので、削除してからv22を入れ直しました。

    MySQLも入れてデータベースの設定を行い、Nginxも入れて、Ghost-CLI のインストールと Ghost 構築を行います。

    Ghostインストール時に色々聞かれますが、私の環境ではNginxProxyManager経由で独自ドメインのSSLを設定しているので、このGhost自体ではSSLは設定しません。

    インストール完了後にGhostを起動して、同時にNginxProxyManagerのIPアドレスを古い方から新しい方に変更します。これで新しい方のGhostにアクセスできるようになりました。

    Ghostの初期画面でサインアップしてから、すでに古いGhostでエクスポートしたファイルを新しい方でインポートすると、記事自体の移行は完了です。

    私のブログはほぼ画像が無いですが、たまにあるのでそれも移行します。CasaOSのファイル機能から、
    /Root/DATA/AppData/big-bear-ghost/content/images
    の中身をダウンロードして、解凍したフォルダごと、SCPで新しいGhostの
    /var/www/ghost/content/images/
    にコピーしたら、画像も新しいブログで表示されました。

    ちなみに、起動しててリソースの逼迫具合を見てみると、意外と負荷がかかっています。

    CPUは大したことないですが、メモリが1GBのうち750MBも使っていて、この状態で安定していますので、これ以上は減らせないですね。やっぱりCMSというか、動的サイトはリソース食いますね。

    ・CasaOSで運用中のセルフホストのサービス
    FreshRSS→移行完了
    Jellyfin
    Nextcloud→移行途中
    AdGuardHome→Pi-holeに移行完了
    Memos→移行完了
    Vaultwarden
    PhotoPrism
    Ghost→移行完了

  • 脱CasaOS計画〜その4:AdGuardHomeを止めてProxmoxにPi-holeを設置

    脱CasaOS計画の4回目では、広告ブロック・DNS転送のために設置しているAdGuardHomeを、ProxmoxのLXCに立てたPi-holeに移行します。

    現在、Proxmoxを入れているDELL Wyse5070はCPUが
    CPU:Celeron J4105(Quad Core 1.5 GHz)
    メモリ:8GBx2
    というスペックのため、アレコレProxmoxでコンテナやVMを作っていくと負荷をさばけなくなりかねないため、AdGuardHomeよりも低スペックで動くPi-holeにします。以前は使っていたのでだいたいのことは分かりますし。

    例によってProxmoxのLXCですが、
    コンテナイメージ:Ubuntu server 24.04
    CPU:1コア
    メモリ:128MB
    スワップ:256MB
    ストレージ:4GB
    とかなり減らしました。メモリは最初512MBで立てましたが、メモリ使用率を見たら128MBでも十分です。64MBでもなんとかなるかも知れませんが、apt update && apt upgrade -yを走らせたら厳しいかも。

    移行作業自体は、AdGuardHomeで設定しているDNS転送設定をPi-holeでも設定すればOK。ついでに広告ブロックのリストも一部コピーしておきました。

    あと、ゲートウェイにしているpfsenseで、DNSを従来のAdGuardHome(CasaOS)から、今回のPi-holeの数字に変更します。

    これで完璧!と思っていましたが、なぜかPi-holeの方にデータが流れていきません。AIに聞いてみたら、

    ① Pi-holeのインターフェース設定(セグメントが違う場合)
    もしメインPC(例: 192.168.1.x)とProxmox(例: 192.168.2.x)でネットワークのセグメントやVLANを分けている場合、Pi-holeはデフォルトで「自分と同じセグメントからのリクエスト」しか受け付けません。
    
    Pi-holeのWeb GUI > [Settings] > [DNS] を開きます。
    
    Interface settings の項目を探します。
    
    Allow only local requests になっている場合は、Permit all origins に変更して画面下の [Save] を押してください。
    (※Pi-holeがインターネットに直接公開されていない環境であれば、これを選択して問題ありません)
    

    こういう返答がありました。今回便宜的に、別のセグメントのProxmoxを使ったのでこれが原因ですね。言われたままに設定してみれば、Pi-hole経由での通信になりました。

    そしてしばらく使っていると、

    「あれ? CasaOSのAdGuardHomeよりも、Pi-hole経由の方がウェブ表示が速いぞ???」

    ということに気が付きました。別にCasaOSを入れていたPCのスペックが低いわけでもなく、CPU・メモリや通信帯域が足りていなかったわけではなかったのですが、なぜかAdGuardHomeでの処理が遅かったようです。

    メインPCだけではなく、メインスマホ、サブスマホ、タブレットでも同様な感じに思えました。

    まあ速くなる分には問題ないです。ありがたいことです。

    ・CasaOSで運用中のセルフホストのサービス
    FreshRSS→移行完了
    Jellyfin
    Nextcloud→移行途中
    AdGuardHome→Pi-holeに移行完了
    Memos→移行完了
    Vaultwarden
    PhotoPrism
    Ghost