インフラ/アプリ開発 取り組み整理

取り組み紹介

自宅サーバー(Homelab)を中心に、仮想化基盤の設計〜運用各種サービスのセルフホスト、および iOS / Web / 業務効率化システムの開発に取り組んできました。

1. 概要

1.1 目的

  • 自宅環境で 安定運用できるサーバー基盤を構築し、日常利用・開発・検証環境として活用
  • 個人利用のアプリ開発に加え、業務で発生するFAX書類の電子化を目的としたシステムを開発・検証

1.2 主要技術

  • 仮想化: Proxmox VE(2ノードクラスタ)
  • コンテナ: Docker
  • 公開/ネットワーク: Cloudflare(DNS/ドメイン管理, Tunnel), VPN, Reverse Proxy
  • 監視: Uptime Kuma(相互監視)
  • ストレージ/NAS: OpenMediaVault(NAS)
  • メール: mailcow
  • CI/CD: Gitea + CI/CD(Gitea向け)
  • アプリ開発: Swift(iOS), Web(PWA)
  • 業務システム: LLM を用いた文書抽出・データ化、DB/CSV、管理UI

2. インフラ(Proxmox / Homelab)

2.1 基盤構成

  • Proxmox VE によるサーバー構築
  • 2ノードでクラスタ構成
  • VM / LXC を用途に応じて分離し、サービスを段階的に追加

2.2 Proxmox 上の VM / LXC(主要コンポーネント)

  • DNS サーバー(各ノードに配置)
  • リバースプロキシサーバー
  • VPN サーバー
  • Minecraft サーバー
  • コンピューター部の部員に マルチサーバーとして実運用
  • 死活監視(Uptime Kuma)
  • 各ノードに配置し 相互監視
  • Windows(リモートアクセス用PC)
  • Docker 専用サーバー
  • メールサーバー(mailcow)
  • NAS サーバー(OpenMediaVault)

3. Docker 上で運用しているサービス

3.1 開発・運用基盤

  • Gitea(Git サーバー)
  • CI/CD サーバー(Gitea 用)
  • Docker 管理(Dockge / Portainer)
  • DNS 同期サービス
  • Cloudflare Tunnel(サービス公開の経路)

3.2 生活・個人利用

  • Vaultwarden(パスワードマネージャー)
  • Wiki(自宅サーバー情報:構成、運用手順、IP等の管理)
  • Dawarich(Google Map タイムライン代替)
  • FreshRSS(RSS)
  • Paperless(レシート等の電子化)
  • Upsnap(WOL サーバー)

3.3 検証/プロダクト用途

  • 自作の習慣管理アプリのデプロイ
  • 開発中サービスのテスト環境
  • 父親の会社に導入予定の FAX 文書→注文書抽出→電子化システムの検証に利用

4. NAS(OpenMediaVault)上のサービス

  • Jellyfin(動画メディアサーバー)
  • NAS保存のビデオカメラ映像・アニメ等を視聴
  • Navidrome(音楽メディアサーバー)
  • Nextcloud(セルフホストクラウド)
  • ArchiveBox(Webページのアーカイブ取得)

5. DNS / ドメイン / 公開構成

  • Cloudflare を利用した DNS / ドメイン管理
  • 無料ドメインとして MyDNS / DDNS Now を利用
  • OCI 無料枠を利用した外部公開
  • Minecraft サーバー公開、メールサーバー用途等

6. アプリ開発

6.1 iOS(Swift)— App Store 未公開

  • Swift ネイティブ習慣化アプリ
  • 自分用に必要機能を実装し、現在も継続利用中
  • Swift ネイティブ音楽プレイヤー(開発中)
  • Samba サーバー上の音楽ファイルを再生できるアプリを開発

6.2 Web(PWA)

  • 習慣化アプリ(PWA)
  • Webで利用可能、PWAとしてインストールも可能
  • ただし PWA の体感速度や操作性に課題があり、Swift ネイティブに移行

7. 業務効率化システム(開発中):FAX注文書の抽出・データ化

7.1 背景

  • 父親の会社では、注文書/請求書/請け書などが FAX で送付される
  • その中から 注文書(受注書)だけを抽出し、業務で扱える形に電子化したい

7.2 システム概要

  • FAXのPDF(画像)から対象文書(注文書)を判別
  • LLM を用いてデータ化(構造化)
  • マスターデータと照会し、整合性チェック・補正の支援
  • DB へ記録
  • 記録データは 修正可能で、CSV ダウンロードにも対応する管理UIを提供

7.3 取り組み(改善のための調査)

市場にある既存サービスを調査し、
「現場で便利になる要件」を取り込みながら設計・開発を継続

8. 取り組みのポイント

  • 運用を前提にした設計
  • DNS / Proxy / VPN / 監視 / ストレージ / メール まで含めた一貫構成
  • 冗長性・可用性への配慮
  • 2ノードクラスタ、Uptime Kuma の相互監視、サービス分離(VM/LXC/Docker)
  • 実運用実績
  • Minecraft サーバーを、部活動メンバーに提供し運用
  • 開発と運用の両輪
  • iOS・Webアプリ開発だけでなく、基盤上でのデプロイ/改善サイクルを回している
  • 業務課題の具体的解決
  • FAX文書の自動処理・データ化・照合・管理UIまで通しで構築中