Server for [Dinary - your dinar diary](https://github.com/andgineer/dinary). Track expenses, scan receipts, analyze spending with AI
Project description
Dinary
Track expenses, scan receipts, analyze spending with AI
Documentation
Local development
Install uv, then:
uv sync
# Create .deploy/.env from the template (one-time, .deploy/ is gitignored)
cp -r .deploy.example .deploy
# First time — or whenever you want a clean slate:
# wipes data/dinary.db (and the WAL/SHM sidecars), runs schema migrations, seeds the
# hardcoded 3D taxonomy (groups / categories / events / tags), then
# starts uvicorn on http://127.0.0.1:8000 with auto-reload.
uv run inv dev --reset
# Subsequent runs — DB is preserved, migrations still apply on startup
# via the FastAPI lifespan, so editing a migration and restarting is
# enough (no separate ``inv migrate`` needed for the local DB):
uv run inv dev
inv dev disables Google-Sheets logging by default so test expenses
you create while debugging don't leak into the prod logging spreadsheet
(the env var from .deploy/.env is overridden just for this process).
Pass --sheet-logging if you specifically want to exercise the drain
loop end-to-end.
To point local dev at a copy of prod data instead of an empty DB:
uv run inv backup # snapshot prod into ~/Library/dinary/<ts>/
cp ~/Library/dinary/<ts>/data/dinary.db data/
uv run inv dev # NOT --reset; keep the snapshot
Credentials are read from ~/.config/gspread/service_account.json (standard gspread location).
Don't have a service account key yet?
See Google Sheets Setup.
Run tests
inv test
Pre-commit hooks
Use pre-commit for code quality:
pre-commit install
Scripts
Install invoke preferably with uv tool:
uv tool install invoke
For a list of available scripts run:
invoke --list
Deploy to Oracle Cloud
Configure .deploy/.env (see .deploy.example/.env), then:
inv setup # one-time: install deps, clone, create systemd services, upload creds
inv deploy # pull latest code and restart
inv status # check service status
inv logs # tail server logs
See Oracle Cloud deployment guide for details.
Reports
Created with cookiecutter using template
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dinary-0.4.0.tar.gz.
File metadata
- Download URL: dinary-0.4.0.tar.gz
- Upload date:
- Size: 887.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e709b1da4ec00ffcf5e802591b0a7aaa92092b00a9744c97065e1f0b5ae5cc5a
|
|
| MD5 |
360a5b1162f3d1a06563834d1790e7a8
|
|
| BLAKE2b-256 |
27574d0825aceb4a4e574f9ec5daf412b271d3fd3604570ecaf82f11c75915fe
|
File details
Details for the file dinary-0.4.0-py3-none-any.whl.
File metadata
- Download URL: dinary-0.4.0-py3-none-any.whl
- Upload date:
- Size: 170.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d6f4cf8a2ebdb99bb22abec56ce7c01130c7af7f8495e8e0538e86d73f8bdfc3
|
|
| MD5 |
c25866beefa0919a683d114378404c15
|
|
| BLAKE2b-256 |
a9b431104c9010f8c01c2718a737f077e71be99db7778b9fb4af0c35c8498522
|