A powerful application scheduler and management system with a modern web interface for automating application lifecycles.
BrickSwitch is a comprehensive scheduler application that provides automated management of applications with features including:
- Automated Scheduling: Schedule applications to start and stop at specific times
- Daily Schedule Management: Configure daily start/stop times (e.g., 09:00 - 18:00)
- Weekend Options: Turn off applications on weekends automatically
- Custom Off Dates: Define specific dates when applications should remain off
- Real-time Monitoring: Track application states (Running, Stopped, Scheduled)
- Web Interface: Modern, intuitive dashboard for managing all scheduled applications
- Set daily start and stop times for applications
- Weekend shutdown options
- Custom off-date configurations
- Flexible scheduling with YYYY-MM-DD format support
- View all applications in a centralized dashboard
- Real-time status monitoring (Running/Stopped/Scheduled)
- Individual application controls
- Bulk operations support
- Additional off days configuration
- Custom date exclusions
- Debug information toggle
- Auto-scheduler controls
- Clean, modern UI with dark theme
- Responsive design
- Real-time status updates
- Easy-to-use scheduling dialogs
- Python 3.7+
- Flask
- Required dependencies (see
requirements.txt) - Service Principal Name (SPN) with Manage Access to all applications that need to be managed
To configure SPN permissions:
- Identify the Service Principal Name used by BrickSwitch
- For each target application, grant the SPN Manage Access permissions
- Verify permissions are properly configured before scheduling applications
- Clone the repository:
git clone https://github.com/cankoklu-db/brickswitch.git
cd brickswitch- Install dependencies:
pip install -r requirements.txt- Run the application:
python app.py- Access the web interface at
http://localhost:5000
For production deployment, you can set up BrickSwitch as a systemd service:
# Copy the service file
sudo cp brickswitch-scheduler.service /etc/systemd/system/
# Enable and start the service
sudo systemctl enable brickswitch-scheduler
sudo systemctl start brickswitch-schedulerSee SCHEDULER_SETUP.md for detailed setup instructions.
- Click on any application in the dashboard
- Configure the daily schedule:
- App Start Time: When the application should start (e.g., 09:00)
- App Stop Time: When the application should stop (e.g., 18:00)
- Set options:
- ✅ Turn off on weekends: Automatically disable on weekends
- Additional off days: Choose specific days to exclude
- Custom Off Dates: Define specific dates (YYYY-MM-DD format)
- Click Save Schedule
- 🔄 Refresh: Update application statuses
- ⏹️ Stop Auto Scheduler: Pause all automated scheduling
- 🚀 Execute Now: Manually trigger application actions
- 📋 View Logs: Access detailed application logs
The application uses app.yaml for configuration settings. Key configurations include:
- Application definitions and endpoints
- Scheduling parameters
- Logging settings
- Service configurations
brickswitch/
├── app.py # Main Flask application
├── scheduler.py # Scheduler logic and automation
├── requirements.txt # Python dependencies
├── app.yaml # Application configuration
├── brickswitch-scheduler.service # Systemd service file
├── SCHEDULER_SETUP.md # Detailed setup guide
├── logs/ # Application logs
└── README.md # This file
The application provides RESTful API endpoints for:
- Application status monitoring
- Schedule management
- Configuration updates
- Log access
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some 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.
For support and questions, please open an issue in the GitHub repository.
BrickSwitch - Simplifying application lifecycle management with intelligent scheduling.
