Homelab / アプリ開発の取り組み

自宅サーバー(Homelab)を土台に、仮想化クラスタの運用セルフホスト環境の構築、さらに iOS / Web / 業務効率化システムの開発を進めてきました。


1. 全体像

1.1 目的

  • 日常利用・開発・検証に耐える 安定運用の自宅基盤を構築する
  • 個人利用アプリに加え、業務のFAX書類を電子化して活用できる仕組みを作る

1.2 主要技術

  • 仮想化: Proxmox VE(2ノードクラスタ)
  • コンテナ: Docker / LXC
  • ネットワーク/公開: Cloudflare(DNS/ドメイン管理, Tunnel), Reverse Proxy, VPN
  • 監視: Uptime Kuma(各ノードで相互監視)
  • メール: mailcow
  • NAS/ストレージ: OpenMediaVault(NAS)
  • 開発: Swift(iOS), Web(PWA), LLM活用(文書抽出・構造化)

2. インフラ(Proxmox:2ノードクラスタ)

2.1 基盤構成

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

2.2 Proxmox上の VM / LXC(一覧)

  • DNSサーバー(基盤)

    • 目的: 名前解決
    • 備考: 各ノードに配置
  • リバースプロキシサーバー(基盤)

    • 目的: 公開/ルーティング
    • 備考: セルフホストサービスのSSL化用
  • VPNサーバー(基盤)

    • 目的: リモートアクセス
    • 備考: 外部からのアクセスに使用
  • Minecraftサーバー(運用)

    • 目的: マルチサーバー運用
    • 備考: 部活動メンバーが実利用
  • 死活監視(Uptime Kuma)(運用)

    • 目的: 監視/可用性確認
    • 備考: 各ノードに配置・相互監視
  • Windows(運用)

    • 目的: リモートアクセス用PC
  • Docker専用サーバー(基盤)

    • 目的: コンテナ運用の集約
    • 備考: Docker上で各種サービスを運用中
  • メールサーバー(mailcow)(基盤)

    • 目的: メール運用
    • 備考: セルフホストサービスからのメールや、個人用のメールに使用
  • NAS(OpenMediaVault)(基盤)

    • 目的: ストレージ/メディア

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

3.1 開発・運用基盤

  • Gitea

    • 目的: Gitサーバー
  • CI/CDサーバー(Gitea用)

    • 目的: ビルド/デプロイの自動化
  • Dockge / Portainer

    • 目的: Docker管理(可視化・運用)
  • DNS同期サービス

    • 目的: DNS設定の同期/管理
  • Cloudflare Tunnel

    • 目的: サービス公開の経路

3.2 生活系

  • Upsnap(WOL)

    • 目的: Wake-on-LAN 操作
  • Vaultwarden

    • 目的: パスワードマネージャー
  • Wiki(自宅サーバー用)

    • 目的: 構成/運用手順/IPなどの整理
  • Dawarich

    • 目的: Google Mapタイムライン代替
  • FreshRSS

    • 目的: RSSサービス
  • Paperless

    • 目的: レシート等の電子化

3.3 デプロイ/検証

  • 習慣管理アプリ(自作)

    • 目的: 自作アプリの運用環境
  • 開発中サービスのテスト環境

    • 内容: FAX文書→受注書抽出→電子化(父親の会社導入予定)

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

  • Jellyfin

    • 目的: 動画メディアサーバー
    • 備考: NAS保存の映像/アニメ等を視聴
  • Navidrome

    • 目的: 音楽メディアサーバー
  • Nextcloud

    • 目的: セルフホストクラウド
  • ArchiveBox

    • 目的: Webアーカイブ取得

5. DNS / ドメイン / 公開

  • Cloudflare で DNS とドメイン管理(jitaku.win)を実施
  • 無料ドメインとして MyDNS / DDNS Now を利用
  • OCI(Oracle Cloud)無料枠で外部公開も実施
    • Minecraftサーバー公開、メールサーバー用途など

6. アプリ開発

6.1 iOS Swift

  • 習慣化アプリ
    • 日々の習慣を継続できるようにするためのアプリ
    • 自分の欲しい機能を実装し、現在も継続利用中
  • Samba上の音楽ファイルを再生するアプリ
    • Sambaサーバー内の音楽をiOSで再生可能にするアプリを開発中

6.2 Web

  • 習慣化アプリ(PWA)
    • Webで利用でき、PWAとしてインストールも可能
    • ただし ネイティブ比で遅さ/不便さがあり、Swiftネイティブへ移行

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

7.1 背景

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

7.2 目的と機能(要点)

  • FAXのPDFから 注文書(受注書)を判別・抽出
  • LLMで項目を構造化(データ化)
  • マスターデータと照会して整合性確認
  • DBへ記録し、管理画面で
    • 記録データの 修正
    • CSVとしてダウンロード
  • 市場の既存システムを調査し、現場で便利になる要件を取り込みながら改善

検索を開始

キーワードを入力して記事を検索

↑↓
ESC
⌘K ショートカット