グループウェアにファイルサーバを内蔵したただし小規模団体専用と言い切る理由
Web画面+WebDAVで、NASのように開いて上書き保存できる簡易ファイルサーバNGWASを内蔵した。DB入替で表が消えた事故も含めて、「小規模団体専用」と言い切った設計判断を書く。
NGWAS(NGW Attached Storage) は、グループウェアに内蔵した簡易ファイルサーバだ。NASを置けない、置くほどでもない小規模団体の「共有フォルダ」を、NGWの中で完結させる。
先に結論を書く。小規模団体専用。 言い訳ではなく、設計判断として、そう言い切った。理由は最後に書く。
何を作ったか
- Web画面(フォルダ・ファイル・ごみ箱・履歴)と、WebDAV(
/ngwdav/)の二本立て。 - 実体は外付け領域に置く。ファイル名はDBのID。bind mountでwebroot配下に見せ、Apacheからは直接拒否する(bind mountの話と同じ作り)。専用のUSB/SSDにするときは、fstabの差し替えだけで済む。
- 権限は、所属・職員・職員区分と、拒否と継承。対象に「全職員」も選べる。削除はごみ箱を通す。
- 版管理は、上書き保存の直前の内容を3世代。ハードリンクで容量を節約し、同じ人の10分以内の連続保存は間引く。
- 認証はNGWのパスワード。失敗ロックあり、HTTPS必須。
失敗1:Web画面だけで十分だと思った
導入先はWindows 11が前提だ。最初はWeb画面だけで作った。
気づいたのは、使う場面を想像したときだ。Web専用だと、「ダウンロード → 修正 → アップロード」になる。上書きされない。古い版が出回る。
普通のNASのように、エクスプローラやFinderから開いて、そのまま上書き保存できて、初めて使われる。そう判断して、WebDAVを足した。
実機で確かめたのは、Windows 11(ネットワークドライブ、ExcelとLibreOffice)と、MacのFinder(サーバへ接続)。MS Officeでの上書き保存・保護ビュー・同時編集は、未確認のままだ。
失敗2:WebDAVはHTTPSでないと実用にならない
Windows標準のWebDAVクライアントは、HTTP+Basic認証を嫌う。だからHTTPS必須にした。
LGWANなので、公的な証明書は使えない。自前のCAを立て(ngw-https-setup.sh)、ルート証明書を各端末へ配る運用にした。課題として残るのは、保守コンソールからHTTPS対応を操作できるようにすること。まだ手作業が残っている。
事故:DB入替でNGWASが消えた
10月16日、団体のDBを入れ替えたら、NGWASの表とメニューが消えた。別の消防用DBには、最初から未登録だった。
原因は単純だった。DBへ直接入れただけで、更新SQLをリポジトリに置いていなかった。 動いていたので、置いた気になっていた。
対策は、団体別の更新SQLに冪等な形で移し、団体種別のプリセットにも加えること。教訓は1行になった。
新しいDB設定は、DBに直接入れる前に、リポジトリのSQLに置く。
人は覚えていない。だから手順にした。
なぜ「小規模団体専用」と言い切るのか
- ファイルの実体は、1台のサーバのディスク。ファイルサーバ専用機にある冗長化・スナップショット・クォータ運用・ウイルス対策連携は無い。
- 同時編集・排他は限定的。ロックは持つが、Officeの共同編集の代わりにはならない。
- 容量は、専用SSDの1〜2TBを想定している。添付が年間約170GB増える団体の「全課の共有フォルダ」を、丸ごと置く用途ではない。
- 認証はNGWのパスワードと一体。AD/LDAP連携はしない。
だから結論はこうなる。大規模団体には、既存のファイルサーバを勧める。 それを正直に書くほうが、できることも信用してもらえると思っている。作れる機能と、勧められる機能は違う。
AIとの協働作業での学び
「使われるか」は、AIに聞くまで私も考えていなかった。 Web画面ができた時点で、機能は揃っていた。使う場面を細かく想像する作業に入って初めて、WebDAVが要ると分かった。AIは機能を作るのは速いが、使う人の手の動きは、こちらが言葉にして渡す必要がある。
AIは「できます」と言い、私は「できないこと」を書く。 作る側は、できることを並べたくなる。小規模団体専用という線は、AIの案ではなく私の判断だった。できないことの一覧を、先に自分で持っておく。
消えた事故は、AIの失敗ではない。 DBに直接入れる近道を選んだのは、私とAIの合作だ。手順に直すところまでやって、初めて学んだことになる。