-
Notifications
You must be signed in to change notification settings - Fork 0
Quick Start
Get TrueHour v2.0 running in 5 minutes with Docker!
- Docker 20.10+ and Docker Compose 2.0+
- 500MB RAM available
- 1GB disk space
Install Docker if you haven't already.
git clone https://github.com/FliteAxis/TrueHour.git
cd TrueHourcd infrastructure
cp .env.example .envImportant: Edit .env and change the default password:
POSTGRES_PASSWORD=your_secure_password_here
DATABASE_URL=postgresql://truehour:your_secure_password_here@db:5432/truehour# Start all services
docker compose up -d
# View logs (optional)
docker compose logs -fOpen your browser:
- Frontend (React): http://localhost:8181
- Backend API: http://localhost:8000
- API Docs: http://localhost:8000/docs
Check that all three containers are running:
docker compose psYou should see:
-
truehour-frontend- React frontend (port 8181) -
truehour-api- FastAPI backend (port 8000) -
truehour-db- PostgreSQL database (port 5432)
All should have status "Up".
TrueHour v2.0 is a complete rewrite featuring:
- β¨ Modern React Frontend - Fast, responsive UI with Tailwind CSS
- π° Budget Cards v2.0 - Smart budget tracking with aircraft linkage
- π Certification Progress - Track PPL, IR, and CPL requirements
βοΈ FAA Aircraft Lookup - 308K+ aircraft database integration- π Export System - CSV and PDF reports
- π― Training Settings - Customize rates and goals
- πΈ Expense Tracking - Link expenses to budget cards
After installation, configure TrueHour:
If you use ForeFlight:
- Export CSV from ForeFlight
- Click hamburger menu β "Import Logbook"
- Select your CSV file
- Review aircraft mapping
- Confirm import
US Aircraft with FAA Lookup:
- Go to Aircraft section
- Click "Add Aircraft"
- Enter N-number (e.g., N12345)
- Click "Lookup FAA Data"
- Add rates (wet/dry, fuel)
- Save
Manual Entry:
- Fill in all fields manually
- Add rates and characteristics
- Save
- Go to Settings (gear icon)
- Set target certification (PPL, IR, CPL, CFI)
- Configure training rates
- Set training pace
- Define budget categories
- Save
- Go to Budget section
- Click "Add Budget Card"
- Use Quick Start templates or create custom
- Link to aircraft for automatic calculations
- Save
- Go to Expenses section
- Click "Add Expense"
- Fill in details
- Link to budget card(s)
- Save
TrueHour v2.0 uses a three-container architecture:
| Container | Technology | Port | Purpose |
|---|---|---|---|
| frontend | React 18 + Vite | 3000 | Modern web UI |
| backend | FastAPI + Python | 8000 | REST API + FAA data |
| db | PostgreSQL 16 | 5432 | Primary database |
Total RAM Usage: ~500MB FAA Database: 308K+ aircraft (SQLite)
# View all logs
docker compose logs -f
# View specific service logs
docker compose logs -f backend
docker compose logs -f frontend
# Restart services
docker compose restart
# Stop services (preserves data)
docker compose down
# Stop and remove data (β οΈ deletes everything)
docker compose down -v
# Rebuild containers
docker compose up -d --build# Connect to database
docker exec -it truehour-db psql -U truehour truehour
# Backup database
docker exec truehour-db pg_dump -U truehour truehour > backup_$(date +%Y%m%d).sql
# Restore database
cat backup_20260103.sql | docker exec -i truehour-db psql -U truehour truehour
# View tables
docker exec -it truehour-db psql -U truehour truehour -c "\dt"# Check backend health
curl http://localhost:8000/api/v1/health
# Test FAA lookup
curl http://localhost:8000/api/v1/aircraft/N172SP
# Get flights
curl http://localhost:8000/api/v1/health/
# Get user aircraft
curl http://localhost:8000/api/user/aircraft
# Get budget cards
curl http://localhost:8000/api/budget-cards/For local development without Docker:
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
export DATABASE_URL="postgresql://truehour:password@localhost:5432/truehour"
uvicorn app.main:app --reloadcd frontend-react
npm install
echo "APP_PORT=http://localhost:8000" > .env
npm run devFrontend: http://localhost:5173 (Vite dev server)
# Check what's using ports
lsof -i :3000 # Frontend
lsof -i :8000 # Backend
lsof -i :5432 # Database
# Change ports in infrastructure/.env
APP_PORT=8182
# Check container status
docker compose ps
# View logs for errors
docker compose logs backend
docker compose logs frontend
docker compose logs db
# Full restart
docker compose down -v
docker compose up -d --build# Check database is running
docker ps | grep postgres
# Test connection
docker exec -it truehour-db psql -U truehour truehour -c "SELECT 1;"
# Verify DATABASE_URL
docker exec -it truehour-api env | grep DATABASE_URL# Check frontend container logs
docker compose logs frontend
# Check APP_PORT
cat infrastructure/.env | grep APP_PORT
# Verify backend is responding
curl http://localhost:8000/api/v1/healthDocumentation:
- π Full Documentation
- π Installation Guide
- π User Guide
- π Changelog
Support:
- π GitHub Issues
- π¬ GitHub Discussions
- π API Documentation (when running)
Wiki:
- ποΈ Architecture Overview
- π§ API Documentation
- π οΈ Troubleshooting Guide
- β Complete First-Time Setup
- β Read the User Guide
- β Import your logbook or add first flight
- β Configure your aircraft with rates
- β Create budget cards for training costs
- β Start tracking expenses
That's it! Your TrueHour v2.0 is now running. Happy Flying! π©οΈ
π View on GitHub | π³ Docker Hub
π Report Issue | π¬ Discussions
License: MIT License | Copyright (c) 2024-2025 FliteAxis
π Getting Started
π¦ Deployment
π§ Development
π Security
- Security Setup Guide
- Security CI/CD Pipeline
- Code Quality & Linting
- SBOM Management
- Vulnerability Scanning
π Dependencies
π³ Docker
π Reference
π Links