Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

peshay/portfolixir

Open more actions menu

Portfolixir

Portfolixir logo

CI codecov Elixir License

Support via bunq

What is Portfolixir

Portfolixir is a self-hosted Elixir/Phoenix application for local portfolio tracking. It helps you keep securities, portfolios, depots, cash accounts, manual buy/sell transactions, holdings, and quote history in one auditable local app.

The project focuses on transparent portfolio records and read-only inspection. It is not a broker, bank, trading, payment, order, or rebalance platform. Supported functions are also available through a local JSON API and an MCP companion that wraps that API.

What works today

  • Create securities, one portfolio, and linked cash/depot accounts.
  • Record manual buy and sell transactions.
  • Review derived holdings and stored quote history.
  • Open a security detail chart from local quote history.
  • Use /api/v1 and the MCP companion for the same supported local actions.

Quick start

Prerequisites

  • Elixir and Erlang compatible with mix.exs
  • PostgreSQL
  • optional: Docker and Docker Compose

Run with Docker Compose

docker compose up --build

Open the app and MCP companion at:

http://localhost:4000
http://127.0.0.1:4001/mcp

Stop and remove local volumes:

docker compose down -v

Run from source

mix deps.get
mix ecto.setup
mix phx.server

Open the Phoenix URL printed by the server, usually http://localhost:4000.

API and MCP

Set a local API token before using /api/v1:

export PORTFOLIXIR_API_TOKEN=replace-me

Run the MCP companion separately when you do not use Docker Compose:

npm install --prefix mcp-server
npm run build --prefix mcp-server
PORTFOLIXIR_API_BASE_URL=http://127.0.0.1:4000 \
PORTFOLIXIR_API_TOKEN=replace-me \
npm start --prefix mcp-server

Development

Common local checks:

mix format
mix test
pre-commit run --all-files
npm test --prefix mcp-server
npm run build --prefix mcp-server

Install pre-commit once per checkout:

pre-commit install --install-hooks

Documentation

Safety

Use synthetic data for development and tests. Do not commit real account numbers, broker statements, wallet addresses, personal names, or private portfolio files.

Tests must not make external network calls.

Governance

Support

If this app is useful to you, you can support its ongoing maintenance via bunq. Support is voluntary and appreciated, but does not create any entitlement to support, features, consulting, an SLA, or invoice-based work.

License

This project is licensed under the MIT License. See LICENSE.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.