Welcome to the Stonks Overwatch documentation! This guide will help you get started with using and developing Stonks Overwatch.
Stonks Overwatch is an open-source investment portfolio tracker that helps you manage and monitor your investments across multiple brokers. It runs entirely on your local machine, ensuring your financial data remains private and secure.
- π Privacy-First: All data stored locally on your computer
- π Multi-Broker: Track portfolios from DEGIRO, Bitvavo, and IBKR
- β‘ Real-Time: Live portfolio updates and analytics
- π― Comprehensive: Dividends, fees, deposits, and diversification tracking
- π Extensible: Plugin architecture for adding new brokers
- π» Cross-Platform: Web and native apps for all major platforms
- π Theme Support: Dark, light, and system-adaptive themes
Find what you need by task:
- Install Stonks Overwatch β Quickstart Guide
- Install desktop app β Application Guide
- Configure my broker β DEGIRO, Bitvavo, or IBKR
- Troubleshoot issues β FAQ or Troubleshooting
- Set up development environment β Developer Guide
- Understand the architecture β Architecture Overview
- Add a new broker β Broker Integration
- Work on authentication β Authentication Architecture
- Contribute code β Contributing Guidelines
- Understand the system β Architecture Overview
- See what's planned β Pending Tasks
- Learn about plugins β Plugin Architecture
Start here if you're new to Stonks Overwatch:
- Quickstart Guide - Install and run in 10 minutes
- Broker Setup - Configure your brokers
- FAQ - Common questions answered
Contributing to Stonks Overwatch? Check these guides:
- Developer Guide - Development environment setup
- Contributing Guidelines - How to contribute
- Broker Architecture - Adding new brokers
| Document | Description | Audience |
|---|---|---|
| Quickstart Guide | Install and run in 10 minutes | New users |
| Application Guide | Native desktop app installation and usage | End users |
| DEGIRO Setup | Complete DEGIRO broker configuration | DEGIRO users |
| Bitvavo Setup | Complete Bitvavo exchange configuration | Bitvavo users |
| IBKR Setup | Complete Interactive Brokers configuration | IBKR users |
| FAQ | Frequently asked questions | All users |
| Document | Description | Audience |
|---|---|---|
| Developer Guide | Development environment setup | Developers |
| Architecture Overview | System architecture and design patterns | Developers |
| Broker Integration | Step-by-step guide for adding brokers | Developers |
| Authentication Architecture | Authentication system details | Developers |
| Configuration Integration | Configuration system guide | Developers |
| User Interface | Frontend development guide | UI developers |
| Document | Description | Audience |
|---|---|---|
| Pending Tasks | Current improvements and technical debt | Maintainers |
| Plugin Architecture | Future plugin system proposal | Architects |
| Document | Description | Audience |
|---|---|---|
| Contributing Guidelines | How to contribute to the project | Contributors |
| Code of Conduct | Community guidelines | All contributors |
DEGIRO is the primary broker supported by Stonks Overwatch with complete feature support.
Features:
- Real-time portfolio data
- Transaction history
- Dividend tracking
- Fee analysis
- 2FA support (TOTP and In-App)
- Offline mode
Getting Started: Select DEGIRO from the broker selection screen, enter your credentials, and configure additional settings via the Settings page.
Bitvavo is a cryptocurrency exchange integration for tracking crypto assets.
Features:
- Crypto portfolio tracking
- Trade history
- Asset information
- Real-time prices
Getting Started: Select Bitvavo from the broker selection screen, enter your API credentials, and configure via the Settings page.
Interactive Brokers integration for international markets.
Features:
- International markets support
- Portfolio tracking
- Position management
Getting Started: Select IBKR from the broker selection screen, enter your OAuth credentials and certificates, and configure via the Settings page.
# Clone repository
git clone https://github.com/ctasada/stonks-overwatch.git
cd stonks-overwatch
# Install and setup
make start
# Run application
make runSee Quickstart Guide for detailed instructions.
- Launch the application
- Select your broker from the broker selection screen
- Enter your credentials
- Configure additional settings via the Settings page (sidebar menu)
See broker-specific documentation: DEGIRO, Bitvavo, or IBKR
make run demo=truePerfect for testing without real broker credentials.
# Clone and setup
make start
# Install pre-commit hooks
make pre-commit-install
# Run tests
make test
# Start development server
make run debug=trueSee Developer Guide for complete development setup.
- Review Broker Architecture
- Implement required service interfaces
- Register broker in
registry_setup.py - Add tests and documentation
- Submit pull request
Application won't start
- Check Python version (
python --versionshould be 3.13+) - Reinstall dependencies:
make start - Check logs in
data/logs/stonks-overwatch.log
Can't login to broker
- Verify credentials in the Settings page
- Check broker-specific documentation
- Enable debug mode:
make run debug=true
Port 8000 already in use
- Stop other services using port 8000
- Or change port in settings
Database errors
- Backup data:
cp data/db.sqlite3 data/db.sqlite3.backup - Reset database:
rm data/db.sqlite3 && make start
See FAQ for more troubleshooting help.
Stonks Overwatch uses a modern, modular architecture:
- Broker Services: Interface-based broker implementations
- Service Factory: Dependency injection and service creation
- Configuration System: Centralized configuration management
- Repository Layer: Data access and persistence
- Aggregator Services: Cross-broker data aggregation
- Factory Pattern: Service creation and dependency injection
- Interface-Based Design: Type-safe service contracts
- Repository Pattern: Data access abstraction
- Plugin Architecture: Extensible broker system
See Architecture Overview for detailed architecture documentation.
We welcome contributions! Here's how you can help:
- π Report Bugs - Open a bug report
- π‘ Suggest Features - Request a feature
- π¬ Ask Questions - Open a question
- π Improve Documentation - Submit documentation PRs
- π» Contribute Code - Check good first issues
- π¦ Add Brokers - Implement new broker integrations
- Read Contributing Guidelines
- Review Code of Conduct
- Check Developer Guide
- Fork and clone the repository
- Create a branch and make your changes
- Submit a pull request
Stonks Overwatch is a free, open-source project built and maintained by volunteers. Your support helps ensure the project continues to grow and improve.
Stonks Overwatch was created to solve a real problem: managing investments across multiple brokers while maintaining complete privacy. The project represents over a year of dedicated development work, including:
- Full broker integrations (DEGIRO, Bitvavo, IBKR)
- Native desktop applications for all platforms
- Comprehensive documentation and developer guides
- Privacy-first architecture with local data storage
Your sponsorship enables:
- More time dedicated to development and maintenance
- Faster broker integrations and feature development
- Better infrastructure (CI/CD, testing, code signing)
- Long-term sustainability of the project
GitHub Sponsors (Recommended): π Sponsor via GitHub Sponsors
Other Ways to Help:
- β Star the repository - Helps others discover the project
- π Report bugs - Open an issue
- π‘ Suggest features - Request a feature
- π Contribute code - See Contributing Guidelines
- π’ Share with others - Spread the word about Stonks Overwatch
For more details about the project's story and what sponsorship enables, see the README sponsorship section on GitHub.
- GitHub: github.com/ctasada/stonks-overwatch
- Issues: Report bugs and request features
- Discussions: Ask questions and share ideas
- Releases: Latest releases and changelogs
- π¬ Discussions - GitHub Discussions
- π§ Email - carlos.tasada@gmail.com
- π Issues - Issue Tracker
- π§ Architecture - Architecture Docs
- π¦ Broker Integration - Broker Architecture
- π§ͺ Testing - Run
make test
Stonks Overwatch is released under the MIT License. You're free to use, modify, and distribute this software for any purpose, including commercial applications.
make start # Initial setup
make run # Start application
make run demo=true # Run with demo data
make run debug=true # Debug mode
make test # Run tests
make lint-check # Check code style
make help # Show all commandsdata/db.sqlite3- Local database (includes encrypted credentials)data/logs/- Application logsMakefile- Build and run commandsconfig/config.json- Optional manual configuration (for developers)
- Quickstart - Get started in 10 minutes
- FAQ - Common questions
- Contributing - How to contribute
- DEGIRO Setup - Configure DEGIRO
If you can't find what you're looking for:
- Check the FAQ - Most common questions are answered there
- Search existing issues - Someone might have asked before
- Ask in Discussions - Community Q&A
- Open an issue - Report bugs or request features
- Email us - carlos.tasada@gmail.com for sensitive matters
Our documentation is actively maintained. Current status:
| Document | Status | Last Updated |
|---|---|---|
| Home | β Complete | November 2025 |
| Quickstart | β Complete | November 2025 |
| Architecture | β Complete | November 2025 |
| Broker Integration | β Complete | November 2025 |
| Authentication | β Complete | November 2025 |
| DEGIRO Setup | β Complete | November 2025 |
| Bitvavo Setup | β Complete | November 2025 |
| IBKR Setup | β Complete | November 2025 |
| Configuration | β Complete | November 2025 |
| Developer Guide | β Complete | November 2025 |
| Application Guide | β Complete | November 2025 |
| User Interface | β Complete | November 2025 |
| FAQ | β Complete | November 2025 |
| Pending Tasks | π In Progress | November 2025 |
| Plugin Architecture | π Proposed | November 2025 |
Legend: β Complete | π In Progress | π Proposed
Our documentation follows these principles:
- Clear and Concise: Easy to understand for the target audience
- Well-Organized: Logical structure with consistent formatting
- Up-to-Date: Synchronized with codebase changes
- Cross-Referenced: Links between related documents
- Example-Rich: Code examples and screenshots where helpful
Found a documentation issue?
- Open an issue to report errors
- Start a discussion to suggest improvements
- Submit a PR to contribute fixes
Thank you for using Stonks Overwatch! π
If you find this project useful, please β star it on GitHub!