NOOKAXIS 1/100(ヌークアクシス ワンオブハンドレッド)は、
プロフィールページの総合管理の仕組みのCGIです。
如何に一つ一つのコンテンツの価値を失わせるのか?
そのことについて深く探究しつつ作りました。
なぜ作ったのか?
新規事業のためです。
MovableTypeを使おうと思っていたのですが、
NOOKBBSを作ったので、あれ?これ、自分でも作れるんじゃね?
と思い作りました。NOOKBBSと仕組みはたいして変わりません。
そんなありふれた技術の集合体のDBを使わないCMSです。
機能概要
Perlで動作する軽量な投稿・管理システムです。
データベースを使用せず、JSON ファイルで投稿データと認証情報を安全に管理します。
個人・小規模チーム向けに設計されており、静的ホスティング(CGI可)環境でも動作可能です。
- 投稿の登録・削除・固定表示(ピン留め)
- 管理者ログイン/ログアウト機能(セッション・CSRF 対応)
- パスワード変更機能(SHA256ハッシュ)
- 更新停止(フラグファイルによる制御)
- 投稿ログの HTML ダウンロード機能
- XSS・CSRF・不正投稿対策済み
構成ファイル
個別ユーザーは「write.cgi」経由でパスワード変更と挨拶文の投稿管理のみ行えます。
他は全て運営管理のシステムです。そのため、バックアップと復元が容易です。
| ファイル名 | 役割・説明 |
|---|---|
| index.html | プロフィール、挨拶、リンクを表示 |
| log.html | 投稿ログを表示 |
| write.cgi | 投稿、固定、削除、更新停止などを制御 |
| style.css | サイト全体のデザイン |
| script.js | ページの動的挙動や入力補助スクリプト |
| profile.png | プロフィール表示用の画像 |
| stop.flag | 運用中に更新機能を停止するファイル。 |
| folder.json | 実際のパスワードファイルの保存パスを定義。 外部から直接アクセスされないよう分離管理。 |
| pass.json | 管理者パスワードを暗号化して保存。 |
| posts.json | 投稿本文、固定表示、日時などの投稿データ。 |
| access.log | ログイン・投稿・削除などの操作履歴を記録。 |
| info.json | 補助情報を保存 |
| user.json | 表示するユーザー名 |
| links.json | リンクファイルです。 |
| links.cgi | links.jsonの生成 |
| setup.cgi | NOOKAXIS 1/100のセットアップ |
※実際のファイル名とは違います。
提供形態
本システムは Assembly(アセンブリ)を通じてのみ提供・運用予定です。
構造上はBBSに近い仕組みを持ちますが、目的はコミュニケーションではなく、
プロフィールページの固定・参照・管理に特化しています。
設置・保守・アップデートは運営が一括管理し、ユーザー側での改変は行えない仕様です。
対応環境
- Perl 5.10 以降
- UTF-8対応(JSON保存時はASCIIエスケープ形式)
- CGI実行可環境で動作確認済み
- データ保存形式:JSON(DB不要)
ライセンス
- 著作権:© MOMOWORK
- 商用利用可(改変OK、再配布禁止)
編集後記
JSONの特徴がなかなか掴めずイライラし、すごく苦労しました。
ASCIIは普通に開いてもそのままでは読めないので人様の人生に
関与したくないという私の思い通りの仕様です。