2
This commit is contained in:
152
RUN_APP.md
Normal file
152
RUN_APP.md
Normal file
@@ -0,0 +1,152 @@
|
|||||||
|
# 🚀 How to Run the Firefly III Analytics App
|
||||||
|
|
||||||
|
## Quick Start (3 Steps)
|
||||||
|
|
||||||
|
### Step 1: Set Up Environment Variables
|
||||||
|
Create/edit `.env` file in the project root:
|
||||||
|
```
|
||||||
|
FIREFLY_URL=https://firefly.scsimedia.duckdns.org
|
||||||
|
FIREFLY_API_TOKEN=your_api_token_from_firefly_iii
|
||||||
|
DATABASE_URL=sqlite:///./data/app.db
|
||||||
|
SYNC_INTERVAL_MINUTES=30
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 2: Start Backend (Terminal 1)
|
||||||
|
```bash
|
||||||
|
cd backend
|
||||||
|
python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
|
||||||
|
```
|
||||||
|
|
||||||
|
You should see:
|
||||||
|
```
|
||||||
|
INFO: Uvicorn running on http://0.0.0.0:8000
|
||||||
|
INFO: Application startup complete
|
||||||
|
```
|
||||||
|
|
||||||
|
### Step 3: Start Frontend (Terminal 2)
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
Browser will auto-open at `http://localhost:3000`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ Verify It's Running
|
||||||
|
|
||||||
|
- **Backend API**: http://localhost:8000
|
||||||
|
- **Health check**: http://localhost:8000/health (should return `{"status": "healthy"}`)
|
||||||
|
- **Frontend**: http://localhost:3000
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🐳 Option 2: Using Docker Compose (Easier)
|
||||||
|
|
||||||
|
If you have Docker installed:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# From project root
|
||||||
|
docker-compose up --build
|
||||||
|
```
|
||||||
|
|
||||||
|
This starts:
|
||||||
|
- Backend on http://localhost:8000
|
||||||
|
- Frontend on http://localhost:3000
|
||||||
|
- SQLite database at `./data/app.db`
|
||||||
|
|
||||||
|
Stop with: `Ctrl+C`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔧 Troubleshooting
|
||||||
|
|
||||||
|
### Backend won't start - "ModuleNotFoundError: No module named 'app'"
|
||||||
|
```bash
|
||||||
|
cd backend
|
||||||
|
python -m uvicorn app.main:app --reload
|
||||||
|
```
|
||||||
|
Make sure you're IN the backend folder when running the command.
|
||||||
|
|
||||||
|
### "Address already in use" on port 8000
|
||||||
|
Change the port:
|
||||||
|
```bash
|
||||||
|
python -m uvicorn app.main:app --reload --port 8001
|
||||||
|
```
|
||||||
|
|
||||||
|
### Frontend won't start - "npm not found"
|
||||||
|
Install Node.js from https://nodejs.org (includes npm)
|
||||||
|
|
||||||
|
### "FIREFLY_API_TOKEN not set"
|
||||||
|
Make sure `.env` file exists in the project root with your token.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 📋 What Happens When You Start
|
||||||
|
|
||||||
|
1. **Backend initializes**:
|
||||||
|
- Connects to SQLite database
|
||||||
|
- Creates tables if needed
|
||||||
|
- Starts sync scheduler (runs every 30 min)
|
||||||
|
- Starts FastAPI server
|
||||||
|
|
||||||
|
2. **Frontend starts**:
|
||||||
|
- React dev server starts
|
||||||
|
- Browser opens to http://localhost:3000
|
||||||
|
- Dashboard loads with data from backend
|
||||||
|
|
||||||
|
3. **Data Sync**:
|
||||||
|
- Background job fetches from Firefly III every 30 minutes
|
||||||
|
- Data cached locally in SQLite
|
||||||
|
- API endpoints return cached data
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🎯 Default Ports
|
||||||
|
|
||||||
|
| Service | Port | URL |
|
||||||
|
|---------|------|-----|
|
||||||
|
| Backend | 8000 | http://localhost:8000 |
|
||||||
|
| Frontend | 3000 | http://localhost:3000 |
|
||||||
|
| Database | - | ./data/app.db (SQLite file) |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 💡 Development Tips
|
||||||
|
|
||||||
|
### Run Backend with Hot Reload
|
||||||
|
```bash
|
||||||
|
cd backend
|
||||||
|
python -m uvicorn app.main:app --reload
|
||||||
|
```
|
||||||
|
|
||||||
|
### Run Frontend with Hot Reload
|
||||||
|
```bash
|
||||||
|
cd frontend
|
||||||
|
npm start
|
||||||
|
```
|
||||||
|
|
||||||
|
### View API Documentation
|
||||||
|
Open: http://localhost:8000/docs (Swagger UI)
|
||||||
|
|
||||||
|
### Clear Database and Restart
|
||||||
|
```bash
|
||||||
|
# Stop the servers (Ctrl+C)
|
||||||
|
rm data/app.db
|
||||||
|
# Restart - it will recreate the database
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔒 Security Notes
|
||||||
|
|
||||||
|
- Never commit `.env` to git (it's in `.gitignore`)
|
||||||
|
- Keep your Firefly III API token secret
|
||||||
|
- In production, use environment variables, not .env files
|
||||||
|
- See `ARCHITECTURE.md` for production deployment guide
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Your app is now running!** 🎉
|
||||||
|
|
||||||
|
Go to http://localhost:3000 and start viewing your financial analytics.
|
||||||
5
create_data_dir.bat
Normal file
5
create_data_dir.bat
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
@echo off
|
||||||
|
cd /d C:\Users\Nabeel\Nextcloud\Projects\firefly_reports
|
||||||
|
mkdir data
|
||||||
|
echo ✓ Created data directory
|
||||||
|
pause
|
||||||
Reference in New Issue
Block a user