Actual BudgetをVPSに導入:個人予算管理のインストールと設定

読了時間 6分
Tropic
Actual BudgetをVPSに導入:個人予算管理のインストールと設定

Actual Budget:VPSで運用する自分専用の個人予算管理ツール

銀行アプリは、すでにお金を何に使ったかを示します。Actual Budgetが答えるのは別の問いです。残高の一部を家賃、食費、旅行、予期しない支出のために確保している場合、実際に使ってよい金額はいくらなのか、という問いです。

Actual Budgetは、無料でオープンソースの個人向け資産管理ツールです。ローカルで動作し、自分のサーバーを介して同期でき、エンドツーエンド暗号化にも対応しています。ここでは、主な機能、制約、VPSへのインストール方法を解説します。

Actual Budgetを7つの手順で導入する

  1. Linux VPSを作成し、budget.example.comなどのサブドメインを割り当てます。
  2. DockerとDocker Composeをインストールします。
  3. 永続データディレクトリを設定して公式コンテナを起動します。
  4. CaddyでHTTPSを有効にします。
  5. サーバーパスワードを設定し、予算を作成します。
  6. 口座、カテゴリー、ルール、定期支払いを追加します。
  7. 暗号化を有効にし、外部バックアップを設定します。

Actual Budgetとは

Actual Budgetは、個人または家族の予算を管理するためのセルフホスト型アプリケーションです。YNABのオープンソース代替として紹介されることが多い一方で、まっさらな予算から始めることもできます。

このサービスは、仮想的な封筒予算法を採用しています。口座に100,000ルーブルあるとします。そのうち40,000は住居費、20,000は食費、10,000は光熱費、15,000は予備費として必要です。割り当て後に任意の買い物へ使えるのは100,000ルーブルではなく、15,000ルーブルだけです。

この考え方によって、アプリの役割が変わります。一般的な支出管理ツールは過去の支出を説明しますが、Actual Budgetは購入前の判断を助けます。カテゴリー内で使わなかった残高は次の期間へ繰り越され、使いすぎた場合は別の封筒から資金を移せます。

もう一つの特徴は、ローカルファーストのアーキテクチャです。予算データは接続済みの端末に保存され、インターネットがなくても利用できます。接続が戻ると、変更内容がサーバー経由で同期されます。VPSは主にパソコン、スマートフォン、ブラウザー間でデータを交換するために使われ、すべての操作を処理するためのものではありません。

Actual Budgetの主な機能

  • 封筒予算。 実際に受け取ったお金だけを割り当てます。
  • 口座と取引。 振替、1件の購入を複数カテゴリーへ分割、メモ、残高照合に対応しています。
  • ルールとスケジュール。 銀行の取引摘要を整理し、カテゴリーを割り当て、給与、家賃、サブスクリプションを事前に予算へ反映できます。
  • インポート。 CSV、QIF、OFX、QFX、CAMTに対応しています。取引IDを含む形式は、重複の防止により適しています。
  • レポート。 キャッシュフロー、純資産、支出、カスタマイズ可能なグラフを利用できます。
  • 移行とAPI。 YNAB4および現在のYNABからインポートでき、独自連携のためのAPIも提供されています。

スマートフォンでは、Actual BudgetをPWAとして、つまりホーム画面に追加するWebアプリとしてインストールします。モバイル画面の使い勝手が自分に合うか、事前に確認しておくとよいでしょう。

項目クラウドサービスActual Budget
保存場所プロバイダー側端末と自分のサーバー
オフライン利用サービスによる基本機能はローカルで利用可能
保守プロバイダーが実施所有者が実施
ソフトウェア料金サブスクリプションまたは無料プラン必須サブスクリプションなし
データ管理プロバイダーの規約に従うサーバー所有者が管理

Actual Budgetは、プライバシーと管理権限を重視する人に向いています。サーバーを保守したくない場合は、クラウドサービスのほうが手軽です。

Actual Budgetのサーバー要件

プロジェクトはCPUとRAMの厳密な最低要件を公開していません。サーバーが主に同期するのは容量の小さい財務データなので、個人または家族向けの現実的な開始構成は次のとおりです。

  • 1 vCPU。
  • 1 GB RAM。
  • 10 GB SSD。
  • Ubuntu 24.04 LTS。
  • ドメインまたはサブドメイン。
  • バックアップ用の外部ストレージ。

これは実用上の推奨値であり、公式の最低要件ではありません。ほかのコンテナも動かす場合は、2 GB RAMを用意すると安心です。

Actual BudgetをVPSにインストールする方法

この例では、Ubuntu 24.04とサブドメインbudget.example.comを使用します。

1. サーバーを準備する

VPSのIPアドレスを指すDNSのAレコードを作成し、SSHで接続して、必要なポートだけを開放します。

ssh root@SERVER_IP

apt update && apt upgrade -y
apt install -y ca-certificates curl ufw

ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

2. Dockerをインストールする

Dockerの公式リポジトリを追加します。

install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

cat > /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin

3. Actual Budgetを起動する

mkdir -p /opt/actual-budget/data
cd /opt/actual-budget

cat > compose.yml <<'EOF'
services:
  actual:
    image: actualbudget/actual-server:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:5006:5006"
    volumes:
      - ./data:/data
EOF

docker compose up -d
docker compose ps

127.0.0.1へバインドすることで、ポート5006がインターネットへ直接公開されるのを防ぎます。予算データは/opt/actual-budget/dataに保存され、コンテナを更新しても消えません。

4. HTTPSを有効にする

apt install -y caddy

cat > /etc/caddy/Caddyfile <<'EOF'
budget.example.com {
    reverse_proxy 127.0.0.1:5006
}
EOF

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

DNSがVPSを指し、ポート80443へ接続できる状態なら、CaddyがTLS証明書を自動取得します。https://budget.example.comを開き、長いサーバーパスワードを設定してください。

最初の予算を設定する方法

何年分もの履歴を最初からインポートする必要はありません。現在使っている口座を追加し、現在残高を入力して、固定費、日常支出、貯蓄、不定期支出のカテゴリーを作るほうが早く始められます。

「割り当て可能額」がゼロになるまで、今あるお金だけを割り当てます。その後、最近の取引をインポートし、残高を確認して、よく利用する店舗、サブスクリプション、振替のルールを作成します。

カテゴリーは判断に役立つものであるべきです。「医療」「機器の修理」「年間サブスクリプション」を個別の封筒に分けるほうが、ひとまとめの「その他」カテゴリーより有用です。

銀行同期について知っておくべきこと

銀行接続はすべての国で利用できるわけではなく、対応するAPIプロバイダーによって異なります。利用には自分のサーバーと追加の認証情報が必要です。Actual Budgetは同期を完全自動では実行せず、ユーザーが画面から開始します。

銀行接続のトークンはサーバー上に別途保存され、予算のエンドツーエンド暗号化の対象には含まれません。特定の銀行に対応していない場合は、明細から取引をインポートできます。OFXとQFXには取引IDが含まれるため、通常はCSVより扱いやすい形式です。

暗号化、バックアップ、アップデート

エンドツーエンド暗号化は予算ごとに個別に有効化します。サーバー側ではパスワードを復元できないため、パスワードマネージャーに保存してください。Actual Budget自体は端末上のローカルコピーを暗号化しないので、スマートフォンとパソコンは画面ロックとディスク暗号化で保護する必要があります。

同期はバックアップの代わりにはなりません。設定から定期的に予算をエクスポートし、データディレクトリを別の場所へコピーします。

cd /opt/actual-budget
docker compose stop
tar -czf /root/actual-budget-$(date +%F).tar.gz data
docker compose start

アーカイブはVPSの外部へ移動してください。アップデート前にもコピーを作成し、その後で次を実行します。

cd /opt/actual-budget
docker compose pull
docker compose up -d

常用する場合は、実験的なnightlyではなく、安定版のlatestタグを選びます。

Actual BudgetにはどのVPSを選ぶべきか

個人用インスタンスに高性能なサーバーは必要ありません。tropic.hostの基本的なLinux VPSで、Actual Budget、Caddy、HTTPS対応のサブドメインを運用できます。まずは1 GB RAMから始め、ほかのセルフホストサービスを追加するときだけリソースを増やすのが合理的です。

ポート5006を直接公開せず、アップデートを適用し、少なくとも1つのバックアップをメインVPSの外部に保管してください。セルフホストサービスの安全性は、所有者の設定に左右されます。

Actual Budgetの制約

Actual Budgetは自分で保守する必要があります。銀行同期は国とプロバイダーによって制限され、モバイル版はPWAとして動作し、暗号化パスワードを失うと予算へアクセスできなくなる可能性があります。

すべての人に向くサービスではありませんが、必須サブスクリプションなしで、封筒予算、自動化、データ管理を組み合わせるという明確な目的にはよく応えます。

まとめ

Actual Budgetは支出記録を計画へ変えます。受け取ったすべてのお金に、あらかじめ使い道を割り当てる仕組みです。アプリはローカルで動作し、自分のサーバーを介して同期し、インポート、ルール、レポート、暗号化に対応します。

実行には小規模なVPSで十分です。インストール後に最も重要なのは、HTTPSを有効にし、暗号化パスワードを安全に保存し、外部バックアップを設定することです。

FAQ

Actual Budgetは無料ですか?

はい。アプリケーションはオープンソースで公開されており、必須のサブスクリプションはありません。VPS、ドメイン、バックアップストレージの費用は別途必要です。

Actual Budgetは必ずVPSにインストールする必要がありますか?

いいえ。1台のパソコンだけでローカル利用することもできます。サーバーが必要なのは、端末間同期、銀行接続、API、常時Webアクセスを利用する場合です。

Actual Budgetを銀行に接続できますか?

はい。利用している銀行と地域が、いずれかの対応プロバイダーでサポートされている場合に接続できます。それ以外の場合は、CSV、QIF、OFX、QFX、CAMTから取引をインポートできます。

自分のサーバーに予算を保存しても安全ですか?

正しく設定すれば安全ですが、責任は所有者にあります。HTTPS、長いパスワード、暗号化、アップデート、外部バックアップが必要です。

Actual BudgetにはどのくらいのRAMが必要ですか?

公式の最低値はありません。個人用インスタンスなら1 GB RAMが現実的な開始点です。ほかのサービスも運用する場合は、2 GBを用意するとよいでしょう。