Hearth - Family Management & Household ERP System
1.9K
A family-first household management system that helps run a home the same way an ERP helps run a business: managing people, time, tasks, resources, and routines in one cohesive system.
git clone <repository-url>
cd Hearth
cp .env.example .env
docker-compose up -d hearth-db
npm install
npx prisma migrate dev --name init
npx prisma generate
npm run dev
npm install
.env with your database URL:DATABASE_URL="postgresql://username:password@localhost:5432/hearth_db?schema=public"
npx prisma migrate dev --name init
npx prisma generate
npm run dev
docker-compose up -d
docker-compose up -d hearth-db
docker-compose --profile tools up -d
Access Prisma Studio at http://localhost:5555
docker-compose logs -f hearth-app-dev
docker-compose down
docker-compose down -v
docker-compose up -d --build
npm run dev - Start development servernpm run build - Build for productionnpm run start - Start production servernpm run lint - Run ESLintnpm run test - Run testsnpm run test:watch - Run tests in watch modenpm run type-check - Type check with TypeScriptnpm run db:seed - Seed the database with initial datanpm run db:reset - Reset database (WARNING: deletes all data)npx prisma migrate dev --name <migration-name>
npx prisma migrate reset
npx prisma studio
npx prisma generate
hearth/
├── app/ # Next.js app directory
│ ├── api/ # API routes (150+ endpoints)
│ ├── auth/ # Authentication pages
│ ├── dashboard/ # Dashboard pages (30+ modules)
│ ├── kiosk/ # Kiosk mode interface
│ ├── onboarding/ # Onboarding flow
│ └── layout.tsx # Root layout
├── components/ # React components
│ ├── auth/ # Authentication components
│ ├── dashboard/ # Dashboard components & widgets
│ ├── kiosk/ # Kiosk mode components
│ └── ui/ # Reusable UI components
├── lib/ # Utility functions
│ ├── integrations/ # External integrations (Google Calendar, iCal)
│ └── test-utils/ # Testing utilities
├── prisma/ # Prisma schema and migrations
│ ├── schema.prisma # Database schema (2600+ lines)
│ └── migrations/ # Database migrations
├── hooks/ # React hooks
├── public/ # Static files (PWA manifest, service worker)
├── types/ # TypeScript type definitions
├── __tests__/ # Test files
│ ├── integration/ # API integration tests
│ ├── components/ # Component tests
│ └── unit/ # Unit tests
├── docs/ # Documentation
├── scripts/ # Utility scripts
├── docker-compose.yml # Docker services configuration
├── Dockerfile # Production Docker image
├── Dockerfile.dev # Development Docker image
└── .env.example # Environment variables template
See .env.example for all available environment variables. Key variables:
DATABASE_URL - PostgreSQL connection stringNEXTAUTH_URL - Application URLNEXTAUTH_SECRET - Secret for NextAuth.js (generate with openssl rand -base64 32)REDIS_URL - Redis connection string (optional, falls back to in-memory rate limiting)GOOGLE_CLIENT_ID - Google OAuth client ID (for Calendar sync)GOOGLE_CLIENT_SECRET - Google OAuth client secretNEXT_PUBLIC_VAPID_PUBLIC_KEY - VAPID public key for push notificationsVAPID_PRIVATE_KEY - VAPID private key for push notificationsCRON_SECRET - Secret for cron job authenticationThis project follows Test-Driven Development (TDD) methodology. See CLAUDE.md for detailed testing guidelines.
Run tests with:
npm test # Run all tests
npm run test:watch # Watch mode
npx jest <path> # Run specific test file
The project includes a multi-stage Dockerfile optimized for production:
docker buildx build --platform linux/amd64 --file ./Dockerfile --tag hearth:latest .
.env.example to .env.productionnode scripts/generate-vapid-keys.js
npx prisma migrate deploy
See DEPLOYMENT.md and DEPLOYMENT-PORTAINER.md for detailed deployment instructions.
Foundation
Core Features
Extended Features
Integration & Polish
This project is licensed under the ISC License.
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
For issues and questions, please open an issue on GitHub.
Content type
Image
Digest
sha256:19d633f10…
Size
314.5 MB
Last updated
9 months ago
docker pull caleblanchard/hearth