Files
2026-04-24 20:30:35 +02:00

83 lines
2.8 KiB
Markdown

# Actualize 💸
**Actualize** is a lightweight Python synchronization bridge that connects your bank accounts (via [Enable Banking](https://enablebanking.com/)) directly to your [Actual Budget](https://actualbudget.org/) instance.
Automate your financial tracking without sacrificing privacy. Actualize pulls your real-time bank data and pushes it directly into Actual Budget, eliminating manual CSV exports forever.
## ✨ Features
- **Python-Powered:** Built with `actualpy` and `enablebanking_sdk` for maximum flexibility.
- **Automated Sync:** Fetch transactions from hundreds of banks via Enable Banking's Open Banking API.
- **Privacy First:** Local-first architecture. Your credentials and transaction data stay on your machine.
- **Smart Deduplication:** Uses Actual Budget's internal reconciliation logic to prevent double entries.
- **Headless & Scalable:** Perfect for running on a Raspberry Pi, home server, or as a scheduled GitHub Action.
## 🚀 Getting Started
### Prerequisites
- **Python 3.9+**
- An [Enable Banking](https://enablebanking.com/) developer account and API keys.
- A running instance of [Actual Budget](https://actualbudget.org/).
### Installation
1. **Clone the repository:**
```bash
git clone https://github.com/yourusername/actualize.git
cd actualize
```
2. **Create a virtual environment & install dependencies:**
```bash
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install actualpy enablebanking_sdk python-dotenv fastapi "uvicorn[standard]"
```
3. **Configure environment variables:**
Create a `.env` file in the root directory:
```env
# Enable Banking Credentials
EB_CLIENT_ID=your_client_id
EB_CLIENT_SECRET=your_client_secret
# Actual Budget Configuration
ACTUAL_SERVER_URL=https://your-actual-server.com
ACTUAL_PASSWORD=your_server_password
ACTUAL_BUDGET_ID=your_sync_id
ACTUAL_ENCRYPTION_PASSWORD=your_optional_encryption_pwd
```
## 🛠 Usage
1. **Authentication:**
Run the initial auth script to link your bank accounts and generate tokens.
```bash
python authenticate.py
```
2. **Sync:**
Run the sync script to pull transactions and push them to Actual.
```bash
python sync.py
```
3. **API Mode:**
Start the FastAPI server.
```bash
uvicorn src.main:app --reload
```
## 📦 Tech Stack
- **Actual Budget API:** [actualpy](https://github.com/bvanelli/actualpy)
- **Bank Integration:** [enablebanking-python-sdk](https://github.com/nocfo/enablebanking-python-sdk)
- **Environment Management:** [python-dotenv](https://github.com/theskumar/python-dotenv)
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
---
*Disclaimer: This project is not officially affiliated with Actual Budget or Enable Banking.*