DEV Community

Stephano Kambeta
Stephano Kambeta

Posted on

Project: Create a Mini Web Dashboard on Termux

Imagine turning your Android phone into a portable web server that hosts a personalized dashboard — where you can monitor system resources, manage scripts, or even interact with APIs on the fly. That’s exactly what we’ll build today: a mini web dashboard in Termux.

Whether you’re into penetration testing, ethical hacking, or just want a lightweight server for your small projects, this project is beginner-friendly yet powerful enough to grow with your skills. Plus, you can extend it to integrate with tools like Ngrok for remote access or even automate incident logs like the ones used by cyber incident response companies.


Why Build a Dashboard in Termux?

  • Portability: Your dashboard lives on your phone — perfect for quick tests or mobile deployments.
  • Learning: Gain hands-on experience with lightweight servers and APIs.
  • Integration: Link it to tools like Netcat, Nmap, or Ngrok.
  • Security practice: Experiment with authentication and security measures in a safe environment.

Step 1: Set Up Termux Properly

If you haven’t done it yet, follow our guide on installing Termux and post-installation steps. These steps ensure your Termux is up-to-date and ready for development.


pkg update && pkg upgrade -y
pkg install python nodejs git nano -y

Step 2: Choose Your Web Server Framework

For this project, we’ll use Python’s Flask because it’s lightweight and beginner-friendly. You can also try Node.js with Express if you prefer JavaScript.


pip install flask

If you plan to make your dashboard public, consider pairing it with Ngrok for secure tunneling.


Step 3: Build the Dashboard Script

Create a file named dashboard.py:


nano dashboard.py

Paste the following starter code:


from flask import Flask, render_template_string
import os

app = Flask(__name__)

@app.route('/')
def home():
    cpu_info = os.popen("top -n 1 | grep 'CPU'").read()
    disk_info = os.popen("df -h /").read()
    return render_template_string('''
    <h2>Termux Mini Dashboard</h2>
    <p><b>CPU Info:</b></p>
    <pre>{{cpu}}</pre>
    <p><b>Disk Usage:</b></p>
    <pre>{{disk}}</pre>
    ''', cpu=cpu_info, disk=disk_info)

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8080)

Save and run it:


python dashboard.py

Now open http://127.0.0.1:8080 in your phone browser — boom! Your Termux dashboard is live.


Step 4: Add Features

Once your basic dashboard is running, you can extend it:

  • Monitor Wi-Fi status or even integrate with tools like WiFi Honey.
  • Trigger scripts for scans, such as Nmap network scans.
  • Track logs for pentesting tasks.
  • Integrate API keys for weather, cryptocurrency, or vulnerability feeds.

Step 5: Secure Your Dashboard

A dashboard without security is like a house without a door. Even if you’re just testing, basic security is crucial.

If you’re serious about security, check out frameworks like NIST CSF or NIS2 compliance to guide your design.


Extra Ideas for Your Dashboard


Common Pitfalls & Fixes

  • Port not accessible? Make sure no other process is using port 8080 or change the port in the script.
  • Dashboard not loading externally? Use Ngrok for tunneling.
  • Slow updates? Optimize system calls and cache frequently used data.

Final Thoughts

Building a mini web dashboard on Termux isn’t just about displaying system info — it’s about creating a foundation for automation, monitoring, and experimentation. From learning to manage lightweight servers to securing your environment like computer security pros, this project sets the stage for deeper exploration.

Once you’re comfortable with the basics, integrate your dashboard into more advanced cybersecurity workflows, or even create a personal command center to control IoT devices or automate tasks. The possibilities are endless.

Have you tried building a Termux dashboard? Share your experiences and improvements — I’d love to hear how you’ve expanded this project.

Top comments (0)