Job runner and scheduler. Run your server-side background tasks or jobs in a neat way.
Go to file
2024-09-15 13:21:01 +02:00
assets/styles feat: add task state status badge 2024-07-28 15:38:24 +02:00
examples feat: use micro seconds for logs capture (BREAKING) 2024-07-28 19:34:04 +02:00
migrations fix: trigger mode and status enums 2024-07-26 15:00:51 +02:00
src feat(executor): remote host executing via ssh 2024-08-03 19:43:26 +02:00
.dockerignore ci: add docker support 2024-08-02 17:37:06 +02:00
.env.example initial commit 2024-04-27 11:59:43 +02:00
.gitignore ci: add docker support 2024-08-02 17:37:06 +02:00
Cargo.lock ci: add docker support 2024-08-02 17:37:06 +02:00
Cargo.toml ci: add docker support 2024-08-02 17:37:06 +02:00
config.example.yaml feat: use micro seconds for logs capture (BREAKING) 2024-07-28 19:34:04 +02:00
config.yaml feat(executor): remote host executing via ssh 2024-08-03 19:43:26 +02:00
Dockerfile build: update just file 2024-09-15 13:19:55 +02:00
init_db.sh build: update just file 2024-09-15 13:19:55 +02:00
justfile build: update just file 2024-09-15 13:19:55 +02:00
LICENSE docs: add GPLv3 license 2024-07-21 17:23:32 +02:00
README.md docs: add details in README.md 2024-09-15 13:21:01 +02:00
TODO.md feat(executor): remote host executing via ssh 2024-08-03 19:43:26 +02:00

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.

Built with

  • Axum for web server.
  • Tera for templating.
  • Sqlx to interact with Sqlite.
  • Sqlite for storing state and logs.