レシートを投げるだけで完結する家計簿Botを自作して自宅鯖で回す

デジタル人材事業部の南です。私の運用している自宅サーバーについて紹介します。

【社員インタビュー】インフラエンジニア:南さん

サーバー構成

現在稼働中のサーバーは4代目 になります。

  • 元の姿:妻が使っていた謎のBTO PC(Windows機)

  • OS:Ubuntu 24.04 LTS

  • CPU:Intel Core i7-7700 @ 3.60GHz(4コア8スレッド)

  • メモリ:16GB

  • GPU: なし (GTX1660Superが刺さっていたはず)

妻がPCを買い替えた際に接収し、グラボを抜いてサーバー化しました。
平日は18時、土日は12時に自動起動し、3時に自動シャットダウンするように設定しています。

自宅鯖の歴史

初代

高校生の入学祝いで買ってもらった、メイプルストーリーくらいしか満足に遊べなかったダイナブックのノートPCを、FPSゲームをやるためにデスクトップPCを買い替えた際に利用したのが、私のサーバー運用の始まりでした。

当時はFPSゲームで利用するため、ボイスチャットソフト VentriloTeamSpeak 2/3 のサーバーを身内用にホストしていました。

…が、当時セキュリティ意識は皆無で以下の

  • 生IPで接続

  • VCサーバーの接続にはパスワードが不必要

なけなしのセキュリティ意識により、チャンネル(部屋)にはパスワードを掛けていたが、謎の外国人達が毎日のようにVCサーバーに入場してきて、「入れてくれ」的なチャットを送ってくる事態が頻発しました。
とても怖かったので知らない人が接続してくるたび、即座に手動でBANし不在の間はログをtailしておいて謎のIPは手動でBlacklistに入れるという運用をしていました。

2〜3代目

2代目はPC買い替えの際に流用/3代目はVPSを利用したり
主に以下のゲームのサーバーなどを身内向けにホストする目的で立ち上げていました。

  • 7 Days to Die 
  • Minecraft
  • Terraria

ボイスチャットは 2015年くらいまで立ち上げていましたが、Discord の普及とともに廃止しました。

4代目:現在

現在は趣味と実用を兼ね、LAN内でMinecraftサーバーと家計簿Bot を稼働させています。
またKubernetesなどインフラの勉強のために利用しています。

家計簿Bot

世にある様々な家計簿アプリを利用してはみたが、続かなかったので。
結婚を機に家計管理を多少はやりましょうということになり、Discord上で入力するだけのゆるふわ家計簿BotをClaude codeで作成しました。

フロー

テキストはAPIを介しません…

技術スタック

  • Bot本体:Node.js / Discord.js

  • レシート解析・分類:Claude API(Anthropic SDK)

  • データ保存:Google スプレッドシート(GAS経由)

主な機能

  • レシート画像認識:レシート画像をもとにClaudeが読み取りをする

  • 手動入力対応:アイス:128 のようなテキスト入力でも可能にしている

  • AI自動分類:「食費」「日用品」「趣味・交際費」などを自動判定

  • 収入・貯蓄管理:支出だけでなく収入や貯蓄も記録可能

使い方

家族専用のDiscordサーバーの特定チャンネルにレシート画像を雑に投げるか、テキストで入力

API料金
一番使ってる月で1.44USD程

 

 

レシート読み取りの精度が甘いので、確認もある程度必要になりますが、おおむねいい感じにカテゴリ分類されてスプレッドシートに記録されます。
Notionとかいろいろな家計簿も触ってみましたがちょっと複雑だとめんどくさくなってしまって続かず…。
我が家は連絡に基本Discordを使用するため、なんとか継続できています。

家族連絡がDiscordな理由

  • 基本PCの前にいるのでL〇NEより反応が100倍早い
  • 話題ごとにチャンネル分けしているので、重要なメッセージが流れにくい(検索も割としやすい)
  • 投稿写真や動画のログが消えない
  • お互いにL〇NEの友達リストが少ない

株式会社エイプリルナイツは、ゲームが好きという共通の価値観をベースに、楽しく働きやすい企業を作っていこうとしています。
ゲームが好きなエンジニアはぜひ弊社にご注目ください!