Skip to content

SashaRyder/MonzoDash

Repository files navigation

MonzoDash Logo

MonzoDash is a dockerised web app for monitoring and managing your Monzo bank account.

V3 UPGRADE SWITCHES FROM MONGODB TO SQLITE3.

If you've been using this thusfar, please pin to v2 to continue using MongoDB. If you have the know how you can migrate data to SQLite, but i've found its easier just to start over

Features

  • Days to payday (with per day budget information)
  • Dedicated spending chart
  • Automatic payday pot dispersion
  • Transaction logging
  • None direct debit/standing order handling via pots

Planned feature list

  • Full transactional report
  • Budgetting tools (to be decided)

Technology In Use

Installation

You need to use docker, and I recommend using docker compose to spin up MonzoDash!

Example docker-compose.yml

version: "3.4"

services:
  monzodash:
    image: ghcr.io/sasharyder/monzodash:latest
    restart: unless-stopped
    links:
      - mongo
    environment:
      - TZ=Europe/London
      - MONGO_USERNAME=${MONGO_USERNAME}
      - MONGO_PASSWORD=${MONGO_PASSWORD}
      - MONGO_HOST=${MONGO_HOST}
      - MONZO_CLIENT_ID=${MONZO_CLIENT_ID}
      - MONZO_CLIENT_SECRET=${MONZO_CLIENT_SECRET}
      - MONZODASH_DOMAIN=${MONZODASH_DOMAIN}
      - MONZODASH_WEBHOOK_DOMAIN=${MONZODASH_WEBHOOK_DOMAIN} #Optional: will fall back to MONZODASH_DOMAIN if not added

  mongo:
    image: mongo
    restart: unless-stopped
    environment:
      MONGO_INITDB_ROOT_USERNAME: ${MONGO_USERNAME}
      MONGO_INITDB_ROOT_PASSWORD: ${MONGO_PASSWORD}
    volumes:
      - ./db:/data/db

Before doing this, create a .env file along side your docker-compose.yml file.

MONGO_USERNAME=monzodash
MONGO_PASSWORD=monzodash
MONGO_HOST=mongo
MONZO_CLIENT_ID=
MONZO_CLIENT_SECRET=
MONZODASH_DOMAIN=http://localhost
MONZODASH_WEBHOOK_DOMAIN=http://localhost #Optional: will fall back to MONZODASH_DOMAIN if not added
  • You can get MONZO_CLIENT_ID and MONZO_CLIENT_SECRET from https://developers.monzo.com/
  • Set MONZODASH_DOMAIN to https://YOUR_DOMAIN (Where you'll setup nginx ect to access the frontend, or access directly)
  • Set MONZO_WEBHOOK_URI to https://YOUR_WEBHOOK_DOMAIN (not required if they're the same domain.)

Usage

Once everything is setup and you've setup NGINX ect, just go to what you've set as MONZODASH_DOMAIN and you will be presented with a login screen!

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT