Daboxi is a modern personal finance web application designed for simple, fast tracking of expenses, incomes, refunds, and monthly statistics, with Open Banking (EnableBanking) integration.
- Framework: Next.js 16+ (App Router, Turbopack)
- Language: TypeScript / React 18
- Backend / Database: PocketBase (SQLite, embedded Go server)
- UI Components: WebAwesome
- Styling: Modular CSS (BEM / ITCSS naming conventions)
- Integrations: Open Banking via EnableBanking API, SheetJS (Excel export), PapaParse (CSV import)
- Node.js (v20+ recommended)
- NPM (bundled with Node.js)
- Docker & Docker Compose (optional, for containerized run/deployment)
-
Clone the repository and install dependencies:
git clone <repo-url> cd daboxi npm install
-
Configure environment variables:
cp .env.example .env
Press F5 (ou aceda a Run & Debug npm run dev).
(Se quiser iniciar o servidor PocketBase em simultâneo via VS Code, selecione a configuração Daboxi + PocketBase no menu de debug).
Run both services concurrently in a single command:
npm run dev:all-
Start PocketBase:
npm run pb:serve
(Admin Dashboard accessible at
http://127.0.0.1:8090/_/) -
Start Next.js:
npm run dev
(Application accessible at
http://localhost:3000)
| Variable | Description | Local Value | Docker / Production Value |
|---|---|---|---|
POCKETBASE_URL |
Server-side PocketBase URL | http://127.0.0.1:8090 |
http://pocketbase:8090 |
NEXT_PUBLIC_APP_URL |
App public base URL | http://localhost:3000 |
https://yourdomain.com |
ENABLEBANKING_APP_ID |
EnableBanking Application ID | (optional) | (optional) |
ENABLEBANKING_PRIVATE_KEY |
EnableBanking RS256 Private Key | (optional) | (optional) |
The project includes a multi-service docker-compose.yml for deployment on Coolify or standard Docker hosts.
# Build and start services in background
docker compose up -d
# View logs
docker compose logs -f
# Stop services
docker compose downpocketbase: Runs PocketBase on port8090with persistent volumepocketbase_data:/pb_data.app: Runs the standalone Next.js production build on port3000.
| Script | Description |
|---|---|
npm run dev |
Start Next.js with Turbopack |
npm run dev:all |
Start both PocketBase and Next.js concurrently |
npm run pb:serve |
Start local PocketBase server using ./pb_data |
npm run build |
Build Next.js production application |
npm run start |
Start Next.js production server |
npm run lint |
Run ESLint checks |
npm run migrate:appwrite |
Run backup extraction and import into PocketBase |
This project is licensed under the Daboxi Source-Available License (Non-Commercial & Share-Alike):
- Non-Commercial Use: Free to inspect, use, and modify for personal, educational, and non-profit purposes.
- Commercial Use: Exclusively reserved for the author (Emanuel Saramago). Commercial use, hosting as a paid service, or distribution requires prior written authorization.
- Share-Alike / Mandatory Publication: Any modifications or derivative works made available to third parties must have their full source code published under the exact same license terms.
See the LICENSE file for complete terms and details.