纯后端服务端渲染,零前端框架依赖,一条命令即可启动。
选择最少、依赖最轻的一套组合,装得快、跑得稳、好维护。
零原生依赖,纯 JS 单进程
node:sqlite 内置驱动,数据自持
服务端渲染,低带宽也流畅
fpk 应用包,桌面内嵌运行
成熟轻量的服务端渲染,零前端框架、零构建步骤。
报表在服务端生成内联 SVG,无需前端图表库,加载即所见。
一个进程、一个数据库文件,就能撑起完整的记账系统。
自托管不等于将就安全。认证、会话、权限、传输各环节都有对应防护。
密码用 scrypt 加盐哈希存储,比对采用恒定时间比较,抵御时序侧信道。
登录会话防固定(重新生成 ID),写操作校验 CSRF 令牌,Cookie SameSite=Lax。
按账号 + IP 双维度限流,连续失败达阈值即锁定,降低暴力破解风险。
只读 / 成员 / 管理员分层,写账本、管成员、进后台各自独立鉴权。
内置 CSP、X-Frame-Options、X-Content-Type 等响应头,为渲染层加一道纵深防御。
会话密钥缺省自动生成并持久化,升级走固定命令白名单,减少误操作面。
令牌鉴权的 REST 接口,脚本、自动化、第三方工具都能随手接入。
访问令牌在服务端仅以 SHA-256 摘要存储,明文不落库,可随时吊销。
从本地到 NAS 到容器,选你顺手的一种。
使用 Node 内置的 node:sqlite,无需安装任何原生依赖。数据与上传文件都在数据目录内,备份只需拷走一个 .db 文件与 uploads 目录。