assets/styles | ||
examples | ||
migrations | ||
src | ||
.dockerignore | ||
.env.example | ||
.gitignore | ||
Cargo.lock | ||
Cargo.toml | ||
config.example.yaml | ||
config.yaml | ||
Dockerfile | ||
init_db.sh | ||
justfile | ||
LICENSE | ||
README.md | ||
TODO.md |
Autotasker
Autotasker is a small server-side job runner and scheduler.
If you have a small infrastructure and you want to run task or small workflows and you want to supervise via a small web GUI, then autotasker is probably for you.
Autotasker free software licenced under GPLv3.
Philosophy and architecture
- Unix-like
- Can be configured with a single YAML file.
- Light web GUI
- Sqlite DB
Getting started
- Create a config file to define your tasks.
- Deploy the server with docker or using git clone + cargo install binary + systemd service.
- Enjoy!
Features roadmap
- List the tasks availables.
- Run tasks in background.
- Store the logs and tasks runs in a sqlite DB.
- Trigger task via webhook, with a webhook token and debouncing.
- Schedule tasks (CRON-like).
- Run task command via ssh
- OpenMetrics exporter to alert when a task failed.
- External alerting when a task failed.
- Content negociation with JSON or HTML.
- OAuth2 support for admin.
Vocabulary
Task
is a configured command to be run.Executor
is the part of the code that handle task run. A new executor is spawned for each TaskRun.TaskRun
refer to a singular task run.
Deploy & Usage
Standard
You can use standard rust and cargo command to run the server.
You can start the daemon with autotasker --config /path/to/config --database /path/to/database.db
.
Requirements
If you wish to use the remote host ssh feature, you must have openssh-client installed on the host.
Docker
Build the alpine image:
just docker-build
Initialize the db:
just docker-init-db
Run with config and db volume:
just docker-run
Getting started on development
This project use a justfile
. just is a handy way to save and run project-specific commands.