機能
Financy が今できること、次にできること
Financy は作り直しの最中です。今日使えるもの:どの通貨でも使える口座と、それを支える土台。ログイン、ロールによる共有、リアルタイムの更新、オフラインアプリ、エクスポート、9 言語、そしてあなた自身のサーバー。各セクションから、そのコードに飛べます。
著者: Anton Shubin更新日:
取引と予算はまだできていません。作り直しの進み具合を見る。
今できること
世帯のお金を載せる土台
これらは動いていて、CI でテストされています。どの通貨の口座も、そのカテゴリも使えます。取引は次に来ます。
現在使えるものGoogle と GitHub でのログインにはサーバー独自のキーが必要なため、新しくセルフホストした環境では、まずメールでのログインだけが使えます。
口座ごとに、それぞれの通貨で
現金、銀行口座、カード、貯蓄、資産、負債を、それぞれの通貨で。種類ごとにまとめ、メインの口座を1つ決められます。変更は世帯の全員にすぐ届きます。
開発者向け
- 残高はサーバーが読み出すたびに計算し、どこにも保存しないので、ずれることがありません
- 金額は通貨の最小単位の整数です。円には小数がなく、ディナールは3桁です
- 閲覧者は口座を見るだけで、変更できるのは編集者以上。サーバーが確認します
1階層だけのカテゴリ
支出と収入をカテゴリに分けて、それぞれにアイコンと色を付けます。食料品と外食は食費の下に。新しい世帯は、その言語の短いリストから始まります。
開発者向け
- カテゴリは削除されません。アーカイブすると選択肢から消え、過去の記録には残ります
- サブカテゴリの種類は親と同じで、親カテゴリに親は持てません。サーバーで確認します
- 閲覧者はカテゴリを読めます。変更できるのは編集者以上だけです
ログインは完成済み
メールアドレスとパスワードで新規登録し、コードでメールアドレスを確認します。忘れたパスワードのリセット、Google や GitHub での続行、パスキーやメールで届くログインコードでのログインもできます。認証アプリで2段階認証(2FA)を追加でき、ログイン中のすべての端末を確認して、ほかの端末からログアウトできます。
開発者向け
- パスワードはWeb CryptoのPBKDF2-SHA-256でハッシュ化(デフォルトで60万回)
- 署名付きのセッションCookieと、すべてのログインイベントの監査ログ
- 個人用APIトークンは鍵付きハッシュとしてのみ保存
ひとつの世帯、一人ひとりに自分のログイン
世帯(アプリではグループ)は、お金を共有する人たちです。パートナーや家族を招待し、閲覧者からオーナーまでのロールを割り当て、必要なときにオーナーを譲渡できます。削除した世帯は30日以内なら復元でき、アクティビティログで誰が何を変えたかがわかります。
開発者向け
- すべてのデータは、世帯というひとつの境界で確認されます
- 各自は自分が属する世帯だけを見られます
- 招待、ロール変更、オーナー譲渡のそれぞれにテストがあります
変更は再読み込みなしで全端末に表示
世帯の誰かが何かを変えると、ほかの人は開いているすべての端末ですぐに見られます。スリープから復帰したノートパソコンは、その間の変更を取り込みます。
開発者向け
- 標準の WebSocket で、変更ごとに通し番号が付きます
- 再接続した端末は見逃した分を取得します
ネットワークなしで開けるアプリ
Financy をスマホやパソコンにインストールすると、ネットワークがなくても開き、最後に見た内容を表示します。
開発者向け
- 各リストのローカルコピーを IndexedDB に持ち、べき等キー付きの書き込みキューを使います
- 競合ごとに「自分のバージョンを残す」か「サーバーのバージョンを使う」かを選択
データは自分のもの
オーナーはいつでも世帯をオープンな JSON ファイルに書き出し、あとで新しい世帯として取り込めます。取り込みで元の世帯が上書きされることはありません。
開発者向け
- 何かを書き込む前にファイル全体を確認し、1ステップで取り込みます
- 各レコードに新しい id が付くので、取り込みが既存のデータとぶつかることはありません
9言語に対応
アプリとこのサイトは英語、ロシア語、スペイン語、ドイツ語、ポルトガル語 (ブラジル)、アラビア語、フランス語、日本語、簡体中国語に対応しています。言語は各自がアプリで選ぶので、ひとつの世帯で複数の言語を使えます。
開発者向け
- 言語ごとにひとつのカタログがあり、足りないメッセージをすべて挙げるテストで確認します
- 数値と日付はブラウザ標準の Intl で表示します
- アラビア語のページは右から左に表示されます
あなたのサーバーで動く
Financy は、借りたサーバーでも自前のサーバーでも、Linux なら Docker Compose で動きます。セルフホストは AGPL‑3.0 ライセンスで無料で、世帯のデータはあなたのサーバーに残ります。
開発者向け
- 前段に証明書を自動取得するTraefik
- アプリと並んで動くPostgresとValkey
- VictoriaMetrics、VictoriaLogs、Grafana によるメトリクス、ログ、アラート
- 任意で有効にできる、データベースの毎日の暗号化バックアップと、文書化された復元手順
- Traefik
- Postgres
- Valkey
- VictoriaMetrics
- VictoriaLogs
- Grafana
- Alertmanager
- Garage file store
- restic backups
よくある質問
Financy でできますか?
共有ホスティングやサーバーレスで Financy を動かせますか?
いいえ。API が WebSocket 接続を開いたまま保ち、ワーカーがキューを処理するため、Financy は1台の Linux サーバー上で Docker Compose の常駐コンテナとして動きます。
Financy はどのデータベースを使いますか?
Postgres です。マイグレーション、クエリ、結合テストはこれを前提にしています。
スマホアプリはありますか?
ストアにはまだありません。今は Web アプリをブラウザからスマホやパソコンにインストールでき、オフラインでも開けます。