2023年度 移設プロジェクト

長らく放置していた各サービスを新しい環境に移設することにしました。

きっかけは主に二つ。

  • 小鳥猊下からNWOのリニューアルを依頼された
  • サーバーOSの保守期間が切れている

NWOは古いCMSで構築されており、ほとんどの機能がうまく動いておらず、サイト再構築ですらだましだましエラーを回避して行っている状態でした。
新しいデザインのテストや新規の記事投稿をするためには、CMSの再構築が必要す。

サーバOSの保守期間も悩ましい問題です。
FFBATTLEをはじめとした自作CGI Perlもそうですが、Xoopsはまともに更新されておらず、新しいOSでは動作しません。
保守されている新しいOSを利用するためにはXoopsの廃止が必要です。

この際だからNWO以外は全て閉鎖しても良いかと思ったのですが、何人かの声により更新して移設することにしたのでした。

最初に取り組んだのはXoopsの後継調査です。
Xoopsは様々なディストリビューションに派生していますがほぼ全て更新停止していました。
仮に本体を更新できたとして、今使っているモジュールが手を入れず動くとは思えません。

調査の結果、人気や機能からwiki.jsとdiscourseを採用することにしました。
それぞれNode.jsやRubyで動作するため今までなら採用を見送っていましたが
今回はdockerベースで構築することにしたので、この選択ができました。

PHPで動いているWordpressやFreshRSSも公式のdocker imageが使えそうです。
あとは古の時代に作られたFFBATTLEと@パーティⅡです。
果たしてどの程度の修正で動くのか。これは全く予想できませんでした。

結論から言うと、困難だと思っていた古のゲームは新しい環境でも動きました。
モジュール読み込み方法を少し変えれば画面が表示され、
エラーが出ていた幾つかの処理も少しの手直しで解決しました。
文字コードの対応に時間がかかっていますが、それもいつか終わるでしょう。
そんな感じで、今は実環境でのテストを通じて問題を集めています。

やることが多そうなので今回は全体設計から入りました。
この図は構築を始める前に纏めたものですが、ほぼこのままの形で進められています。

全体の構想も決まったのでいよいよ構築作業に入ります。
最初に着手したのはWikiでした。最も移行に時間がかかると予想したためです。
この時に作ったnginx, certbotの仕組みは今後作るほかのサイトでも再利用します。

似たような構成のサンプルが多く、すぐに動くものが出来ました。
公式サンプルのDBが古く、最新版でも動くか確認するのに少し時間を要しました。

何人かの貢献により記事の移設は予想より早く進んでいます。
引き続きよろしくお願いいたします。

DiscourseやFreshRSSは大きな問題なく導入が出来ました。
Discourseは構築方法が独特なため、他のサイトに合わせるのに少し工夫が必要でした。

サイトもそろってきたので監視系の仕組みを導入しました。
Grafana無償サービスを無料範囲で使うのは難しそうなので、自前で用意しました。

試行錯誤の末、ある程度満足できる構成とdashboardの作成が出来ました。

nWoの移設にも着手しました。
Movable Typeの2系からの移設になります。

Movable Type系の最新版への移設も考えましたが、今回の要件を考えると達成が難しそうです。
ありきたりですが一般利用者数の多いWordpressを使うことにしました。

Movable Typeが古すぎてあらゆるデータ移行ツールのサポート外でしたが
Movable Type・TypePad インポートツールがうまく動作しました。

既存要件と新規要件を加味し、下記機能の追加を検討中です。

  • カテゴリソート(プラグイン利用)
  • サイドバーを左に (子テーマか追加CSSで処理)
  • note記事取り込み (RSSを取り込む仕組みを実装またはプラグイン)
  • 一部のカテゴリのみ 表示方法やソート順を指定 (固定ページ + プラグイン)
  • レビュー系記事に画像追加 (個別対応)
  • 全記事一覧 (固定ページ + プラグイン)