Sign inSign up

rodriguestiago0/actualtasks

By rodriguestiago0

•Updated about 1 hour ago

Image
1

10K+

rodriguestiago0/actualtasks repository overview

⁠Actual Tasks

This is a project that contains two tasks. You can trigger them manually or setup a docker container that will run them periodically.

⁠Tasks:

⁠Fix payee name based on a regex expression:

Input: Compra 1234 Continente Porto Contactless

Regex: Compra [0-9]{4}|Contactless|Compra:|[0-9]{4}-[0-9]{0,3}

Output: Continente Porto

This task will also remove extra space in the payee name. Input: Continente Porto

Output: Continente Porto

⁠Create a transaction that deducts your payment mortgage

To configure the correct interest rate is the % multiple by 1000

⁠Sync ghostfolio account with Actual Budget account

Create a new transaction to keep ghostfolio account balance and actual account balance in sync

⁠Hold income category transaction amount for next month

Sum all income transaction and hold it to next month budget

⁠Run bank sync

Run bank sync

⁠Setup

  • Clone this repo!
  • Install dependencies: npm ci
  • Copy .sample.env to .env and fill in the blanks

⁠Some things worth noting

This is a repository where I will be adding tasks to run periodically. For now both fixing payees name and calculate mortage are enabled by default.

⁠Commands

  Usage
    $ actual-tasks <command> <flags>

  Commands & Options
    config                        Print the location of actualplaid the config file
    fix-payees                    Will apply the regex and replace for empty string
    calculate-mortage             Will check the mortage balance and calculate the principal payment based on your montly payment
    ghostfolio-sync               Will check ghost balance account and actual account balances and create a transaction in actual to sync both balances.
    hold-amout-for-next-month     Sum all income transaction and hold it to next month budget 
    bank-sync                     Will run the bank sync


  Options for all commands
    --user, -u       Specify the user to load configs for
  Examples
    $ actual-tasks config
⁠Building and running your application

When you're ready, start your application by running: docker compose up --build.

Docker-comple.yaml example:

version: '3'
services:
  actual_server:
    container_name: actualtasks
    image: docker.io/rodriguestiago0/actualtasks
    environment:
      - PUID=1003
      - PGID=100
      - TZ=Europe/Lisbon
      - INTEREST_RATE=
      - MORTGAGE_PAYEE_ID=
      - MORTGAGE_ACCOUNT_ID=
      - MAIN_ACCOUNT_ID=
      - PAYEE_REGEX_MATCH=
      - ACTUAL_SERVER_URL= 
      - ACTUAL_SERVER_PASSWORD=
      - ACTUAL_SYNC_ID=
      - ENABLE_INTEREST_CALCULATION=true
      - ENABLE_PAYEE_RENAME=true
      - CRON_EXPRESSION= # default value is "0 */4 * * *"
      - GHOSTFOLIO_ACCOUNT=
      - GHOSTFOLIO_ACTUAL_ACCOUNT=
      - GHOSTFOLIO_ACTUAL_PAYEE_NAME=
      - ENABLE_GHOSTFOLIO_SYNC=true
      - GHOSTFOLIO_SERVER_URL=
      - GHOSTFOLIO_TOKEN=
      - ENABLE_HOLD_INCOME_FOR_NEXT_MONTH=true
      - ENABLE_BANK_SYNC=true
    restart: unless-stopped
docker run -d --name actualtasks \
    - e 'INTEREST_RATE=' \
    - e 'MORTGAGE_PAYEE_ID=' \
    - e 'MAIN_ACCOUNT_ID=' \
    - e 'MORTGAGE_ACCOUNT_ID=' \
    - e' ENABLE_INTEREST_CALCULATION'=true \
    - e 'ENABLE_PAYEE_RENAME'=true \
    - e 'PAYEE_REGEX_MATCH=' \
    - e 'ACTUAL_SERVER_URL= ' \
    - e 'ACTUAL_SERVER_PASSWORD=' \
    - e 'ACTUAL_SYNC_ID=' \
    - e 'CRON_EXPRESSION'= # default value is "0 */4 * '* *"' \
    - e 'GHOSTFOLIO_ACCOUNT'= \
    - e 'GHOSTFOLIO_ACTUAL_ACCOUNT'= \
    - e 'GHOSTFOLIO_ACTUAL_PAYEE_NAME'= \
    - e 'ENABLE_GHOSTFOLIO_SYNC'=true \
    - e 'GHOSTFOLIO_SERVER_URL'= \
    - e 'GHOSTFOLIO_TOKEN'= \
    - e 'ENABLE_HOLD_INCOME_FOR_NEXT_MONTH'=true \
    - e 'ENABLE_BANK_SYNC'=true \
  --restart=on-failure rodriguestiago0/actualtasks:latest

Tag summary

Content type

Image

Digest

sha256:d3e4aaeb7…

Size

100.7 MB

Last updated

about 1 hour ago

docker pull rodriguestiago0/actualtasks