DEV Community

Yannis
Yannis

Posted on

Desto: A Web Dashboard for Long-Running Background Processes

 TL;DR: I built desto to monitor long-running processes through a web interface. It lets you manage tmux sessions, view logs, schedule jobs, and get notifications—all from your browser while keeping the terminal power you love.

Demo gif

As developers, we often have processes that need to run for hours or even days—training ML models, processing large datasets, running extensive test suites, or performing system maintenance. While the terminal is perfectly capable of handling these tasks, I found myself wanting a more visual way to monitor multiple long-running jobs simultaneously.

That's why I created desto—a web dashboard that complements your terminal workflow by giving you an overview of all your background processes at a glance.

The Problem I Wanted to Solve

I love working in the terminal, but managing multiple long-running processes presented some challenges:

  • Monitoring: Checking on several processes meant switching between tmux sessions or opening multiple terminal tabs
  • Log access: Quickly viewing logs from different jobs required remembering session names and navigating directories
  • Scheduling: Setting up processes to run at specific times often meant writing cron jobs or using at commands
  • Notifications: Knowing when a long-running job finished without constantly checking
  • Quick control: Stopping or restarting processes with a few clicks instead of typing commands

What desto Does

desto runs alongside your terminal workflow, providing a web dashboard at http://localhost:8809 where you can:

🔍 Monitor Long-Running Processes

Keep an eye on multiple background jobs without switching between terminal sessions. The dashboard shows all your active tmux sessions and their status at a glance.

📊 Track System Resources

See real-time CPU, memory, and disk usage—especially useful when running resource-intensive processes like data analysis or model training.

📝 Easy Log Access

View logs from any session instantly. No need to remember which directory contains your logs or which tmux session is running what.

⏰ Simple Scheduling

Schedule scripts to run at specific times through the web interface. Great for automated backups, data processing pipelines, or any recurring tasks.

🎯 Quick Process Control

Start, stop, or restart processes with a few clicks. The terminal is still there when you need it, but sometimes you just want the convenience of a button.

⛓️ Process Chaining

Queue multiple scripts to run sequentially—useful for complex workflows where one process depends on another.

Core Features

Script Management

  • Dual support: Run both bash (.sh) and Python (.py) scripts
  • Auto-detection: The system recognizes your script type and handles execution appropriately
  • Built-in editor: Write or edit scripts directly in the browser when needed
  • Persistent storage: Scripts and logs are organized in dedicated folders

Session Control

  • Keep-alive option: Toggle to keep tmux sessions open after scripts complete
  • Live monitoring: Watch script output in real-time
  • Session naming: Organize your processes with meaningful names

Modern CLI

For terminal enthusiasts, desto includes a comprehensive CLI that mirrors all web functionality:

# Check system status
desto-cli doctor

# Session management
desto-cli sessions list
desto-cli sessions start "data-processing" "python analyze_data.py"
desto-cli sessions logs "data-processing"

# Script management
desto-cli scripts list
desto-cli scripts run "backup_script"
Enter fullscreen mode Exit fullscreen mode

Getting Started

Quick Start with Docker

git clone https://github.com/kalfasyan/desto.git && cd desto
docker compose up -d
Enter fullscreen mode Exit fullscreen mode

Visit http://localhost:8809 and you're ready to go.

Installation with Python

#### With uv (recommended)
uv add desto

#### Or with pip
pip install desto

#### Run the dashboard
desto
Enter fullscreen mode Exit fullscreen mode

Prerequisites

You'll need tmux for session management and optionally at for scheduling:

# Debian/Ubuntu
sudo apt install tmux at

# Fedora/RHEL
sudo dnf install tmux at

# Arch Linux
sudo pacman -S tmux at
Enter fullscreen mode Exit fullscreen mode

Real-World Use Cases

Long-running data processing: Monitor ETL pipelines, large dataset transformations, or batch processing jobs that run for hours.

Machine learning workflows: Track model training, hyperparameter tuning, or data preprocessing tasks that need to run overnight.

Development automation: Manage build processes, test suites, or deployment scripts that take significant time to complete.

System maintenance: Schedule and monitor backup processes, log rotation, system updates, or cleanup tasks.

Research computing: Keep track of simulations, analysis scripts, or computational experiments that run for extended periods.

How It Works

When you start desto, it creates desto_scripts/ and desto_logs/ directories in your current location (customizable via settings or environment variables). Your existing scripts are automatically recognized, and you can create new ones through the interface or continue using your preferred editor.

The dashboard connects to your tmux sessions, providing a unified view while keeping all the terminal functionality you're used to. It's designed to enhance your existing workflow, not replace it.

Why I Built This

I work with processes that often run for hours or days—data analysis, model training, large file processing. While I love the terminal and tmux is incredibly powerful, I wanted something that could give me an overview of all my background processes without losing the flexibility and control that command-line tools provide.

desto bridges that gap. The terminal is still there when you need fine-grained control, but now you also have a visual dashboard for those times when you want to quickly check on multiple jobs, view logs, or schedule new tasks.

Try It Out

If you regularly work with long-running processes or find yourself juggling multiple background tasks, desto might fit well into your workflow. The Docker setup takes less than a minute, and you can keep using your terminal exactly as you always have.

Check it out on GitHub and let me know if you find it useful for your projects.


What's your current approach to managing long-running background processes? I'd love to hear about your workflow and any similar tools you've found helpful.

Tags: #tmux #python #bash #productivity #monitoring #backgroundjobs #webdev

Top comments (0)