Documentation

What Fortuna is, how it is put together, how to install it, how to use it, and its API.

Fortuna is a personal finance system made of two repositories: the Fortuna API, which owns the domain, the data and the integrations, and Fortuna UI, a Flutter application that reads and writes everything through that API. The API also carries a native core, written in Rust, that the desktop app can run in process for its offline mode. This documentation covers all of it. It explains what Fortuna is, the concepts you need to read it, how it is built, how to run it, how to use the interface, and how to call the API.

SectionWhat it covers
OverviewWhat Fortuna does and does not do, who it is for, and where the project stands.
ConceptsThe ideas behind the system: holdings, money movement, installments, recurring commitments, reconciliation, currencies, imports, exports and data rights, with the business rules that govern them.
ArchitectureHow the API, the native core and the UI are built, and how they talk to each other.
InstallationWhat you need and the commands to build and run the API and the UI.
User guideHow to use the interface, use case by use case.
APIA map of the API’s endpoints and a pointer to its specification.
OperationsEnvironments, configuration in operation, health checks, logging, metrics, and the platform requirements.
DevelopmentHow the project is built, tested and delivered.
RepositoriesThe repositories, their releases and their specification documents.

If you are new, read the Overview first, then Concepts. The About page says why the project exists.


Overview

What Fortuna does and does not do, who it is for, and where the project stands.

Concepts

The ideas behind Fortuna, with the business rules a user needs to know.

Architecture

How Fortuna is put together: the API, the native core and the UI, the two ways to deploy it, and how an import, a sign-in and a chart drill-down travel through them.

Installation

What exists to download today (nothing yet), and how to run the Fortuna API, build the native core, run the UI on each target, and connect Fortuna to Heimdall.

User guide

How to use the Fortuna interface, one use case at a time: what each screen does, what it asks for, and which parts are not built yet.

API reference

What the Fortuna API accepts and returns: how callers authenticate, who may call what, the response envelope and error statuses, paging, filtering and sorting, rate limiting, and the 31 endpoint groups.

Operations

Running a Fortuna instance: the four environments, configuration, the reverse proxy, health checks, logging, metrics, what holds state, and the platform requirements (IR-01 and onwards) both repositories are held to.

Development

How Fortuna is built and delivered: one use case per branch, issue and pull request, the approval gates and the Definition of Done, the branching and release model, the testing standards, and how to run the tests in each repository.

Repositories

The repositories behind Fortuna, their releases, every specification document each code repository holds, and where to follow the work.