構成

クライアント

  • 公開 Web・管理画面Next.js 16(App Router)
  • モバイルFlutter

サーバー

  • APIGo / Gin
  • 取り込みバッチGo

データ

  • DBMySQL 8.4
  • 全文検索Meilisearch

運用

  • CI/CDGitHub Actions → コンテナレジストリ → VPS
  • 配信Docker Compose / Caddy(TLS)
  • 監視Prometheus 形式のメトリクス / Webhook 通知

技術的なポイント

  • 依存を絞った Go のバックエンド — JWT、OpenID Connect(Google / Apple)の署名検証、Web Push の暗号化(RFC 8291 / 8292)、メトリクスを標準ライブラリで実装しています。外部パッケージは最小限です。
  • 止まらない検索 — 全文検索エンジンに障害が起きたら、DB の検索に自動で切り替えます。起動時には索引を作り直します。
  • 冪等な取り込みと通知 — 取り込みは重複防止キーを使うので、何度実行しても結果は同じです。通知は集合ベースの SQL で作るので、同じ通知が二重に届きません。
  • 多層のセキュリティ — 4 段階の権限管理(RBAC)を備えています。巡回やプッシュ通知で内部ネットワークへアクセスされないよう、SSRF を防いでいます。秘密鍵が設定されていなければ、その機能自体を無効にします。
  • CI で品質を自動チェック — CI で次の 4 つを毎回実行しています。
    • OpenAPI 仕様と実装の双方向の突き合わせ
    • 使い捨ての DB を使った統合テスト
    • Playwright による E2E テスト
    • axe-core によるアクセシビリティ監査(WCAG 2.2 AA の違反ゼロを維持)
  • 安全なデプロイ — CI を通ったコミットに固定したイメージだけを本番に配布します。DB のマイグレーションは起動時に自動で適用します。バックアップと復元の練習用スクリプトも用意しています。
実績一覧へ

Contact

開発のご相談・お見積りは、
お気軽にどうぞ。