מנהל תקציב בקוד פתוח ובאירוח עצמי למפתחים: להחזיק את הנתונים הפיננסיים שלכם בעצמכם

אם אתם מפתחים, כנראה שהנתונים הפיננסיים שלכם חיים על השרת של מישהו אחר. כל אפליקציית מעקב הוצאות או ניהול תקציב, Mint, YNAB, Copilot, Lunch Money, שומרת את הטרנזקציות, היתרות ודפוסי ההוצאה שלכם בענן שלה. אתם סומכים עליהן שלא ייפרצו, שלא ימכרו את הנתונים שלכם, ושלא ייסגרו פתאום, כמו Mint ב-2024.

יש אופציה טובה יותר אם Docker ו-Postgres לא מפחידים אתכם: לארח בעצמכם מנהל תקציב בקוד פתוח ולהשאיר הכול על התשתית שלכם.

מנהל הוצאות בקוד פתוח שאתם פורסים בעצמכם

Expense Budget Tracker הוא מערכת מלאה בקוד פתוח למעקב הוצאות ותקציב, שמבוססת על Postgres. משכפלים את המאגר, מריצים make up, ומקבלים אפליקציה עובדת ב-localhost:3000 עם מסד נתונים אמיתי שאתם שולטים בו.

בלי יצירת חשבון, בלי שהנתונים יעזבו את המכונה שלכם, ובלי דמי מנוי. רישיון MIT, אפשר לפצל את המאגר, לשנות, ולעשות מה שאתם רוצים.

טבלת תקציב שמציגה ביצועים בפועל מהעבר, מעקב לחודש הנוכחי ותחזית חודשית עתידית לפי קטגוריה

התשתית פשוטה למדי: Next.js עבור ממשק האינטרנט, Postgres 18 לאחסון, ותהליך רקע ב-TypeScript שמביא שערי חליפין יומיים. הכול רץ בקונטיינרי Docker דרך docker-compose.yml אחד.

אירוח עצמי עם Docker או פריסה ל-AWS

למאגר יש שתי אפשרויות פריסה מוכנות מהקופסה:

Docker Compose מקומי: ארבע פקודות ואתם באוויר:

git clone https://github.com/kirill-markin/expense-budget-tracker.git
cd expense-budget-tracker
open -a Docker   # start Docker if not running
make up          # Postgres + migrations + web + worker

פתחו את http://localhost:3000 והתחילו להזין טרנזקציות. נתוני Postgres נשמרים ב-Docker volume. זו כל ההגדרה.

AWS CDK: פריסת ייצור מלאה עם סקריפט אחד:

bash scripts/bootstrap.sh --region eu-central-1

זה מרים ECS Fargate, RDS Postgres, ALB עם HTTPS, Cognito לאימות, WAF, ניטור CloudWatch, גיבויים אוטומטיים ו-CI/CD דרך GitHub Actions. העלות המוערכת היא בערך 50 דולר לחודש, ואתם מקבלים תשתית ברמה ארגונית שאתם שולטים בה במלואה. מדריך הפריסה עובר על כל שלב, מפתיחת חשבון AWS ועד הגדרת Cloudflare DNS.

ומכיוון שזה בסך הכול Postgres ו-Docker, אפשר לארח גם בכל מקום אחר. DigitalOcean, Hetzner, Raspberry Pi בארון, קלאסטר Kubernetes של העבודה. אם המקום יודע להריץ Docker ו-Postgres, הוא יודע להריץ גם את זה.

SQL API לגישה פרוגרמטית

רוב אפליקציות התקציב נותנות לכם ממשק אינטרנט וזהו. כאן יש SQL Query API דרך HTTP, נקודת קצה של POST /v1/sql שמקבלת פקודות SQL גולמיות ומחזירה JSON.

curl -X POST https://api.your-domain.com/v1/sql \
  -H "Authorization: ApiKey ebta_a7Bk9mNp..." \
  -H "X-Workspace-Id: workspace-id" \
  -H "Content-Type: application/json" \
  -d '{"sql": "SELECT category, SUM(amount) AS total FROM ledger_entries WHERE kind = '\''spend'\'' AND ts >= DATE_TRUNC('\''month'\'', CURRENT_DATE) GROUP BY category ORDER BY total"}'

יוצרים מפתח API ב-Settings, בוחרים סביבת עבודה יעד, וכל לקוח HTTP יכול לשאול את הנתונים שלכם. זו נקודת קצה פשוטה של REST, בלי GraphQL, בלי שכבות הפשטה של ORM, ובלי SDK חדש שצריך ללמוד. פשוט SQL נכנס, JSON יוצא.

מודל האבטחה קשיח: מפתחות API נשמרים כ-hash של SHA-256, כך שהטקסט הגלוי לא נשמר; השאילתות מוגבלות ל-SELECT/INSERT/UPDATE/DELETE, בלי DDL; יש time-out של 30 שניות לכל statement, מגבלת 100 שורות לתגובה, והגבלת קצב של 10 בקשות לשנייה לכל מפתח. כל השאילתות רצות דרך Postgres Row Level Security, אותה שכבת בידוד שמשמשת גם את אפליקציית האינטרנט, כך שמפתח API יכול לגשת רק לנתונים בסביבת העבודה של הבעלים שלו.

נבנה לסוכני AI ול-LLMs

SQL API הוא מה שהופך אינטגרציה עם AI למעשית בפיננסים אישיים, כי סוכן ה-AI שלכם צריך גישה ישירה למסד הנתונים כדי לקרוא ולכתוב נתונים פיננסיים.

תחשבו איך אתם מתקשרים עם עוזרי AI היום. אתם מדביקים צילום מסך של דף חיוב לתוך Claude או ChatGPT, מבקשים ממנו לקטלג הוצאות, ומקבלים סיכום טקסט נחמד. ואז אתם מעתיקים ידנית את המספרים לכלי שבו אתם משתמשים. זה תהליך עבודה של 2023.

עם SQL API סוכן ה-AI שלכם לא רק מנתח את הנתונים. הוא כותב למסד הנתונים. תהליך העבודה הופך להיות:

  1. זורקים דף חיוב בנקאי, CSV, PDF או צילום מסך, לתוך סוכן AI
  2. הסוכן קורא כל טרנזקציה, מתאים קטגוריות לקטגוריות הקיימות שלכם, ומבצע INSERT ל-ledger_entries
  3. הסוכן בודק את יתרת החשבון מול המספר של הבנק
  4. אתם משקיעים 5 דקות בבדיקה במקום שעה בהקלדה

סכמת המסד בנויה בדיוק לזה. שבע טבלאות שטוחות, בלי JSON מקונן, ובלי צירופים מסובכים לפעולות בסיסיות. הטבלה ledger_entries מכוונת להיות פשוטה, שורה אחת לכל תנועת חשבון ושמות עמודות ברורים. LLM יכול לכתוב פקודות INSERT נכונות כבר בניסיון הראשון כי אין כאן במה להתבלבל.

ל-Expense Budget Tracker יש גם צ'אט AI מובנה בממשק האינטרנט. מחברים מפתח OpenAI או Anthropic, ומקבלים עוזר עם כלי query_database שיכול SELECT, INSERT, UPDATE ו-DELETE ישירות ב-Postgres שלכם. מעלים צילום מסך של אפליקציית הבנק, וה-AI מנתח כל טרנזקציה, מבקש מכם אישור, ומכניס אותן. הוא עובד לפי פרוטוקול קשיח: מגלה קודם את הקטגוריות הקיימות, בודק כפילויות, מאמת יתרות, וכותב רק אחרי אישור מפורש שלכם.

צ'אט ה-AI תומך במודלי Claude של Anthropic ובמודלי GPT של OpenAI. שניהם משתמשים באותו כלי מסד נתונים עם אותם כללי בטיחות, רשימת מילות מפתח מותרות, פסקי זמן ואכיפת RLS. אפשר גם להשתמש ב-SQL API עם כל סוכן חיצוני: Claude Code, OpenAI Codex, סקריפטים מותאמים או webhooks של Zapier. נותנים לסוכן את מפתח ה-ebt_ שלכם, מצביעים על נקודת הקצה שלכם, ויש לו גישת קריאה וכתיבה מלאה שמוגבלת לסביבת העבודה שלכם.

היכולות של מנהל התקציב

זה לא פנקס הוצאות מינימלי. כל היכולות שהייתם מצפים ממוצר מסחרי כבר שם:

  • רשת תקציב: שורות הן קטגוריות, עמודות הן חודשים. חודשים קודמים מראים ביצוע בפועל, חודשים עתידיים מראים תחזית. אפשר לתכנן 12 חודשים קדימה ולראות יתרות צפויות במבט אחד
  • תמיכה בריבוי מטבעות: כל טרנזקציה נשמרת במטבע המקורי שלה. שערי חליפין יומיים מ-ECB, CBR ו-NBS נמשכים אוטומטית. המרה למטבע הדיווח קורית בזמן השאילתה דרך joins ב-SQL, בלי עמודות מחושבות מראש ובלי אובדן דיוק
  • יתרות חשבון: מעקב אחר עו"ש, חיסכון, כרטיסי אשראי, מזומן והשקעות. לכל חשבון יתרה שוטפת שמחושבת מתוך פנקס התנועות
  • העברות: מזיזים כסף בין החשבונות שלכם, כולל בין מטבעות. שתי רשומות בפנקס התנועות עם אותו event_id, אחת שלילית ואחת חיובית
  • קטלוג טרנזקציות: קטגוריות חופשיות שאתם מגדירים. בלי טקסונומיה כפויה. ה-AI לומד את הקטגוריות שלכם מהנתונים הקיימים
  • ממשק בכמה שפות: אנגלית, ספרדית, סינית, ערבית, עברית, פרסית, אוקראינית ורוסית. עם תמיכה מלאה ב-RTL
  • בידוד בין סביבות עבודה: Postgres Row Level Security מבטיח שכל הנתונים של כל משתמש מבודדים לחלוטין. גם אם כולם חולקים אותו שרת, משתמשים לא יכולים לראות את הנתונים של אחרים
  • מצב הדגמה: כפתור בממשק שמחליף לנתוני דמו בזיכרון. לא צריך בכלל מסד נתונים כדי להתרשם מהממשק

סכמת Postgres שבנויה למפתחים

כל הסכמה נכנסת לראש:

  • ledger_entries: שורה אחת לכל תנועת חשבון
  • budget_lines: תוכנית תקציב append-only עם last-write-wins לכל תא
  • budget_comments: הערות על תאי תקציב
  • exchange_rates: שערי חליפין יומיים, גלובליים, בלי בקרת גישה
  • workspace_settings: מטבע דיווח לכל סביבת עבודה
  • account_metadata: סיווג נזילות
  • accounts: VIEW שמחושב מתוך ledger_entries

בלי ORM. בלי framework למיגרציות. רק קבצי SQL ממוספרים ב-db/migrations/ שמורצים על ידי סקריפט מעטפת. אפשר לקרוא כל migration, להבין כל טבלה, ולכתוב שאילתות ישירות מול הסכמה.

שינויי סכמה עוברים דרך migrations. תפקיד מסד הנתונים app, שבו משתמשת אפליקציית האינטרנט, מוגבל בהרשאות, הוא לא יכול ליצור טבלאות או לשנות סכמה. תפקיד tracker, שבו משתמש רק סקריפט המיגרציות, מטפל ב-DDL. זו בדיוק הפרדת האחריות שהייתם מצפים לה במערכת ייצור.

למה מפתחים מארחים בעצמם את הנתונים הפיננסיים שלהם

כבר יש לכם את הכישורים להחזיק את זה. אתם מבינים Docker, Postgres ו-AWS, או כל ענן אחר שאתם מעדיפים. השאלה היא רק אם היתרונות מצדיקים את המאמץ.

בעלות מלאה על הנתונים: הנתונים הפיננסיים האישיים שלכם אף פעם לא יוצאים מהתשתית שלכם. פריצות של צד שלישי לא משפיעות עליכם. אין מדיניות פרטיות לקרוא. אין אנליטיקות על הרגלי ההוצאה שלכם שנמכרות למפרסמים.

התאמה אישית: אפשר להוסיף עמודות לסכמה, לבנות דוחות משלכם עם SQL גולמי, ולחבר את המערכת לכלים שכבר יש לכם. רוצים בוט טלגרם שמדווח על הוצאות יומיות? כתבו סקריפט שקורא ל-SQL API. רוצים להציג נתונים ב-Grafana? חברו אותה ל-Postgres. הקוד שלכם לשנות.

בלי תלות חונקת בספק: אם אתם מפסיקים להשתמש בממשק האינטרנט, הנתונים שלכם עדיין נמצאים במסד Postgres סטנדרטי. אפשר לייצא עם pg_dump, לשאול מכל לקוח SQL, או להגר למשהו אחר לגמרי.

למידה: בסיס הקוד הוא דוגמה אמיתית ל-Next.js + Postgres + Docker + AWS CDK + Row Level Security + אימות באמצעות מפתח API + אינטגרציה עם כלי AI. אם אתם בונים SaaS, תמצאו כאן דפוסים ששווה לגנוב.

להתחיל עם מנהל התקציב בקוד פתוח

git clone https://github.com/kirill-markin/expense-budget-tracker.git
cd expense-budget-tracker
make up

פתחו את http://localhost:3000. הכניסו את הטרנזקציה הראשונה שלכם. הגדירו תקציב לחודש הנוכחי. אם אתם רוצים לבדוק בלי מסד נתונים, לחצו על כפתור Demo בכותרת כדי לעבור לנתוני דוגמה בזיכרון.

כשתהיו מוכנים לפרודקשן, עקבו אחרי מדריך הפריסה ל-AWS או התאימו את Docker Compose לתשתית שלכם.

המאגר נמצא ב-github.com/kirill-markin/expense-budget-tracker. תנו כוכב, פצלו אותו, או פשוט קראו את הקוד. הוא מופץ ברישיון MIT, תשתמשו בו איך שתרצו.

אם אתם כבר מנהלים שרתים ומסדי נתונים בעבודה, להריץ את אותו סטאק בשביל הפיננסים האישיים שלכם הוא צעד קטן, ובתמורה אתם מקבלים שליטה מלאה על הנתונים.

להמשך קריאה

איך להשתמש ב-AI כדי לעקוב אחר הוצאות ולנהל תקציב

מדריך מעשי לניהול כספים אישיים בעזרת AI. תנו לסוכן שלכם מפתח API, והוא יפענח דפי חשבון, יסווג עסקאות, יעקוב אחר הוצאות ויעדכן את התקציב דרך SQL API.

איך לעקוב אחר הוצאות ולנהל תקציב עם Claude Code

הפכו את Claude Code לעוזר הפיננסי האישי שלכם: תנו לו כתובת גילוי אחת, השלימו את תהליך ה-OTP באימייל, שמרו את ה-ApiKey שהוחזר, והוא יוכל לנתח תדפיסי בנק, לבדוק יתרות ולנהל את התקציב שלכם ישירות מהטרמינל.

הגדרת מעקב הוצאות עם AI עבור Claude Code, Codex ו-OpenClaw

איך מחברים את Claude Code, את Codex או את OpenClaw למנהל הוצאות בקוד פתוח. משתפים כתובת discovery אחת, מאשרים את קוד האימייל, שומרים את ה-ApiKey שהוחזר, ונותנים לסוכן להתחיל לעבוד.

חלופה ל-Mint ב-2026: אפליקציית תקציב בקוד פתוח שאפשר לארח בעצמכם

מחפשים חלופה ל-Mint ב-2026? ההבדל המעשי פשוט: רוב האפליקציות נותנות עדיפות לנוחות, בעוד שאפליקציית תקציב בקוד פתוח מעניקה לכם אירוח עצמי, אוטומציה עם AI, גישת SQL ושליטה מלאה בנתונים.