<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Yannis</title>
    <description>The latest articles on Forem by Yannis (@kalfasyan).</description>
    <link>https://forem.com/kalfasyan</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3519766%2F4741e876-e7c9-4ccb-99f7-8fd646ce4573.png</url>
      <title>Forem: Yannis</title>
      <link>https://forem.com/kalfasyan</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kalfasyan"/>
    <language>en</language>
    <item>
      <title>Desto: A Web Dashboard for Long-Running Background Processes</title>
      <dc:creator>Yannis</dc:creator>
      <pubDate>Sun, 21 Sep 2025 22:54:46 +0000</pubDate>
      <link>https://forem.com/kalfasyan/desto-a-web-dashboard-for-long-running-background-processes-4lf2</link>
      <guid>https://forem.com/kalfasyan/desto-a-web-dashboard-for-long-running-background-processes-4lf2</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h1qngd1cqic7wbjdepc.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5h1qngd1cqic7wbjdepc.jpg" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;strong&gt;TL;DR:&lt;/strong&gt; 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.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn9pkf0i5545n3hlh8fsy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn9pkf0i5545n3hlh8fsy.jpg" alt=" " width="800" height="443"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;a href="https://github.com/kalfasyan/desto/blob/main/docs%2Fimages%2Fdesto_demo.gif" rel="noopener noreferrer"&gt;Demo gif&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

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

&lt;h2&gt;
  
  
  The Problem I Wanted to Solve
&lt;/h2&gt;

&lt;p&gt;I love working in the terminal, but managing multiple long-running processes presented some challenges:&lt;/p&gt;

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

&lt;h2&gt;
  
  
  What desto Does
&lt;/h2&gt;

&lt;p&gt;desto runs alongside your terminal workflow, providing a web dashboard at &lt;code&gt;http://localhost:8809&lt;/code&gt; where you can:&lt;/p&gt;

&lt;h4&gt;
  
  
  🔍 Monitor Long-Running Processes
&lt;/h4&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h4&gt;
  
  
  📊 Track System Resources
&lt;/h4&gt;

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

&lt;h4&gt;
  
  
  📝 Easy Log Access
&lt;/h4&gt;

&lt;p&gt;View logs from any session instantly. No need to remember which directory contains your logs or which tmux session is running what.&lt;/p&gt;

&lt;h4&gt;
  
  
  ⏰ Simple Scheduling
&lt;/h4&gt;

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

&lt;h4&gt;
  
  
  🎯 Quick Process Control
&lt;/h4&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h4&gt;
  
  
  ⛓️ Process Chaining
&lt;/h4&gt;

&lt;p&gt;Queue multiple scripts to run sequentially—useful for complex workflows where one process depends on another.&lt;/p&gt;

&lt;h2&gt;
  
  
  Core Features
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Script Management
&lt;/h4&gt;

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

&lt;h4&gt;
  
  
  Session Control
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Keep-alive option&lt;/strong&gt;: Toggle to keep tmux sessions open after scripts complete&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Live monitoring&lt;/strong&gt;: Watch script output in real-time&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Session naming&lt;/strong&gt;: Organize your processes with meaningful names&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Modern CLI
&lt;/h4&gt;

&lt;p&gt;For terminal enthusiasts, desto includes a comprehensive CLI that mirrors all web functionality:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Check system status&lt;/span&gt;
desto-cli doctor

&lt;span class="c"&gt;# Session management&lt;/span&gt;
desto-cli sessions list
desto-cli sessions start &lt;span class="s2"&gt;"data-processing"&lt;/span&gt; &lt;span class="s2"&gt;"python analyze_data.py"&lt;/span&gt;
desto-cli sessions logs &lt;span class="s2"&gt;"data-processing"&lt;/span&gt;

&lt;span class="c"&gt;# Script management&lt;/span&gt;
desto-cli scripts list
desto-cli scripts run &lt;span class="s2"&gt;"backup_script"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;h4&gt;
  
  
  Quick Start with Docker
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/kalfasyan/desto.git &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd &lt;/span&gt;desto
docker compose up &lt;span class="nt"&gt;-d&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Visit &lt;code&gt;http://localhost:8809&lt;/code&gt; and you're ready to go.&lt;/p&gt;

&lt;h4&gt;
  
  
  Installation with Python
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#### With uv (recommended)&lt;/span&gt;
uv add desto

&lt;span class="c"&gt;#### Or with pip&lt;/span&gt;
pip &lt;span class="nb"&gt;install &lt;/span&gt;desto

&lt;span class="c"&gt;#### Run the dashboard&lt;/span&gt;
desto
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;p&gt;You'll need &lt;code&gt;tmux&lt;/code&gt; for session management and optionally &lt;code&gt;at&lt;/code&gt; for scheduling:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Debian/Ubuntu&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install &lt;/span&gt;tmux at

&lt;span class="c"&gt;# Fedora/RHEL&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;dnf &lt;span class="nb"&gt;install &lt;/span&gt;tmux at

&lt;span class="c"&gt;# Arch Linux&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;pacman &lt;span class="nt"&gt;-S&lt;/span&gt; tmux at
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Long-running data processing&lt;/strong&gt;: Monitor ETL pipelines, large dataset transformations, or batch processing jobs that run for hours.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Machine learning workflows&lt;/strong&gt;: Track model training, hyperparameter tuning, or data preprocessing tasks that need to run overnight.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Development automation&lt;/strong&gt;: Manage build processes, test suites, or deployment scripts that take significant time to complete.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;System maintenance&lt;/strong&gt;: Schedule and monitor backup processes, log rotation, system updates, or cleanup tasks.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research computing&lt;/strong&gt;: Keep track of simulations, analysis scripts, or computational experiments that run for extended periods.&lt;/p&gt;

&lt;h2&gt;
  
  
  How It Works
&lt;/h2&gt;

&lt;p&gt;When you start desto, it creates &lt;code&gt;desto_scripts/&lt;/code&gt; and &lt;code&gt;desto_logs/&lt;/code&gt; 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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built This
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Out
&lt;/h2&gt;

&lt;p&gt;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.&lt;/p&gt;

&lt;p&gt;Check it out on &lt;a href="https://github.com/kalfasyan/desto" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; and let me know if you find it useful for your projects.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;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.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tags:&lt;/strong&gt; #tmux #python #bash #productivity #monitoring #backgroundjobs #webdev&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>python</category>
      <category>bash</category>
      <category>tmux</category>
    </item>
  </channel>
</rss>
