このプロジェクトについて

finPalは、オープンソースのセルフホスト型個人財務アプリケーションであり、開発者は「プライバシー第一の財務管理」を掲げています。トラッキングやデータの販売はなく、セルフホスト版にサブスクリプション料金はかかりません。プロジェクトはAGPL-3.0の下で公開されており、READMEには現在活発な開発段階にあることが明記されています。機能、API、データベーススキーマが頻繁に変更されるため、アップグレード前のバックアップが推奨されています。 解決する課題 「1ヶ月の間に、お金がどこへ消えたのか」という日常的な疑問を解決することを目的としています。 実装されている機能 - 自動カテゴリ分けと、ユーザーのパターンに適応するトランザクションルールを備えた支出追跡。 - リアルタイム追跡と、使いすぎを防ぐためのアラート機能を備えた予算管理。 - 誰が誰にいくら支払うかを含む、世帯内の共有費用分担。 - 自動価格更新を備えた、ポートフォリオをまたぐ投資追跡。 - SimpleFin経由の銀行同期、または監視フォルダからのCSVインポートによる明細の自動取り込み。 - 多通貨および複数アカウントのサポート、ダークモードへの対応。 - pointsPalと呼ばれるオプションのクレジットカード特典モジュール。 - スクリプトやローカルLLM向けのパーソナルアクセストークン(スコープ付きでドキュメント化)。 インストールと運用 READMEには、Docker Composeを使用した3つのコマンドによるクイックスタートが記載されています。リポジトリをクローンし、scripts/setup-env.shを実行して生成されたシークレットを含む.envファイルを作成し、docker compose up -dを実行します。ビルド済みイメージがプルされるため、ローカルでのビルドは不要です。デフォルトポートは80で、.envのHTTP_PORTで変更可能です。最初にサインアップしたアカウントが管理者になります。セットアップスクリプトは本物のシークレットを生成します。また、.env.exampleに示されているchange_me_*というプレースホルダー値のままでは、セッション偽造の恐れがあるためアプリケーションは起動しません。 アップグレードは、新しいイメージをプルして再起動することで行われます。スキーマ管理についてもドキュメント化されています。以前は起動時にモデルからスキーマを構築していましたが、既存テーブルへの列追加が行われず、クエリ失敗の原因となっていました。現在は起動時にスキーマを自動的に調整(加算的のみ)し、不足しているNULL許容列の追加や、モデルが期待する幅より狭い列の拡張を行います。削除、名前変更、縮小、型変更は行いません。適用されたステートメントはログに記録され、docker logs finpal-backendで確認できます。SCHEMA_AUTO_RECONCILE=falseで自動調整を無効にでき、その場合は読み取り専用スクリプトscripts/schema_drift.pyで必要なステートメントを出力できます。唯一の例外は、デフォルト値のないNOT NULL列で、データが入っているテーブルには追加できないため、バックフィルを伴うマイグレーションに委ねられます。 ドキュメントとコミュニティ リポジトリには、インストール、環境変数、アーキテクチャとシステム要件、APIトークン、CSVフォルダインポート、SimpleFin、pointsPal、テストとライセンスに関するガイドへのリンクがあります。また、コントリビューションガイドには、プルリクエストにはpalStack開発者2名の承認が必要であり、レビューには通常24〜48時間かかると記載されています。インストールなしで利用できるライブデモも提供されています。 ホスティングとロードマップ フル機能のセルフホスティングは現在無料で利用可能です。サブスクリプション制のマネージドホスティングは近日提供予定です。iOSおよびAndroid向けのReact Nativeモバイルアプリが活発に開発されており、生体認証ログインとオフライン同期を目指しています。バックエンドとWeb UIは既に完成しています。finPalは、債務トラッカーであるDollar Dollar Bill Y'allを起源としていることを認めています。 ライセンスに関する注意 アプリケーションコードはAGPL-3.0であり、セルフホスト、修正、共有が可能です。修正版をネットワークサービスとして運用する場合、変更内容を公開することが期待されます。マネージドホスティング(finPal Premium)は、リポジトリのライセンスを変更しない別のプロプライエタリな提供形態として説明されています。