Python webserver to connect your UP accounts with Firefly III. The inspiration came from a different project by Gustav de Prez. This project takes a different approach with the code written from scratch, and adds some useful features.
Expect the occasional bug at this stage. The webserver can be deployed in a Docker container. Pull requests welcome!
- Listens for new activity on your Up accounts
- Adds, deletes, and settles transactions
- Support for round-ups, transfers and quick saves.
- Supports Up categories
- Supports foreign currencies
- Accounts and balances automatically added to Firefly on first run
- Automatically creates an Up webhook on your specified endpoint if none exists
- Up transaction IDs are save as tags in Firefly
- Up account IDs are saved as account numbers in Firefly
- If you rename an Up account, you will need to restart the server for the change to be reflected in Firefly.
- Foreign currency amounts are appended to the transaction description
- Does not import your past account activity.
- A running instance of Firefly III
- Firefly API token
- Up API token
- Endpoint for your webhook
For easy deployment, the webserver runs in a Docker container. To get set up, clone the repository and build the image.
git clone https://github.com/lo-decibel/FireUp
cd FireUp
docker build -t fireup .
In docker-compose.env
, edit following environment variables.
WEBHOOK_URL=https://webhook.example
FIREFLY_URL=https://firefly.example
UP_TOKEN=up:yeah:ABCDEF123456
FIREFLY_TOKEN=eyABCDEF123456
WEBSERVER_PORT=5001
Then, fire up (pun intended) the container with
docker compose up -d
It's also possible to run the webserver without Docker. You will need a working install of Python, and you'll need to install the following packages with
pip install emoji requests flask waitress python-dotenv[cli]
Load the environment variables and run the script with
dotenv run python -u ./app/main.py &
LICENSE: CC BY-NC-SA