โ BACK TO DASHBOARD
๐ HELP & DOCS
๐ฐ News Feeds
What it does: A full-page news aggregator pulling live stories from Reddit, Hacker News, CISA advisories, Krebs on Security, and LWN.net โ filtered and sorted for sysadmins. Available at /news.html or via the ๐ฐ News link in the top navigation.
Category Tabs
Eight feed categories, each pulling from different sources:
- Sysadmin โ r/sysadmin, r/netsec, Hacker News (linux/server/devops/security queries)
- Security โ r/netsec, r/cybersecurity, RSS security advisories
- Linux โ r/linux, LWN.net kernel & distro coverage
- Cloud / DevOps โ r/devops, r/kubernetes, cloud-focused RSS
- Government โ CISA advisories, r/netsec
- Programming โ r/programming, r/Python, r/javascript
- Homelab โ r/homelab, r/selfhosted, r/datahoarder
Story Cards
- Each story shows a score (upvotes/points), colour-coded source badge, subreddit or origin, age, and comment count
- HN orange ยท REDDIT red ยท CISA blue ยท KREBS red ยท LWN green
- A HOT tag appears on high-scoring stories
- Hover any story row to reveal two action buttons: OPEN (opens article in new tab) and COMMENTS (goes straight to the discussion thread)
Toolbar Controls
- โณ REFRESH โ re-fetches all sources for the current category
- Sort dropdown โ order by Top Score, Most Recent, or Most Comments
- Comfy / Compact density toggle โ Comfy shows full metadata and domain; Compact collapses to title + score only for scanning more stories at once
- Load More button at the bottom โ stories load 40 at a time; click to page through the full set
Right Sidebar
- Stats โ live counts of Stories Loaded, Sources Active, Average Score, and Hot Stories in the current feed
- Sources โ toggle switches for each source (Reddit, HN, CISA, Krebs, LWN). Flip a toggle to instantly hide or show that source's stories without reloading โ the Sources Active stat updates immediately
- Trending Tags โ auto-extracted keywords from current story titles. Click any tag to filter the feed to only stories containing that word; click again to clear
- Score Filter โ slider to set a minimum score threshold; drag right to show only high-engagement stories
Typical workflow:
1. Open News โ Security tab
2. Drag the score slider to 50+ to filter noise
3. Disable Reddit toggle to focus on CISA / Krebs advisories
4. Click a Trending Tag like "vulnerability" to narrow further
5. Hover a story โ click OPEN or COMMENTS
๐ก Tip: Reddit feeds are fetched directly from Reddit's public JSON API โ no account needed. Hacker News uses the Algolia search API filtered to tech/sysadmin keywords with 10+ points. Weekly threads and meta posts (e.g. "Moronic Monday") are automatically filtered out.
๐ CIDR Calculator
What it does: Calculates IP address ranges, subnet masks, and network information from CIDR notation.
How to use:
- Enter an IP address with CIDR notation (e.g.,
192.168.1.0/24)
- Click CALCULATE
- View network details: IP range, subnet mask, broadcast address, usable hosts
Example:
Input: 10.0.0.0/8
โ Network: 10.0.0.0 | First: 10.0.0.1 | Last: 10.255.255.254
โ Broadcast: 10.255.255.255 | Usable Hosts: 16,777,214
๐ก Tip: Common CIDR blocks: /24 = 256 IPs, /16 = 65,536 IPs, /8 = 16.7M IPs
โฐ Cron Generator
What it does: Generates cron expressions for scheduling tasks on Linux/Unix systems.
How to use:
- Select timing options from the dropdowns (minute, hour, day, month, day of week)
- Or enter a cron expression to see its human-readable description
- Click GENERATE to create the cron syntax
- Copy the generated expression to your crontab
Examples:
0 2 * * * = Every day at 2:00 AM
*/15 * * * * = Every 15 minutes
0 9 * * 1-5 = Weekdays at 9:00 AM
0 0 1 * * = First day of every month at midnight
๐ก Tip: Use * for "any", */n for "every n", and 1-5 for ranges.
๐ JWT Decoder
What it does: Decodes JSON Web Tokens (JWT) to view header and payload information.
How to use:
- Paste a JWT token into the input field
- Click DECODE
- View the decoded header and payload in JSON format
- Check token expiration and other claims
JWT Format:
eyJhbGc...header.eyJzdWI...payload.SflKxw...signature
๐ก Tip: This tool only DECODES tokens โ no validation or signature verification.
๐ Base64 Encoder/Decoder
What it does: Encodes text to Base64 or decodes Base64 back to plain text.
How to use:
- Enter text or Base64 string in the input field
- Click ENCODE to convert text โ Base64
- Click DECODE to convert Base64 โ text
Text: "Hello World" โ Base64: SGVsbG8gV29ybGQ=
๐ก Tip: Useful for encoding credentials, debugging API responses, or handling binary data.
๐ Hash Generator
What it does: Generates cryptographic hashes (MD5, SHA-1, SHA-256) from text input.
How to use:
- Enter text to hash
- Click GENERATE
- View MD5, SHA-1, and SHA-256 hashes
- Click any hash to copy it
๐ก Tip: Use for file integrity checks, password verification (compare hashes), or debugging.
๐จ Color Converter
What it does: Converts colors between HEX, RGB, and HSL formats.
How to use:
- Enter a color in any format (HEX, RGB, or HSL) or use the color picker
- Click CONVERT
- View all format conversions side by side
- Click RANDOM for a random color
HEX: #FF5733 | RGB: rgb(255, 87, 51) | HSL: hsl(9, 100%, 60%)
๐ Regex Tester
What it does: Tests regular expressions against sample text with live match highlighting, capture group extraction, find-and-replace, and one-click Python export.
How to use:
- Type a pattern in the pattern bar โ matches highlight instantly as you type
- Toggle flags using the chip buttons:
g Global, i Ignore case, m Multiline, s Dotall โ active flags glow in accent blue
- Matches tab: lists every match with position, length, and numbered capture groups
- Highlighted tab: shows the full test string with all matches underlined in a readable semi-transparent highlight
- Replace tab: enter a replacement string (supports
$1, $2 backreferences) and click โถ Replace
- Python Export tab: auto-generates a complete
re module snippet โ copy it or send it directly to the Scratchpad with โ Scratchpad
- Click a Quick Pattern chip to load a preset (email, IPv4, URL, hex color, phone, etc.)
Common patterns:
\d{3}-\d{3}-\d{4} = US phone number
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,} = email
\b(?:\d{1,3}\.){3}\d{1,3}\b = IPv4 address
#[0-9a-fA-F]{6} = hex color code
Python Export example:
import re
pattern = re.compile(r'\d{3}-\d{3}-\d{4}', re.UNICODE)
for m in pattern.finditer(text):
print(f"Match: {m.group()!r} at pos {m.start()}โ{m.end()}")
๐ก Tip: Use the Python Export tab to instantly convert a tested pattern into production-ready code. Send it to the Scratchpad to build up a library of validated patterns.
๐ Chmod Calculator
What it does: Converts Linux file permissions between symbolic notation (rwxr-xr-x) and octal notation (755), and explains what each permission means.
How to use:
- Toggle the checkboxes for Owner, Group, and Others permissions (Read, Write, Execute)
- Or enter an octal value directly (e.g.,
755, 644, 600)
- The tool instantly shows both the octal and symbolic equivalent
- Copy the
chmod command with one click
Common permission sets:
755 โ rwxr-xr-x (owner full, group/others read+execute) โ scripts, binaries
644 โ rw-r--r-- (owner read+write, others read-only) โ config files
600 โ rw------- (owner only, private) โ SSH keys, secrets
777 โ rwxrwxrwx (everyone full access) โ avoid in production
๐ก Tip: SSH private keys should always be chmod 600 or SSH will refuse to use them.
๐ YAML Validator / Formatter
What it does: Validates YAML syntax, formats/pretty-prints YAML, and converts YAML to JSON.
How to use:
- Paste your YAML content into the input field
- Click VALIDATE to check for syntax errors
- Click FORMAT to pretty-print and normalize indentation
- Click TO JSON to convert the YAML to JSON format
- Error messages show line numbers to pinpoint issues quickly
Common YAML pitfalls caught:
โข Tabs instead of spaces (YAML requires spaces)
โข Missing colons after keys
โข Inconsistent indentation levels
โข Unquoted strings with special characters (:, #, &, *)
๐ก Tip: Paste Kubernetes manifests, Docker Compose files, Ansible playbooks, or CI/CD config to validate before deploying.
๐ Curl Builder
What it does: Generates curl commands from a visual form โ choose method, URL, headers, auth, body, and options without memorizing flags.
How to use:
- Enter the target URL
- Select the HTTP method (GET, POST, PUT, PATCH, DELETE, HEAD)
- Add request headers as key-value pairs
- Choose authentication type (None, Bearer Token, Basic Auth, API Key)
- Add a request body for POST/PUT requests (JSON, form data, raw)
- Toggle options: follow redirects (
-L), verbose (-v), insecure (-k), silent (-s)
- Click GENERATE to see the full curl command
- Copy with one click
Example output:
curl -X POST https://api.example.com/v1/users \
-H "Content-Type: application/json" \
-H "Authorization: Bearer eyJhbGci..." \
-d '{"name":"alice","role":"admin"}'
๐ก Tip: Use this when testing REST APIs, webhooks, or debugging HTTP endpoints. The verbose flag (-v) shows request/response headers which is invaluable for debugging auth issues.
๐ Scripts Library
What it does: Provides 50+ ready-to-use Python scripts for common sysadmin tasks.
How to use:
- Click the ๐ SCRIPTS button in the tools section
- Browse by category (ALL, SYSTEM, DOCKER, NETWORK, FILES, SECURITY)
- Use the search box to find specific scripts
- Click ๐ COPY to copy script to clipboard
- Paste into your terminal or save as a .py file
Categories:
- SYSTEM: CPU/memory monitoring, disk space, system info
- DOCKER: Container management, cleanup, resource usage
- NETWORK: Port scanning, DNS lookup, ping tests
- FILES: Find large files, batch rename, duplicate finder
- SECURITY: SSH monitoring, password tools, backups
๐ก Tip: All scripts are production-ready and include error handling. Review before running on production systems.
๐ Python Sandbox
What it does: Runs real Python entirely in your browser using Pyodide (WebAssembly). No server, no installs, no data leaves your machine. Scripts run in a background Web Worker so even infinite loops can't freeze the page.
How to use:
- Click the ๐ SCRIPTS button, then the PYTHON SANDBOX tab
- Write or paste Python code into the editor
- Click โถ RUN CODE โ first run takes a few seconds while Pyodide loads (~10MB), then it's cached and fast
- Output appears in the green terminal panel below
- Click โน KILL SCRIPT to instantly terminate any runaway script
- Click ๐ UPLOAD FILE to load a local file (logs, CSVs, configs) into the sandbox โ then open it with
open('filename') exactly like native Python
Test Scripts
Copy and paste these directly into the editor to verify everything is working.
Test 1 โ Subnet Matcher
Tests the built-in ipaddress module. Checks a list of IPs against a VPC subnet โ a real sysadmin task.
import ipaddress
vpc_subnet = ipaddress.ip_network('10.0.0.0/16')
test_ips = ['10.0.5.12', '192.168.1.5', '10.0.250.99', '172.16.0.1', '10.1.0.5', '8.8.8.8']
print(f"Scanning for IPs inside {vpc_subnet}...\n")
print("-" * 35)
for ip_str in test_ips:
ip = ipaddress.ip_address(ip_str)
if ip in vpc_subnet:
print(f"[MATCH] {ip} belongs to VPC.")
else:
print(f"[IGNORED] {ip} is external.")
Test 2 โ JSON Alert Cruncher
Tests JSON parsing. Simulates taking a raw API response from a monitoring tool and extracting only the servers that need attention.
import json
raw_data = """
{"fleet": [
{"hostname": "web-01", "status": "healthy", "uptime_days": 45},
{"hostname": "db-01", "status": "critical", "uptime_days": 412},
{"hostname": "cache-01", "status": "healthy", "uptime_days": 12},
{"hostname": "web-02", "status": "warning", "uptime_days": 85}
]}
"""
data = json.loads(raw_data)
print("=== SERVER ACTION REPORT ===\n")
for server in data['fleet']:
if server['status'] in ['critical', 'warning']:
print(f"โ ๏ธ ALERT: {server['hostname']} is {server['status'].upper()}")
if server['uptime_days'] > 365:
print(f" -> Note: Hasn't rebooted in over a year ({server['uptime_days']} days).")
Test 3 โ Kill Switch Stress Test
Proves the Web Worker isolation works. Run this, watch it loop, then hit โน KILL SCRIPT. Without the Worker this would permanently freeze the browser tab.
import time
print("Starting an infinite loop...")
print("Hit the red KILL SCRIPT button to stop it!")
print("-" * 40)
counter = 1
while True:
print(f"Loop {counter}: still running...")
counter += 1
time.sleep(0.5)
๐ก Tip: Use ๐ UPLOAD FILE to load real log files, then parse them with open('auth.log'). The file is written into Pyodide's virtual filesystem โ your actual file never leaves your browser.
๐ World Clock
What it does: Displays current time in multiple timezones for managing global teams.
How to use:
- Find the World Clock widget in the right sidebar
- Click [+] to add a timezone โ search by city name
- Or use Quick Add buttons for common cities
- Click [ร] to remove a clock
- ๐ค Export config to save your timezone list as JSON
- ๐ฅ Import config to restore or share with your team
Dallas HQ 02:34 PM CST โ๏ธ
London Team 07:34 PM GMT ๐
Mumbai Dev 01:04 AM IST ๐
๐ก Tip: Export your config and save it somewhere. Import to restore after clearing browser cache.
๐ Scratchpad
What it does: A quick notepad for pasting logs, IP lists, commands, or temporary notes. Auto-saves as you type.
How to use:
- Find the Scratchpad tab in the right sidebar
- Type or paste any text โ content saves automatically
- Click ๐พ DOWNLOAD .TXT to save as a file
- Click ๐ COPY to copy all content to clipboard
- Click ๐๏ธ CLEAR to erase content
๐ก Tip: Content persists across page refreshes but clears when you clear browser cache.
๐ป Command Library
What it does: A searchable, filterable card library of Linux and sysadmin commands โ each with a description, copy-ready example, risk rating, Dashboard send, and a Pipeline Tray for chaining commands together with |. Powered by Fuse.js for fast fuzzy matching.
Search
- Type anything in the search box โ fuzzy matching finds commands by name, description, example, or tag simultaneously
- A match confidence badge (e.g.
94%) appears on each result โ green = strong match, amber = partial
- Matching text is highlighted in yellow across the command name, description, and tags
- Press / anywhere on the page to instantly focus the search box (flashes green to confirm); press Esc to blur it
- The results bar always shows the count: "42 fuzzy matches for 'proc'"
Category Filters
25 colour-coded categories โ click a pill to filter, click again (or click All) to clear. Categories include:
- Core Linux: permissions, disk-management, file-attributes, process-management, system-monitoring, networking, text-processing, compression, shell, storage
- Security & Forensics: security, forensics, cryptography, identity, kernel, ebpf
- Infrastructure: containers, database, automation, cloud, realtime
- Other: hardware, multimedia, scientific, recovery
Command Cards
Each card shows:
- Command name (monospace, green) โ a โ appears after the name once you've clicked it this session
- Risk badge โ three levels:
- โ ๏ธ CRITICAL โ card has a pulsing red border; these commands can cause data loss or system damage
- Medium โ orange left border; use with care
- โ Safe โ read-only or non-destructive
- Category badge โ colour-coded pill (top-right of each card)
- Example command โ flags like
-r, -f, --force are underlined with a dotted line โ hover any flag for a tooltip explaining what it does
- Tags โ keyword chips at the bottom; searching for any tag term surfaces the card
Card Actions
- Copy โ copies the raw example command to clipboard; button flashes โ Copied
- โ Dash โ sends the command directly to the Dashboard Scratchpad via postMessage; button flashes โ Sent
- โ Pipe โ adds the command to the Pipeline Tray (see below); button flashes โ Added
Recently Viewed Bar
- Clicking any card records it in a Recently Viewed strip shown just below the filter bar
- Up to 12 recent commands shown as green chips โ click any chip to instantly jump back to that command (sets search to the command name and scrolls to it)
- History persists across page refreshes via localStorage; click โ Clear to reset it
Pipeline Tray
- Click โ Pipe on any card to add its example to the Pipeline Tray
- The Tray slides up from the bottom of the screen when it has at least one command
- Commands are joined with
| โ building a live shell pipeline as you add more
- Each command in the tray has an ร remove button
- Click ๐ Copy Pipeline to copy the full piped string to clipboard
- Click Clear to empty the tray and collapse it
Pipeline example โ find top memory-consuming processes:
ps aux โ Pipe โ sort -rk 4 โ Pipe โ head -20
Result copied from tray:
ps aux | sort -rk 4 | head -20
Flag tooltip example:
Command: rm -rf /tmp/cache
Hover -r โ tooltip: "Recursive โ delete directories and their contents"
Hover -f โ tooltip: "Force โ no prompts, ignore nonexistent files"
๐ก Tip: Use the Pipeline Tray to build complex one-liners without memorising syntax. Search for each step ("sort", "grep", "awk"), Pipe them in order, then copy the assembled command. Pay attention to red CRITICAL cards โ commands like rm -rf, dd, and mkfs are marked because they are irreversible.
๐ Log Parser
What it does: Parses, filters, and analyses log files from NGINX, Apache, Syslog, Docker/Kubernetes, and JSON structured logs โ live in your browser. Generates ready-to-copy grep, awk, and one-liner shell commands based on your active filters.
How to use:
- Paste log content into the input area, or click an Example chip to load a sample
- The format is auto-detected (NGINX access, Apache error, Syslog, Docker, JSON)
- Use the filter row to narrow results: status code (supports
4xx/5xx patterns), IP address (wildcards supported), URL pattern, HTTP method, text search, and log level
- Click โถ PARSE โ the tool renders stats, a timeline, top IPs, top URLs, and filtered log lines
- The Timeline shows a colour-coded horizontal bar: green = 2xx, amber = 4xx, red = 5xx, blue = info โ hover any marker for details
- The Commands section generates three shell equivalents of your current filters: a
grep chain, an awk field-based command, and an optimised one-liner
- Each command has its own COPY button and a โ Scratchpad button
- Click โ All to Scratchpad to send all three commands plus a filter summary as a structured audit block
- The results panel has a COPY ALL button to copy all filtered log lines as plain text
Filter examples:
Status: 5xx โ shows only server errors
IP: 192.168.* โ wildcard match on a subnet
URL: /api/* โ all API endpoint hits
Method: POST โ write requests only
Generated command example:
grep -E ' (5[0-9]{2}) ' access.log | grep '192\.168\.' | grep '/api/'
๐ก Tip: Use โ All to Scratchpad to capture your exact filter + commands as a timestamped audit entry. Useful for incident response documentation.
โ๏ธ Systemd Service Generator
What it does: Generates production-ready .service files for Linux systemd with a live preview that updates as you type. Covers all three sections: [Unit], [Service], and [Install].
Quick Templates:
- ๐ Web App โ Node.js/Python web server with
www-data user, restart=always, environment variables
- โ๏ธ Background Worker โ Long-running queue processor with
on-failure restart
- ๐ณ Docker Container โ Wraps a Docker container as a systemd unit, depends on
docker.service
- โฐ Timer / Cron Job โ One-shot service for use with a
.timer unit
- ๐๏ธ Database โ Database daemon with
Type=notify and reload signal
- ๐ Blank โ Empty template to fill from scratch
How to use:
- Click a template chip to pre-fill all fields, or start from blank
- Edit any field โ the live preview (right panel) updates instantly with syntax highlighting
- Add environment variables with + Add Variable โ each KEY=value pair appears as an
Environment= line
- Toggle RemainAfterExit for oneshot services that should stay "active" after the command exits
- The Installation Steps box updates the service name live
- Click COPY to copy the file contents, โ Download to save as
name.service, or โ Dashboard to send the full service file + install commands to the Scratchpad
Installation steps (auto-generated):
sudo cp webapp.service /etc/systemd/system/webapp.service
sudo systemctl daemon-reload
sudo systemctl enable webapp
sudo systemctl start webapp
sudo systemctl status webapp
๐ก Tip: Use Type=notify with daemons that support sd_notify() โ systemd will wait for the ready signal before marking the service as active. Use Type=simple for everything else.
๐ DNS Propagation Checker
What it does: Queries 12 global DNS resolvers using DNS-over-HTTPS (DoH) directly from your browser to check whether a DNS record has propagated worldwide. Detects inconsistencies and shows per-server response times.
DNS Servers Queried:
- Cloudflare, Cloudflare Security, Google (ร2), Quad9, OpenDNS, AdGuard, CleanBrowsing, NextDNS, Control D, Mullvad, BlahDNS
Record Types Supported:
- A โ IPv4 address | AAAA โ IPv6 address | CNAME โ alias
- MX โ mail exchange | TXT โ text records (SPF, DKIM, verification) | NS โ nameserver | SOA โ start of authority
How to use:
- Enter a domain (or click an example chip) and select a record type
- Click โถ Check DNS โ the tool queries all 12 resolvers sequentially
- Each server card shows: status badge, resolved value(s), and response time in ms
- Green tint = successfully resolved | Amber tint = different value from majority | Red tint = failed / CORS blocked
- A consistency banner appears when all queries complete: green = fully propagated, amber = inconsistent
- Enable the Auto-refresh toggle to re-query every 30 seconds โ a countdown timer is shown
- Click โ Dashboard to send a structured audit report (domain, record type, grade, per-server table, CLI verification commands) to the Scratchpad
Dashboard audit snippet example:
[DNS PROPAGATION AUDIT] โ 14 Jul 2025, 09:41
Domain: example.com | Type: A | Status: โ Fully propagated
Checked: 12/12 Successful: 4 Failed: 8 Unique results: 1
โโ CLI Verification โโโโโโโโโโโโโโโโโโโโโ
dig @1.1.1.1 example.com A
nslookup -type=A example.com 8.8.8.8
๐ก
Tip: Most resolvers block browser-based DoH queries (CORS). Only Cloudflare reliably responds. Failed cards mean CORS is blocking the query โ
not that your DNS is broken. Use the generated
dig /
nslookup CLI commands for authoritative checking, or visit
WhatsmyDNS.net for server-side verification.
๐ก General Tips
Dark Mode
Click the ๐/๐ button in the top-right corner to toggle between dark and light themes. Your preference is saved automatically and synced across all pages.
Keyboard Shortcuts
- โK / Ctrl+K: Focus the search box on the main dashboard
- โ โ Enter: Navigate search results
- Esc: Close search / close tool panel
Browser Compatibility
Works best in Chrome 80+, Firefox 75+, Safari 13+, Edge 80+.
Privacy
- No tracking or analytics
- No data collection
- All tools run client-side (in your browser)
- Settings stored locally (localStorage)
Data Persistence
Settings (dark mode, world clock, scratchpad) are saved to localStorage. They clear if you clear browser cache, use incognito mode, or switch browsers/devices. Use the World Clock export feature to preserve your timezone list.
โ Still Need Help?
If you encounter issues or have questions not covered here:
- ๐ง Email: [email protected]
- ๐ Report bugs: Include browser version and steps to reproduce
- ๐ก Feature requests: Always welcome!
โ BACK TO DASHBOARD