Python task scheduler with a user-friendly web UI
Project description
Plombery
Python task scheduler with a user-friendly web UI
Official website »
Report Bug
·
Request Feature
About The Project
Plombery is a simple task scheduler for Python with a web UI and a REST API, if you need to run and monitor recurring python scripts then it's the right tool for you!
This project is at its beginning, so it can be shaped and improved with your feedback and help! If you like it, star it 🌟! If you want a feature or find a bug, open an issue.
Features
- ⏰ Task scheduling based on APScheduler (supports Interval, Cron and Date triggers)
- 💻 Built-in Web interface, no HTML/JS/CSS coding required
- 👩💻🐍 Pipelines and tasks are defined in pure Python
- 🎛️ Pipelines can be parametrized via Pydantic
- 👉 Pipelines can be run manually from the web UI
- 🔐 Secured via OAuth2
- 🔍 Debug each run exploring logs and output data
- 📩 Monitor the pipelines and get alerted if something goes wrong
- 💣 Use the REST API for advanced integrations
When you shouldn't use it:
- you need a lot of scalability and you want to run on a distributed system
- you want a no-code tool or you don't want to use Python
Built With
🚀 Getting Started
Check the 👉 official website
🧐 Show me the code
This is how it looks a minimalist pipeline:
🛣 Roadmap
See the open issues for a full list of proposed features (and known issues).
👩💻 Contributing
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Development
Clone a fork of this repo and start your dev environment.
Create a python virtual environment:
python -m venv .venv
# on Mac/Linux
source .venv/bin/activate
# on Win
.venv/Script/activate
and install the dependencies:
pip install -r requirements.txt
pip install -r requirements-dev.txt
for development purposes, it's useful to run the example application:
cd examples/
export PYTHONPATH=$(pwd)/..
uvicorn dummy.app:app --reload --reload-dir ..
The React frontend is in the frontend/
folder, enter the folder
and install the dependencies:
cd frontend/
# The project uses yarn as dependency manager, if you don't have
# it, you must install it.
# This command will install the deps:
yarn
run the development server:
yarn dev
Documentation
The documentation website is based on MkDocs Material, the source code is in the
docs/
folder and the config is in the mkdocs.yml
file.
To run a local dev server, run:
mkdocs serve
Testing
Tests are based on pytest
, to run the entire suite just run:
pytest
To run tests coverage, run:
coverage run -m pytest
coverage report -m
License
Distributed under the MIT License. See LICENSE.txt
for more information.
Contact
Project Link: https://github.com/lucafaggianelli/plombery
Acknowledgments
Plombery is built on top of amazing techs:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for plombery-0.3.0rc1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6636651cf219bde1c75affe1fd4896254b9aca39099664cae2a359252b1f8df1 |
|
MD5 | 2ec26691f5bd3e3c0d31bfe1f15c9df2 |
|
BLAKE2b-256 | fb077c5f42563780dff21ee7cd31f8c0ad2615699b81ed1ae75d2a71f457a885 |