Welcome to Qzark, a lightweight, Python-based crontab-like task runner designed to manage and execute scheduled tasks without relying on external cron services. Qzark reads tasks from a YAML configuration file, schedules them internally, and sends notifications on task failures via Telegram, Discord, or SMTP.
tasks.yaml
file.Before you begin, ensure you have met the following requirements:
Clone the Repository
git clone https://github.com/JuanVilla424/qzark.git
Navigate to the Project Directory
cd qzark
Set Up a Python Virtual Environment
python -m venv venv
Activate the Virtual Environment
On Unix or MacOS:
source venv/bin/activate
On Windows:
.\venv\Scripts\activate
Install Dependencies
pip install -r requirements.txt
Define Tasks in tasks.yaml
Create a tasks.yaml
file in the root directory with the following structure:
tasks:
- name: "Example Task"
interval_seconds: 60
shell_command: "echo 'Hello, Qzark!'"
Configure Notifications in config.py
Update config.py
with your notification settings (e.g., Telegram bot token, Discord webhook URL, SMTP credentials).
Run Qzark
python qzark.py
Command-Line Arguments
--timeout
: Set task execution timeout (default: 50 seconds).--log-level
: Set logging level (INFO
or DEBUG
).Example:
python qzark.py --timeout 100 --log-level DEBUG
Stopping Qzark
Press Ctrl+C
to stop the application gracefully.
Contributions are welcome! To contribute to this repository, please follow these steps:
Fork the Repository
Create a Feature Branch
git checkout -b feature/your-feature-name
Commit Your Changes
git commit -m "feat(<scope>): your feature commit message - lower case"
Push to the Branch
git push origin feature/your-feature-name
Open a Pull Request into dev
branch
Please ensure your contributions adhere to the Code of Conduct and Contribution Guidelines.
Create a New Workflow File
touch .github/workflows/new-workflow.yml
Define the Workflow
Customize the workflow according to your needs, using existing workflows as references.
Commit and Push
git add .github/workflows/new-workflow.yml
git commit -m "chore(core): added new workflow - lower case"
git push origin feature/your-feature-name
For any inquiries or support, please open an issue or contact r6ty5r296it6tl4eg5m.constant214@passinbox.com.
2025 - This project is licensed under the GNU General Public License v3.0. You are free to use, modify, and distribute this software under the terms of the GPL-3.0 license. For more details, please refer to the LICENSE file included in this repository.