Firefly III Data Importer and cronjob for Firefly III (#570)

This commit is contained in:
YellowWords 2023-06-12 12:23:17 +00:00 committed by GitHub
parent 08e1fe60c0
commit 514c3a551d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 133 additions and 3 deletions

View File

@ -0,0 +1,36 @@
{
"$schema": "../schema.json",
"name": "Firefly III Data Importer",
"available": true,
"exposable": true,
"port": 8116,
"tipi_version": 2,
"version": "version-1.2.2",
"id": "firefly-iii-data-importer",
"categories": ["finance"],
"description": "",
"short_desc": "The Firefly III Data Importer can import data into Firefly III",
"author": "JC5",
"website": "https://www.firefly-iii.org/",
"source": "https://github.com/firefly-iii/data-importer",
"form_fields": [
{
"type": "text",
"label": "Firefly III URL",
"required": false,
"env_variable": "FIREFLY_III_URL"
},
{
"type": "number",
"label": "Firefly III Public Client ID",
"required": false,
"env_variable": "FIREFLY_III_CLIENT_ID"
},
{
"type": "text",
"label": "Firefly III OAuth Access Token",
"required": false,
"env_variable": "FIREFLY_III_ACCESS_TOKEN"
}
]
}

View File

@ -0,0 +1,47 @@
version: '3.9'
services:
ff-iii-importer:
image: fireflyiii/data-importer:version-1.2.2
container_name: firefly-iii-importer
restart: unless-stopped
ports:
- ${APP_PORT}:8080
environment:
- FIREFLY_III_URL=${FIREFLY_III_URL}
- FIREFLY_III_ACCESS_TOKEN=${FIREFLY_III_ACCESS_TOKEN}
- FIREFLY_III_CLIENT_ID=${FIREFLY_III_CLIENT_ID}
- TZ=${TZ}
- TRUSTED_PROXIES=**
- VERIFY_TLS_SECURITY=false
- APP_ENV=local
- APP_DEBUG=false
- LOG_CHANNEL=stack
- LOG_LEVEL=info
networks:
- tipi_main_network
labels:
# Main
traefik.enable: true
traefik.http.middlewares.ff-iii-importer-web-redirect.redirectscheme.scheme: https
traefik.http.services.ff-iii-importer.loadbalancer.server.port: 8080
# Web
traefik.http.routers.ff-iii-importer-insecure.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.ff-iii-importer-insecure.entrypoints: web
traefik.http.routers.ff-iii-importer-insecure.service: ff-iii-importer
traefik.http.routers.ff-iii-importer-insecure.middlewares: ff-iii-importer-web-redirect
# Websecure
traefik.http.routers.ff-iii-importer.rule: Host(`${APP_DOMAIN}`)
traefik.http.routers.ff-iii-importer.entrypoints: websecure
traefik.http.routers.ff-iii-importer.service: ff-iii-importer
traefik.http.routers.ff-iii-importer.tls.certresolver: myresolver
# Local domain
traefik.http.routers.ff-iii-importer-local-insecure.rule: Host(`firefly-iii-data-importer.${LOCAL_DOMAIN}`)
traefik.http.routers.ff-iii-importer-local-insecure.entrypoints: web
traefik.http.routers.ff-iii-importer-local-insecure.service: ff-iii-importer
traefik.http.routers.ff-iii-importer-local-insecure.middlewares: ff-iii-importer-web-redirect
# Local domain secure
traefik.http.routers.ff-iii-importer-local.rule: Host(`firefly-iii-data-importer.${LOCAL_DOMAIN}`)
traefik.http.routers.ff-iii-importer-local.entrypoints: websecure
traefik.http.routers.ff-iii-importer-local.service: ff-iii-importer
traefik.http.routers.ff-iii-importer-local.tls: true

View File

@ -0,0 +1,32 @@
# Firefly III Data Importer
"Firefly III" is a (self-hosted) manager for your personal finances. It can help you keep track of your expenses and income, so you can spend less and save more. The **data importer** is built to help you import transactions into Firefly III. It is separated from Firefly III for security and maintenance reasons.
The data importer does not connect to your bank directly. Instead, it uses [Nordigen](https://nordigen.com/en/coverage/) and [SaltEdge](https://www.saltedge.com/products/spectre/countries) to connect to over 6000 banks worldwide. These services are free for Firefly III users, but require registration. Keep in mind these services have their own privacy and data usage policies.
The data importer can import CSV files you've downloaded from your bank.
You can run the data importer once, for a bulk import. You can also run it regularly to keep up with new transactions.
Eager to get started? Go to [the documentation](https://docs.firefly-iii.org/data-importer)!
## Features
* Import from over 6000 banks
* Import over the command line for easy automation
* Import over an API for easy automation
* Use rules and data mapping for transaction clarity
Many more features are listed in the [documentation](https://docs.firefly-iii.org/data-importer).
## Who's it for?
This application is for people who want to track their finances, keep an eye on their money **without having to upload their financial records to the cloud**. You're a bit tech-savvy, you like open source software, and you don't mind tinkering with (self-hosted) servers.
## Need help?
If you need support using Firefly III or the associated tools, come find us!
- [GitHub Discussions for questions and support](https://github.com/firefly-iii/firefly-iii/discussions/)
- [Gitter.im for a good chat and a quick answer](https://gitter.im/firefly-iii/firefly-iii)
- [GitHub Issues for bugs and issues](https://github.com/firefly-iii/firefly-iii/issues)
- [Follow me around for news and updates on Mastodon](https://fosstodon.org/@ff3)

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View File

@ -4,8 +4,8 @@
"available": true,
"exposable": true,
"port": 8115,
"tipi_version": 4,
"version": "version-5.7.11",
"tipi_version": 5,
"version": "version-6.0.10",
"id": "firefly-iii",
"categories": ["finance"],
"description": "",
@ -33,6 +33,13 @@
"max": 32,
"label": "Database password",
"env_variable": "MYSQL_PASSWORD"
},
{
"type": "random",
"min": 32,
"max": 32,
"label": "Random key",
"env_variable": "STATIC_CRON_TOKEN"
}
]
}

View File

@ -2,7 +2,7 @@ version: "3.9"
services:
firefly-iii:
image: fireflyiii/core:version-5.7.11
image: fireflyiii/core:version-6.0.10
container_name: firefly-iii
restart: unless-stopped
volumes:
@ -16,6 +16,7 @@ services:
- APP_DEBUG=false
- SITE_OWNER=${EMAIL}
- APP_KEY=${APP_KEY}
- STATIC_CRON_TOKEN=${STATIC_CRON_TOKEN}
- TZ=${TZ}
- TRUSTED_PROXIES=**
@ -82,3 +83,10 @@ services:
- ${APP_DATA_DIR}/data/db:/var/lib/mysql
networks:
- tipi_main_network
firefly-iii-cron:
container_name: firefly-iii-cron
image: alpine
command: sh -c "echo \"0 3 * * * wget -qO- http://${APP_DOMAIN}/api/v1/cron/${STATIC_CRON_TOKEN}\" | crontab - && crond -f -L /dev/stdout"
networks:
- tipi_main_network