STACIO WIKI · Operations Guide

Stacio Remote Operations Guide

Applicable version: Stacio 0.14.x
Updated: 2026-07-25
Audience: developers, operators, and SREs who inspect hosts, troubleshoot faults, validate changes, and respond to incidents with Stacio

1. Operating principles

Stacio provides terminals, the device dashboard, files, tunnels, diagnostics, and Agent capabilities. It does not replace organizational authorization, monitoring platforms, backup systems, or change approval. Follow this order for remote work:

Confirm target -> Read-only baseline -> Assess impact -> Prepare backup and rollback
-> Minimum change -> Targeted validation -> Record outcome -> Restore if needed

Before you start, confirm:

1.1 Confirm a target with IP, hostname, and port

Do not identify a target from its session name alone. Compare the endpoint configured in Stacio with identity information returned by the remote shell:

Stacio connection endpoint Typical meaning Also verify
root@192.168.1.20:22 Direct SSH to a LAN IPv4 address on the default port hostname, account, environment, and asset record.
deploy@192.168.1.20:2222 A custom port or NAT mapping on the same IP Which host the mapped port actually reaches.
admin@server.example.com:22 Connection through a DNS name Current resolved IP, load-balancing, or address-switch policy.

Saved sessions hold Host and Port in separate UI fields; the table only combines them into an endpoint for review. Identical hostname output does not prove the entry endpoint is identical, and identical IPs do not make port differences irrelevant. For a hostname, an incident record should retain configured hostname, resolved IP at the time, and port. For an IP, verify it has not been reassigned through DHCP, cloud resource reuse, or changed NAT rules.

2. Build a reliable operations workspace

2.1 Mark sessions

In New/Edit Session > Automation, set:

Production sessions must be explicitly marked Production. The mark participates in MultiExec and AI/Agent confirmation policy; writing prod in a name is not equivalent to a production environment policy.

2.2 Splits and context

Splits are useful to view at the same time:

Click the intended pane before opening Files, Dashboard, or AI so the right-side capability binds to the right terminal. Splits do not synchronize input; synchronized input requires explicitly entering MultiExec.

2.3 Terminal readability

Consider these settings in Settings > Terminal for operational work:

3. Device Dashboard

3.1 Open it

  1. Select a connected SSH tab.
  2. Choose View > Show/Hide Device Dashboard or the Device Dashboard toolbar control.
  3. Wait for at least two sample intervals; CPU and rate metrics normally need two samples to calculate.

The dashboard is a License-controlled advanced capability.

3.2 Metric coverage

Module Visible information Interpretation focus
System Hostname, operating system, architecture, and more First confirm that this is the expected asset.
CPU Total use, cores, model, and per-core use A momentary high value is not sustained pressure; use multiple samples and process evidence.
Memory Used, total, and utilization Also inspect available, swap, and OOM records.
Network Receive and send rate per interface Exclude loopback, container, and virtual interfaces before judging business traffic.
Disk Capacity and use per mount point Inspect inodes too; healthy space does not imply healthy inodes.
Disk I/O Read and write rates Rates are samples; combine them with latency, queues, and workload.

3.3 Compatibility and refresh settings

In Settings > Dashboard, configure:

For cross-region, low-performance, or BusyBox hosts, increase the refresh interval to avoid probes hurting interaction. Alerts appear only after configured conditions occur continuously. macOS notifications are hints, not a replacement for centralized monitoring.

3.4 Linux probe boundaries

The dashboard currently prefers /proc/stat, /proc/meminfo, /proc/net/dev, /proc/mounts, and compatible df output, targeting Linux environments such as CentOS/RHEL, Rocky, Alma, Fedora, Ubuntu, Debian, Alpine/BusyBox, and openSUSE.

Only partial metrics may appear when:

4. Host resource inspection runbook

The following examples are read-only and target common Linux systems. Confirm the commands exist and avoid running expensive sampling across many hosts at once.

4.1 Identity and system

date -Is
hostname
whoami
uname -a
uptime

Record time, hostname, user, kernel, and load first, so evidence can be tied to the actual host.

4.2 CPU and processes

uptime
top -b -n 1 | head -40
ps -eo pid,ppid,user,stat,%cpu,%mem,etime,comm,args --sort=-%cpu | head -25

Distinguish:

4.3 Memory and swap

free -h
ps -eo pid,user,rss,vsz,%mem,etime,comm,args --sort=-rss | head -25

Prioritize available memory rather than free memory alone. Used swap is not necessarily current pressure; combine it with page activity, OOM logs, and application latency.

4.4 Disk and inodes

df -hT
df -ih

To locate a large directory, first constrain the command to a known filesystem and directory rather than scanning / without bounds:

du -xhd1 /var 2>/dev/null | sort -h

Do not run an unrestricted whole-disk du until mount points, workload peak, and directory size are understood.

4.5 Ports and network

ip -brief address 2>/dev/null || ifconfig
ip route 2>/dev/null || netstat -rn
ss -lntup 2>/dev/null || netstat -lnt

Diagnostics > Port Check can quickly test host and port. To test 192.168.1.20:2222, enter host 192.168.1.20 and port 2222 separately; for a hostname, enter server.example.com and its port. A reachable port proves TCP reachability only, not protocol authentication or application health.

5. Service-unavailable runbook

5.1 Gather read-only evidence first

systemctl status <service> --no-pager
journalctl -u <service> --since '30 minutes ago' --no-pager | tail -200
ss -lntp
curl -fsS -D- --max-time 10 http://127.0.0.1:<port>/<health-path>

Before replacing placeholders, confirm the service manager, port, and health path. Use the corresponding service tools for non-systemd systems.

5.2 Build the failure chain

Validate each layer in order:

IP or hostname resolution -> routing/NAT/load balancer -> listening port -> process/container
-> application health -> database/cache -> upstream and downstream dependencies

Do not claim the business is restored merely because a process is running, and do not restart a service just because an external request failed.

5.3 Gate before a change

Before changing configuration, restarting, rolling back, or deploying, confirm:

6. File and transfer failure runbook

6.1 A directory will not open

  1. Confirm Files is bound to the right SSH, SFTP, or FTP session.
  2. Run pwd and a read-only directory check in the terminal to confirm account permission.
  3. Check whether the path was deleted, renamed, or contains unusual characters.
  4. Refresh the directory; if it still fails, open View > Diagnostics.

6.2 Transfer failure

State or error Check
Authentication failed Session user, credential reference, private key, and host key.
Connection timed out Network, VPN, jump host, service port, and connection state.
Permission denied Remote directory permissions, file owner, and local target-directory permission.
Disk full Remote and local df -h, inodes, and quota.
File size differs Network interruption, server changes, resume support, and conflict policy.
Remote file changed The Remote Edit cache is behind; reopen and merge instead of force-overwriting.

Use the transfer queue to inspect job ID, direction, source, target, progress, diagnostics, and logs. Pause/resume or resume-transfer availability depends on protocol and server support.

7. Tunnel failure runbook

  1. Confirm the License and SSH/SFTP/SCP endpoint are available.
  2. For Local or Dynamic tunnels, check that the local port is free.
  3. Verify separately: Mac to SSH endpoint, SSH endpoint to target, and client to local listener.
  4. For Remote tunnels, also check server support for remote forwarding and external binding.
  5. Review the tunnel row's state, detail, access count, active connections, and inbound/outbound bytes.
  6. When automatic reconnect keeps failing, stop it manually, correct network or credentials, then start again.

See Tunnels for complete fields and examples.

8. Diagnostics panel

Choose View > Diagnostics to view or run:

Diagnostic bundles redact data and are limited by audit-count, log-line, and Include Application Logs settings in Settings > Security. Preview before exporting, especially hostnames, business paths, request content, and log snippets.

9. Operations with AI and local Agent

Stacio provides two working modes:

Mode Best for Execution boundary
Troubleshooting assistant Step-by-step diagnosis, command cards, structured conclusions Stacio orchestrates it with risk, approval, backup, and validation gates.
Local Agent Complex work with Codex, Claude, OpenCode, Qwen Code, and similar tools It operates selected terminals through Agent Bridge; planning still depends on the third-party Agent's implementation and instruction following.

Before using either mode:

  1. Check the current target terminal and remote directory.
  2. Prefer read-only checks and explicit evidence.
  3. Use Confirm Each Command, or at least Read-only Automatic, in production.
  4. For changes, require backup location, validation outcome, and rollback method in the result.
  5. Report each failed target separately; never present partial success as complete success.

See Agent Capabilities and Security for the full Agent boundary.

10. Changes, validation, and rollback

10.1 General change checklist

  1. Record pre-change version, configuration summary, service state, and health outcome.
  2. Create a timestamped backup that does not overwrite history.
  3. Verify the backup exists, is readable, and has a reasonable size; use native backup tools for databases where available.
  4. Change only the minimum scope directly related to the fault or request.
  5. Run a configuration-syntax or dry-run check first.
  6. After applying a change, validate process, port, logs, health endpoint, and business request.
  7. Compare important values before and after the change.
  8. Stop expanding a failed change and restore according to the plan.
  9. Run read-only validation again after rollback.

10.2 Completion standard

Do not announce a fix when any of these is missing:

11. Incident response checklist

11.1 When you discover an anomaly

  1. Confirm target, time, and affected scope.
  2. Pause automation, MultiExec, or further changes.
  3. Preserve current terminal, log, metric, and audit evidence.
  4. Decide whether an account, host, tunnel, or credential needs isolation.
  5. Notify the relevant service, network, security, or database owner.
  6. Contain and recover after approval.
  7. Validate business recovery and continue observation.

11.2 Escalation material

At minimum, give the next responder:

Do not attach passwords, tokens, private keys, private-key passphrases, full environment variables, or unnecessary customer data.

12. Operations alert reference

Alert Suggested severity First response
Host unreachable High when production traffic is affected Verify configured IP/hostname, separate port field, VPN, DNS, routing, NAT, and SSH listening.
Sustained high CPU Medium to high Sample multiple times, locate by process and wait type, and do not restart blindly.
Sustained low available memory or OOM High Check available, swap, OOM logs, and RSS ranking.
Disk or inode near full High Confirm mount point, growth source, retention policy, and authorization for expansion or cleanup.
File transfers repeatedly fail Medium Separate authentication, network, permission, capacity, and remote-change causes.
SSH host key changed High security risk Stop connecting and verify through an independent channel.
Tunnel reconnects repeatedly Medium to high Stop automatic retry and check SSH endpoint, credentials, and both network segments.
This page is part of the English Stacio Wiki.