Sign inSign up

sftpmalin/tasks-manager

By sftpmalin

Updated 5 months ago

Tasks Manager - Web Cron UI for Docker

Image
Networking
Security
API management
0

876

sftpmalin/tasks-manager repository overview

Tasks Manager

Tasks Manager is a lightweight Web Cron UI for Docker.

It does not replace Linux cron. It uses the real cron engine and adds a clean web interface around it.

The goal is simple:

  • create scheduled tasks from a browser
  • run commands manually
  • keep logs readable
  • use real Linux cron syntax when needed
  • receive Web Push notifications when tasks fail or succeed

Features

  • Web interface for Linux cron
  • Real cron file generation
  • SQLite task database
  • Manual task execution
  • Up to 5 commands per task
  • Task logs and status history
  • Global lock: only one task runs at a time
  • Force stop using PID / PGID
  • Custom cron expressions
  • PWA support
  • Web Push notifications
  • Success notifications selectable per task
  • Failure notifications enabled automatically for all tasks

Scheduling modes

Tasks Manager includes simple scheduling modes:

  • Manual only
  • Every X minutes
  • Every X hours
  • Daily
  • Selected weekdays
  • Monthly
  • Yearly
  • Custom cron expression

The custom mode uses the standard Linux cron format:

minute hour day-of-month month day-of-week

Examples:

*/15 * * * *

Runs every 15 minutes.

0 15 * * *

Runs every day at 15:00.

0 15 * * 1-5

Runs at 15:00 from Monday to Friday.

0 */4 * * *

Runs every 4 hours.


Docker Compose

Basic example:

services:
  tasks-manager:
    image: sftpmalin/tasks-manager:latest
    container_name: Tasks_Manager
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - TZ=Europe/Paris
    volumes:
      - /mnt/user/appdata/tasks_manager:/data

With host scripts

If you want Tasks Manager to run scripts stored on the host, mount a scripts folder:

services:
  tasks-manager:
    image: sftpmalin/tasks-manager:latest
    container_name: Tasks_Manager
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - TZ=Europe/Paris
    volumes:
      - /mnt/user/appdata/tasks_manager:/data
      - /mnt/user/dockers/scripts:/host/scripts

Optional Docker control

If your tasks need to control other Docker containers, mount the Docker socket:

volumes:
  - /var/run/docker.sock:/var/run/docker.sock

Warning:

Mounting /var/run/docker.sock gives this container powerful access to the Docker host.

Use it only if you understand the security implications.


Optional privileged mode

Some advanced host-level scripts may require privileged mode:

privileged: true

Use privileged mode only when required by your own scripts.


Persistent data

All runtime data is stored in:

/data

Typical generated files:

/data/conf/task.db
/data/conf/task.conf
/data/cron/root.cron
/data/logs/tasks

The Docker image does not need to include any personal database, private key, log file, token, or personal task.


Notifications

Tasks Manager supports Web Push notifications.

Notification logic:

  • success notifications are enabled manually per task
  • failure notifications are sent automatically for all tasks

For Web Push to work correctly, the service should be accessed through HTTPS.


Security notes

Do not publish or include sensitive files inside a public Docker image.

Never include:

SSH private keys
.p12 files
SQLite databases with personal tasks
logs
tokens
passwords
VAPID private keys

Mount your own /data volume and keep secrets outside the public Docker image.


Philosophy

Tasks Manager is not a heavy automation platform.

It is a simple web layer around cron:

cron runs the commands
SQLite stores the state
Flask provides the interface
logs stay readable
commands stay visible

Simple, lightweight, precise, and efficient.

Tag summary

Content type

Image

Digest

sha256:66fdb0641

Size

194.3 MB

Last updated

5 months ago

docker pull sftpmalin/tasks-manager