83 lines
2.8 KiB
Markdown
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.* |