タグ: CasaOS

  • WordPressからGhostにブログを移行してみた

    このブログはWordpressを使って運営していますが、自分のブログの方針として、面倒くさいのでゴテゴテした感じにするつもりはないし、テキストと写真・リンク以外のものが存在しないので、Wordpressは結構過剰な仕様なんですよね。

    ということで、もっとシンプルに使えるものとして、同じCMSながらブログ・ニュースレターに特化したGhostというセルフホスト可能なサービスを使うことにしました。
    https://ghost.org/

    ウェブサービスとしても使えますが、セルフホストも可能というのはWordpressとWordpress.orgみたいな感じでしょうか。

    移行にあたっては、まずは既存のWordpressでGhost移行用プラグインをインストールします。プラグイン検索でGhostで検索すると見つかりますので、それを入れたあとに有効化すると、エクスポートできます。json1つだけ出力されるのと、画像込みZipを出力するのとがありますので、一応両方エクスポートしておきます。

    肝心のGhostについては、最初はProxmoxのLXCコンテナで作るつもりでしたが、DBとか面倒くさいなあと思ったので、VMを作ってCasaOSを入れて、CasaOSのアプリとしてGhostを入れました。勝手にDBを入れるところまでやってくれるので楽です。

    まずはプライベートIPアドレスでGhostを起動します。ポートは2368がデフォルトです。

    最初の画面でメールアドレスとパスワードを設定して初回ログイン。先ほどエクスポートしたWordpressの中身をインポートしようとすると、画像込みのZipファイルを読んでくれません。仕方無しにjsonでインポートします。画像入れてる投稿は1つくらいしか無かったので別に良いのですが、画像が多いブログを移行する場合は大変ですね。

    さて、問題なさそうなので独自ドメイン(https://hrsgmb.com)に移行・・・する前にテストとして、
    https://new.hrsgmb.com
    で使えるか試してみます。

    Cloudflareの設定で上記のテスト用サブドメインのDNSレコードを固定IPに設定し、
    AdguardHomeでサブドメインをNginxProxyManagerに向けて設定、
    NginxProxyManagerでCasaOSのIPアドレスに向けるのとSSL設定を行い、
    さあサブドメインでテスト運用!と思っていました。

    しかし、このサブドメインをブラウザで開き、設定画面で初回ログイン時に設定したメールアドレスとパスワードを使うとエラーが出てログインできません。

    訳が分かりませんでしたが、調べてみるとどうやらログイン時に作成したクッキーがないと強制的に2段階認証が発動するようです。そして、メール送信の仕組みを設定していないため、そのメールアドレス宛への2段階認証のコードを送ることすら出来ないという状況になっていました。

    先達の方々のブログも読んで、configファイルにCasaOSのアプリのターミナルから普段使わないviで書いたりしましたが、それでも2段階認証のメール送信が出来ません。

    結局、困ったときはいつもの通り生成AIです。聞いてみると、configを編集するよりも、dockerなら環境変数で設定したほうが良いとのこと。こういうことはやっぱり知識がないと駄目ですね。

    言われたとおり、CasaOSのGhostの設定画面で環境変数に追加してみました。ちなみに使用するメールはGmailで、送信システムもGmailのSMTPを使用します。

    この時に、Gmailのアプリパスワードという仕組みを使いましたが、セキュリティのことを考えるといずれこの仕組みはGoogleが廃止しそうな気がします。その時までに、自宅ネットワーク内でのメールサーバを立ち上げておかないといけないのでしょうか。

    それはともかく、生成AIのおかげで2段階認証のメールがちゃんと届き、ログインできました。

    まだテスト用のサブドメイン運用ですので、
    https://new.hrsgmb.com
    となっているものを全て、
    https://hrsgmb.com
    に変更していきまして、Ghostの設定画面にも再び2段階認証でログインできました。これで移行完了です。あ、上記のテスト用サイトは

    大してビュー数も無く、画像もあまり貼っておらず、ポスト数もまだまだ少ないブログですので、WordpressでもGhostでも表示速度に差は無いと思いますが、とにかくシンプルなのは良いですね。

    設定画面が全部英語で、日本語ローカライズも無いようですが、難しい英語が書かれているわけではないですし、ブラウザの翻訳機能を使えば誰でも使えるでしょう。

    結構良いなと思ったのですが、少なくとも日本での知名度も利用度もWordpressと比ぶべくもないくらい隔絶しています。まあ、シンプルなブログを書きたいなら、GoogleのBloggerとか、私も書いているnoteとかありますしね・・・。

  • OPNsenseからpfSenseに移行

    OPNsenseを導入して、さらにCasaOSにサーバを集約して機器もケーブルもスッキリして、はーやれやれ、と思っていたのもつかの間、突然ある日の朝に、ネットが繋がらなくなりました。メインPCもスマホもです。LAN内のサーバにはつながり、OPNsenseを飛ばして、大元の光回線ルータに直接wifiで繋ぐと、インターネットにアクセスできたので、どう考えてもOPNsenseに問題があります。

    ということで、出勤するまでの数十分間かけて色々やっても駄目、仕事を終えて帰宅してからバックアップデータから復旧しても駄目、ついにはファクトリーリセットをしても駄目、ということで絶望に打ちひしがれていました。

    また完全にゼロからOPNsenseを入れ直せば、多分動作するんだろうけれど、また同じ設定をやったらまた同じように駄目になりそうですし、そもそもまたOPNsenseを入れるのも芸がないので、OPNsenseの派生と言うか正確には派生元から分離したpfSenseの方をインストールしてみます。

    なんかよく知らないですが、netgateという会社のホームページからダウンロードできるようですが、メールアドレスやら住所やらを登録しないといけないようです。色々調べていたらRedditに旧バージョンのftpのURLを貼っている神がいましたけれど、そもそも何か送られてくるわけではないので、メールアドレス以外は嘘を書いておけばいいだけです。メールアドレスもFirefox Relayのマスク機能を使えば、何の個人情報も先方には渡りません。

    さて、なんやかんやで手に入れたisoファイルを、いつものごとくUSBメモリ内のVentoyのフォルダにコピーして、いざインストール。途中の画面は似ていますし、インストール完了直後のコンソール画面での設定はほぼ同じですね。

    GUI画面はまるっきり異なりますが、実際に設定できる内容はやっぱり似ています。インストール直後のデフォルトのIDとパスワードが[admin]と[pfsense]で、[root][opnsense]だったOPNsenseとは違ったのでちょっと焦りましたけれど。

    さて、またAIにも聞きつつ、自分の環境に合わせた設定をしていきます。今回は逐一、バックアップを段階ごとに保存していきます。しかし、[Diagnostics]→[Backup & Restore]→[Config History]に、設定変更ごとに巻き戻したり設定を保存したりする機能があることを知りました。逐一バックアップ取らんでもええんかいな。まあ、動かなくなったりログインできなくなったら終わりなので、やっぱりバックアップデータの別PCへの保存は必要ですね。

    ともかく、設定をすればちゃんと動きました。LANとOPT1の分離も出来ましたし、Tailscaleプラグインを入れてモバイル回線からもアクセスできました。

    これでなんとかなりそう。これでもなんか知らん間に駄目になったら、OpenWRTを試してみようか。

  • Proxmoxから大半のサーバをCasaOSに移転(というか作り直し)

    先日の投稿では、OPNsenseをルータ兼FWとして導入したと書きましたが、今度はその内側のネットワークとサーバの話です。

    これまでProxmoxを入れたPCを複数台運用して、
    WordPress
    NginxProxyManager
    NextCloud
    Jellyfin
    FreshRSS
    AdguardHome
    などなどのサーバを運用してきまして、クラスタ化やバックアップなど様々なLinuxサーバの勉強とおためしをしてきましたが、勉強のためではなく、自分個人で利用者として使うことになると、各PCでの動作確認や電源・LANケーブルの煩雑さが鬱陶しくなってきました。

    そして、ふと思ったのが、「そもそもPC1台にまとめたら良いんじゃね」ということでした。

    現在のProxmox内でのサーバ運用でも、オーバーヘッドを加味しても十分に余裕がある状態であり、また、一人だけしか使わないのですから同時に複数のサーバを酷使することはありません(例えば、NextCloudで写真同期しながら、Jellyfinで動画を再生しつつ、OMVで大量のファイルコピーをこなったりすることはないです)。

    ということで、現状のProxmoxの各VMやLXCを整理して、1台のPCに集約することにしました。利用するのはCasaOSです。

    Zimaboardに最初にインストールされていたのを少しだけ触っただけでしたが、これを気にガッツリ触れてみましたが、個人利用での複数サーバ運用ならこれが最適解のような気がします。もっと細かく設定したいなら、Dockerで直接全てのパラメータを自分で決めれば良いでしょう。

    さて、使うPCは、現在自宅にあってサーバ運用しているPCの中では最も高性能な、Ryzen5 3550Hを積んだものです。

    https://www.amazon.co.jp/dp/B0DBLGVNXQ

    以前にもこのブログやnoteでも紹介しましたが、今になって型番が「AN2」であることを知りました。というかPCウラ面にも書いていました。

    このPCはメモリ16GB×2での運用も可能で、以前には32GB×2の合計64GBでも動作しました。今回は合計32GBで使います。

    Proxmoxに入れるVMやLXCではいつもUbuntu Server24.04を使ってきましたが、今回はついこないだメジャーバージョンアップがあったDebian13を使ってみることにします。

    isoファイルをVentoyの入ったUSBメモリにコピーしてさっさとインストールします。毎度のことながらVentoyの有能さには感心します。考えた人天才か。

    Debian13自体はGUIでは使わないので最小構成プラスSSHだけでインストール完了させて、続けてCasaOSです。こちらもcurlコマンド一発ですのでありがたいです。

    CasaOSのインストールが完了したら、メインPCのブラウザでDebian13及びCasaOSのプライベートIPアドレスを叩いて表示させます。CasaOSのデフォルトポート番号[80]は運用するサービスによっては競合するので、さっさと変更しましょう。私は[9091]にしましたが、競合しなければ、かつ自分が忘れないようなものなら何でも良いです。八千番台は結構使われがちです。

    お次はApp Storeから使いたいものをどんどんインストールしていき、競合するポートとか、ネットワークとか、ボリュームとかはエラーが出るたびに生成AIに質問して解決していきました。大して知識がなくても、諦めない根性と、データを失っても良い覚悟と、解決にかける時間があればなんとかなるものです。

    ちなみに、ここでOPNsense&NEC PC+LANカードという組み合わせをした一番の理由である、Wordpressサーバの分離を行いました。

    OPNsenseのLANアドレスには、メインPCやCasaOSをつなぎ、OPT1の方にはProxmoxに入れたWordpressとNginxProxyManagerをつなぎました。NginxProxyManagerはOPNsense→AdguardHomeを経由してドメイン解決していて、さらにLet’s EncryptによるSSL認証にも利用しているので、今すぐは無くせないですね。

    取り急ぎ、サーバ・ネットワークの簡素化と分離を行うことが出来ました。

    しかし、このRyzen5搭載のPC「AN2」の問題点は、CPUを低速で動かしていても、発熱→ファン高速回転→温度低下→ファン低速回転→発熱→ファン高速回転→温度低下・・・というループとなってファン音が気になってしゃーないことです。

    ということで、せっかく入れたCasaOSのセットアップをやり直します。低電力で有名なIntel N100を搭載した、UN100Pの方を使うことにしました。メモリはAN2から持ってきた16GBを使います。AN2のCasaOSでは32GBでも十分に余りまくっていましたから、16GBでも多いくらいです。

    Debian13とCasaOSのインストールが短時間で終わることが救いですね。もう一度同じことをやり直して完了。ちなみに、Proxmoxで全て運用していた時にNASとして使っていたOpenMediaVaultは、今回は使用せずにCasaOSそのもののファイル共有機能を使います。個人利用ならこれで十分でした。

    さて、ここまで上手くいって、よしよし・・・と思っていたところ、まさかの状態に陥りましたが、次の記事に続きます。