Ghostfolio

Open Source Portfolio Tracker

Live Demo

Build Status License: AGPL v3

**Ghostfolio** is an open source portfolio tracker based on web technology. The software empowers busy folks to have a sharp look of their financial assets and to make solid, data-driven investment decisions by evaluating automated static portfolio analysis rules. ## Why Ghostfolio? Ghostfolio is for you if you are... - ๐Ÿ’ผ trading stocks, ETFs or cryptocurrencies on multiple platforms - ๐Ÿฆ pursuing a buy & hold strategy - ๐ŸŽฏ interested in getting insights of your portfolio composition - ๐Ÿ‘ป valuing privacy and data ownership - ๐Ÿง˜ into minimalism - ๐Ÿงบ caring about diversifying your financial resources - ๐Ÿ†“ interested in financial independence - ๐Ÿ™… saying no to spreadsheets in 2021 - ๐Ÿ˜Ž still reading this list ## Features - โœ… Create, update and delete transactions - โœ… Multi account management - โœ… Portfolio performance (`Today`, `YTD`, `1Y`, `5Y`, `Max`) - โœ… Various charts - โœ… Static analysis to identify potential risks in your portfolio - โœ… Dark Mode - โœ… Zen Mode - โœ… Mobile-first design ## Technology Stack Ghostfolio is a modern web application written in [TypeScript](https://www.typescriptlang.org) and organized as an [Nx](https://nx.dev) workspace. ### Backend The backend is based on [NestJS](https://nestjs.com) using [PostgreSQL](https://www.postgresql.org) as a database together with [Prisma](https://www.prisma.io) and [Redis](https://redis.io) for caching. ### Frontend The frontend is built with [Angular](https://angular.io) and uses [Angular Material](https://material.angular.io) with utility classes from [Bootstrap](https://getbootstrap.com). ## Getting Started ### Prerequisites - [Node.js](https://nodejs.org/en/download) (version 14+) - [Yarn](https://yarnpkg.com/en/docs/install) - [Docker](https://www.docker.com/products/docker-desktop) ### Setup 1. Run `yarn install` 1. Run `cd docker` 1. Run `docker compose up -d` to start [PostgreSQL](https://www.postgresql.org) and [Redis](https://redis.io) 1. Run `cd -` to go back to the project root directory 1. Run `yarn setup:database` to initialize the database schema and populate your database with (example) data 1. Start server and client (see [_Development_](#Development)) 1. Login as _Admin_ with the following _Security Token_: `ae76872ae8f3419c6d6f64bf51888ecbcc703927a342d815fafe486acdb938da07d0cf44fca211a0be74a423238f535362d390a41e81e633a9ce668a6e31cdf9` 1. Go to the _Admin Control Panel_ and press _Gather All Data_ to fetch historical data 1. Press _Sign out_ and check out the _Live Demo_ ## Development Please make sure you have completed the instructions from [_Setup_](#Setup) ### Start server
  1. Debug: Run yarn watch:server and click "Launch Program" in Visual Studio Code
  2. Serve: Run yarn start:server
### Start client Run `yarn start:client` ## Testing Run `yarn test` ## License ยฉ 2021 [Ghostfolio](https://ghostfol.io) Licensed under the [AGPLv3 License](https://www.gnu.org/licenses/agpl-3.0.html).