A lightweight, memory-optimized task scheduler and automation dashboard designed specifically for Raspberry Pi systems. Built with modern web technologies and optimized for <90MB memory usage.
- π Cron-based Task Scheduling - Schedule tasks using standard cron syntax with real-time validation
- β‘ Manual Task Execution - Run tasks on-demand with confirmation dialogs
- π Real-time Monitoring - Live dashboard with task statistics and system memory tracking
- π Smart Notifications - Firebase-powered browser notifications for task completion
- πΎ Memory Optimized - Designed for <90MB RAM usage, perfect for Raspberry Pi
- π¨ Modern UI - Responsive design with dark/light mode using shadcn/ui components
- π System Monitoring - Built-in memory usage monitoring and performance tracking
- π Auto-restart - Task scheduler with automatic recovery and health checks
Frontend:
- React 18 with TypeScript
- Vite build system
- Tailwind CSS + shadcn/ui components
- TanStack Query for state management
- Wouter for client-side routing
Backend:
- Node.js 20+ with Express.js
- PostgreSQL with Drizzle ORM
- node-cron for task scheduling
- Firebase Cloud Messaging
- Memory optimization middleware
Infrastructure:
- PostgreSQL database
- PM2 process management
- NGINX reverse proxy
- Systemd service integration
- Node.js 20.18.1 or higher
- PostgreSQL 15+
- Firebase project with Cloud Messaging enabled
-
Clone the repository
git clone https://github.com/yourusername/pitasker.git cd pitasker
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env # Edit .env with your database and Firebase credentials
-
Initialize database
npm run db:push
-
Start development server
npm run dev
-
Open browser Navigate to
http://localhost:5000
The main dashboard shows task statistics, system monitoring, and active task management.
Simple form interface for creating new scheduled tasks with cron validation.
Real-time memory usage tracking optimized for Raspberry Pi constraints.
Create a .env
file with the following variables:
# Database
DATABASE_URL=postgresql://username:password@localhost:5432/pitasker
# Firebase Configuration
VITE_FIREBASE_API_KEY=your_firebase_api_key
VITE_FIREBASE_PROJECT_ID=your_firebase_project_id
VITE_FIREBASE_APP_ID=your_firebase_app_id
# Development
NODE_ENV=production
PORT=5000
The application uses two main tables:
users
- User authentication (basic setup)tasks
- Task definitions with scheduling information
GET /health
- Health check with memory usageGET /api/memory
- Detailed memory monitoringGET /api/tasks
- List all tasksPOST /api/tasks
- Create new taskPATCH /api/tasks/:id
- Update task (partial updates)DELETE /api/tasks/:id
- Delete taskPOST /api/tasks/:id/run
- Manual task executionGET /api/tasks/stats
- Task statistics
# Run every minute
*/1 * * * *
# Run daily at 6 AM
0 6 * * *
# Run weekly on Sundays at midnight
0 0 * * 0
# System backup
tar -czf /backup/pi-backup-$(date +%Y%m%d).tar.gz /home/pi
# Temperature monitoring
vcgencmd measure_temp >> /var/log/pi-temp.log
# Disk cleanup
find /tmp -type f -atime +7 -delete
PiTasker is specifically optimized for Raspberry Pi memory constraints:
- Target: <90MB RSS memory usage
- Built-in memory monitoring and warnings
- Garbage collection optimization
- Efficient PostgreSQL connection pooling
- Minimal dependency footprint
For production deployment on Raspberry Pi, see INSTALLATION.md for detailed setup instructions.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Replit rapid development platform
- UI components from shadcn/ui
- Icons from Lucide React
- Optimized for Raspberry Pi Foundation hardware
- Create an issue for bug reports or feature requests
- Check the Installation Guide for deployment help
- Monitor system health via
/api/memory
endpoint
Made with β€οΈ for the Raspberry Pi community