LibreFolio is a self-hosted financial portfolio tracker for managing investments, cash accounts, and loans across multiple brokers.
The full documentation is available at: https://alfystar.github.io/LibreFolio/
It includes:
- 🚀 Getting Started: Installation and setup guides.
- 📖 User Manual: How to use the application.
- 👨💻 Developer Manual: Architecture, API reference, and contribution guides.
- 🧮 Financial Math: Explanation of calculations used.
- Backend: Python (FastAPI + SQLModel + SQLite + Alembic)
- Async-first: High-performance concurrent request handling (5-10x throughput)
- Dual Engine Pattern: Sync for migrations/scripts, async for API
- Frontend: SvelteKit (TypeScript + TailwindCSS)
- Deployment: Docker Compose
- Multi-Broker Support: Import data from Interactive Brokers, Degiro, eToro, Trading212, and many others via CSV.
- Asset Tracking: Track Stocks, ETFs, Cryptocurrencies, and P2P Loans.
- Automated Pricing: Fetch prices from Yahoo Finance, JustETF, or custom web scrapers.
- FX Handling: Automatic currency conversion using official rates (ECB, FED, etc.).
- Privacy First: Your data stays on your server. No third-party cloud storage.
- Python 3.11+
- Node.js 18+
- Pipenv
- Docker (optional)
- Clone the repository:
git clone https://github.com/Alfystar/LibreFolio.git
cd LibreFolio- Install all dependencies:
./dev.sh install- Create environment file:
cp .env.example .env- Run database migrations:
./dev.sh db:upgrade- Start the development server:
./dev.sh server- Access the application:
- Dashboard: http://localhost:8000
- API Docs: http://localhost:8000/api/v1/docs
The ./dev.sh script is your main tool for development:
./dev.sh install- Install dependencies./dev.sh server- Start backend + frontend build./dev.sh test all- Run all tests./dev.sh db:migrate "msg"- Create migration./dev.sh info:mk serve- Serve documentation locally
- Code: All code, comments, and docs are in English.
- UI: Frontend supports English, Italian, French, and Spanish.
Contributions are welcome! Please read the Developer Manual before starting.
- Start with tests: Run
./dev.sh test allto understand the project. - Read the guides: Check the "Developer Manual" section in the documentation.
- Code Standards:
- Use type hints everywhere.
- Follow async/await pattern.
- Write tests for new features.
LibreFolio is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0).
This means:
- ✅ You can use, modify, and distribute this software freely
- ✅ You can use it for commercial purposes
⚠️ If you modify and distribute (including over a network), you must release your source code under AGPL-3.0⚠️ You must include the original copyright and license notices
See the LICENSE file for the full license text.
GitHub Repository: https://github.com/Alfystar/LibreFolio