1. サーバー構築: Raspberry Pi 5で、Webサーバーをゼロから立ち上げました。

  2. 複数アプリの運用: 2つの異なるNode.jsアプリを、ポートの衝突を解決して同時に動かしました。

  3. リバースプロキシ: Apacheを使い、プロの現場と同じようにリクエストを振り分ける仕組みを作りました。

  4. ユーザー認証: bcryptでの安全なパスワードのハッシュ化から、express-sessionを使ったログイン管理まで、Webアプリの核心的な機能を実装しました。

  5. 認可とUI制御: ログイン状態に応じて、ページのアクセス制御や、ボタンの表示/非表示を切り替えました。

  6. Markdown対応: markedを導入し、執筆環境を劇的に改善しました。

  7. シンタックスハイライト: Prism.jsを追加し、コードブロックの見た目を美しくしました。

  8. そして、数々のデバッグ:

  • ERR_CONNECTION_TIMED_OUT (ファイアウォール)
  • ERR_CONNECTION_REFUSED (アプリの停止 / 待ち受けIPの問題)
  • ReferenceError (起動時クラッシュ)
  • ERR_EMPTY_RESPONSE (実行時クラッシュ)
  • EJSのパースエラー (テンプレートの構文ミス)
  • そして今回のタイムゾーンの問題