michaelswanson e83fd394b5 Add README
2026-06-25 20:43:20 +00:00
2026-06-25 19:58:40 +00:00
2026-06-25 19:58:40 +00:00
2026-06-25 19:58:40 +00:00
2026-06-25 19:58:40 +00:00
2026-06-25 19:58:40 +00:00
2026-06-25 19:58:40 +00:00
2026-06-25 19:58:40 +00:00
2026-06-25 20:43:20 +00:00

Enkelbudget

Enkelbudget är en självhållen budgetapp för månadsbudget, återkommande kostnader, lån, banktransaktioner och privatekonomisk överblick. Appen är byggd för svensk användning, med svensk valutaformatering, PWA-stöd och möjlighet att köra allt i en Docker-container.

Funktioner

  • Månadsbudget med inkomster, räkningar och kategorier
  • Återkommande abonnemang och fasta kostnader
  • Låneöversikt med betalningar och saldo
  • Transaktionsvy med konton, saldo, kategorisering och summeringar
  • Enable Banking-integration för bankdata
  • OIDC/Pocket ID-inloggning med stöd för grupper, e-post och domänfilter
  • AI-stöd via Ollama för budget- och transaktionshjälp
  • Ntfy-notiser för nya transaktioner
  • Installerbar PWA med offline-/cache-stöd
  • JSON-baserad datalagring via lowdb

Teknik

Klienten är byggd med React, Vite, Tailwind CSS och vite-plugin-pwa. Servern är en Express-app som använder lowdb för lokal JSON-lagring.

client/   React/Vite-klient
server/   Express API, auth, bankintegration och datalagring

Kom igång med Docker Compose

  1. Kopiera exempelmiljön:
cp .env.example .env
  1. Uppdatera .env med dina värden, särskilt om du vill använda OIDC/Pocket ID:
APP_BASE_URL=https://eb.example.com
AUTH_SESSION_SECRET=byt-till-en-lang-slumpad-hemlighet
SETUP_TOKEN=byt-till-en-lang-slumpad-token
  1. Starta appen:
docker compose up -d --build
  1. Öppna appen:
http://localhost:7842

Docker Compose monterar appens data i volymen data, och servern använder som standard:

/app/data/budget.json

Lokal utveckling

Installera beroenden separat för server och klient:

cd server
npm install
cd client
npm install --include=optional

Starta servern:

cd server
npm run dev

Starta klienten i en annan terminal:

cd client
npm run dev

Vite proxyar /api till servern på http://localhost:7843 i utvecklingsläge.

Bygga klienten

cd client
npm run build

Bygget genererar PWA-ikoner från client/public/icon.svg och skriver produktionsfiler till client/dist.

Miljövariabler

Variabel Beskrivning
PORT Serverport. Docker använder 7842.
DB_PATH Sökväg till JSON-databasen.
APP_BASE_URL Publik bas-URL för CORS och callback-flöden.
AUTH_SESSION_SECRET Hemlighet för auth-sessioner. Bör vara lång och slumpad.
SETUP_TOKEN Engångs-/admin-token för initial auth-konfiguration när auth inte är aktiverat.
OIDC_ISSUER OIDC issuer, exempelvis Pocket ID.
OIDC_CLIENT_ID OIDC client ID.
OIDC_CLIENT_SECRET OIDC client secret.
OIDC_REDIRECT_URI Callback-URL, exempelvis https://eb.example.com/auth/callback.
OIDC_SCOPE OIDC scopes. Standard: openid profile email groups.
OIDC_ALLOWED_GROUPS Kommaseparerad allowlist för grupper.
OIDC_ALLOWED_EMAILS Kommaseparerad allowlist för e-postadresser.
OIDC_ALLOWED_DOMAINS Kommaseparerad allowlist för e-postdomäner.

Se .env.example för ett komplett exempel.

Data och säkerhet

Appdata lagras i server/data/budget.json vid lokal körning, eller i Docker-volymen data vid Compose-körning. Den filen kan innehålla privat budgetdata, auth-inställningar, sessionsdata, bankmetadata och tokens.

Därför ignoreras följande av git:

  • server/data/
  • .env och lokala miljöfiler
  • node_modules/
  • client/dist/
  • lokal editor-/agentkonfiguration

Checka inte in riktiga secrets, banknycklar eller produktionsdata.

Enable Banking

Enable Banking-konfiguration görs i appens inställningar. För produktion behöver du normalt:

  • Application ID
  • Private key PEM
  • Redirect URL
  • Val av land, bank och konton

Callback-route för bankflödet är:

/enablebanking/auth_callback

OIDC / Pocket ID

OIDC kan konfigureras via miljövariabler eller via appens auth-inställningar. När auth är avstängt krävs SETUP_TOKEN för att ändra auth-konfigurationen via API, så en publik instans inte kan tas över av första besökaren.

Vanlig callback-route:

/auth/callback

AI via Ollama

AI-funktionerna använder Ollama och kan aktiveras i appens inställningar. Standardvärdet för Ollama är:

http://host.docker.internal:11434

Du kan välja textmodell, visionmodell och om budget- eller bankkontext ska skickas med i AI-frågor.

Notiser

Appen har stöd för ntfy-notiser om nya transaktioner. Konfigurationen finns i appinställningarna och kan användas med egen ntfy-server eller https://ntfy.sh.

Underhåll

Praktiska kommandon:

# Visa containerloggar
docker compose logs -f app

# Bygg om och starta om
docker compose up -d --build

# Stoppa appen
docker compose down

För npm-säkerhetskontroll:

cd client
npm audit

cd ../server
npm audit

Repository

Remote är tänkt att ligga på:

https://git.bitli.se/siliconsolder/enkelbudget.git
S
Description
Personal budgeting app with bank integration support
Readme 248 KiB
Languages
JavaScript 99.2%
HTML 0.3%
CSS 0.3%
Dockerfile 0.2%