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

884

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