2026-01-18 06:13:10 +00:00
2026-01-18 06:13:10 +00:00

Here is dummy ai explanation for you my friend

Stack Backend: Node + Fastify + Prisma (Postgres) Frontend: React + Vite Scheduler: separate worker container (cron tasks) Reverse proxy (prod) Default: Nginx (skymoneybudget.com.conf) Alternative: Caddy (Caddyfile.prod) API is under /api path Web is static from /var/www/skymoney/dist HTTPS + HSTS already configured in the prod config Required env vars (production) DATABASE_URL JWT_SECRET (32+ chars) COOKIE_SECRET (32+ chars) CORS_ORIGIN (set to https://skymoneybudget.com) Optional: COOKIE_DOMAIN=skymoneybudget.com Cookies + Security HttpOnly + Secure in prod CSRF protection required for nonGET /auth/logout requires CSRF now Mutation endpoints ratelimited Cron jobs rollover worker (6 AM user time) autopayment worker (9 AM user time) Jobs run every 15 minutes and only process users whose local time has reached the threshold DB / Prisma Postgres required Prisma migrations must be applied before running The app blocks default secrets in prod Build + deploy web/ builds to web/dist API runs on port 8080 internally (exposed as 8081 in compose) Nginx proxies /api to 127.0.0.1:8081 Logs Prod logs are limited (PII reduced) Key logging: job success/failure counts Backups Scripts exist: backup.sh, restore.sh Restore requires admin DB privileges (created DB) Optional but recommended to test once

Description
No description provided
Readme 627 KiB
Languages
TypeScript 89.6%
CSS 6%
JavaScript 3.4%
Shell 0.6%
HTML 0.2%
Other 0.2%