Quick Start Guide¶
Get up and running with Substation in 1 minute.
Installation¶
Choose the installation method that works best for you:
Option 1: Docker (Easiest)¶
docker run --volume ~/.config/openstack:/root/.config/openstack \
--interactive \
--tty \
--env TERM \
--rm \
ghcr.io/cloudnull/substation/substation:latest
Option 2: Pre-built Binary¶
curl -L "https://github.com/cloudnull/substation/releases/latest/download/substation-$(uname -s)-$(uname -m)" -o substation
chmod +x substation
sudo mv substation /usr/local/bin/
Option 3: Build from Source (requires Swift 6.1)¶
git clone https://github.com/cloudnull/substation.git
cd substation
~/.swiftly/bin/swift build -c release
.build/release/substation
For detailed installation instructions including prerequisites, verification, and troubleshooting, see the Installation Guide.
Configuration¶
1. Create clouds.yaml¶
mkdir -p ~/.config/openstack
cat > ~/.config/openstack/clouds.yaml << 'EOF'
clouds:
mycloud:
auth:
auth_url: https://keystone.example.com:5000/v3
username: operator
password: secret
project_name: operations
project_domain_name: default
user_domain_name: default
region_name: RegionOne
EOF
chmod 600 ~/.config/openstack/clouds.yaml
2. Test Connection¶
For detailed configuration including authentication methods, multiple clouds, and advanced options, see the Configuration Guide.
First Steps¶
Learning Command Input (Primary Navigation)¶
Substation uses command input as the primary navigation method. Press : to enter command input, then type your command.
First Command:
: Press colon to enter command input
: <Tab> Press Tab to see all available commands
: servers<Enter> Type "servers" and press Enter to navigate
Command Discovery:
- Press
:to enter command input - Press
Tabto see all available commands - Start typing (e.g.,
serv) and pressTabto auto-complete - Press
Enterto execute the command - Press
Escto cancel
Why Command Input?
- Discoverable: Tab completion shows all options
- Forgiving: Fuzzy matching handles typos (
:servrssuggests:servers) - Progressive: Learn full names first, then shortcuts (
:servers->:srv->:s) - Context-Aware: Commands like
:createadapt to your current view
Navigation Basics¶
Use command input for all navigation:
| Command | Aliases | Action |
|---|---|---|
:dashboard |
:dash, :d |
Dashboard (start here) |
:servers |
:srv, :s |
View Servers |
:networks |
:net, :n |
View Networks |
:volumes |
:vol, :v |
View Volumes |
:help |
:? |
Show Help |
:quit |
:exit, :q |
Quit |
Common Operations¶
View Resources:
- Enter command input:
: - Navigate to servers:
servers<Enter>(or pressTabto see all views) - Use
Up/Downto navigate - Press
Spacefor details - Press
Escto go back
Search Resources:
- Press
/for quick local search (within current view) - Type your query
- Press
Escto clear
Or use advanced search:
:search<Enter>(or:find<Enter>or:z<Enter>)- Type your query
- Press
Enterto search across all services
Refresh Data:
- Refresh view:
:refresh<Enter>(or:reload<Enter>) - Purge cache:
:cache-purge<Enter>(or:clear-cache<Enter>or:cc<Enter>)
Essential Commands¶
Navigation Commands¶
| Command | Aliases | Description |
|---|---|---|
:dashboard |
:dash, :d |
Dashboard overview |
:servers |
:srv, :s, :nova |
Servers (compute instances) |
:networks |
:net, :n, :neutron |
Networks |
:subnets |
:sub, :u |
Subnets |
:routers |
:rtr, :r |
Routers |
:ports |
:port, :p |
Network ports |
:floatingips |
:fips, :fip, :l |
Floating IPs |
:securitygroups |
:secgroups, :sec, :e |
Security groups |
:volumes |
:vol, :v, :cinder |
Volumes (block storage) |
:images |
:img, :i, :glance |
Images |
:flavors |
:flav, :f |
Flavors (instance sizes) |
:keypairs |
:keys, :kp, :k |
SSH keypairs |
:servergroups |
:srvgrp, :sg, :g |
Server groups (affinity) |
:swift |
:objectstorage, :obj, :j |
Object storage |
:barbican |
:secrets, :b |
Secrets management |
:health |
:healthdashboard, :h |
Health dashboard |
:performance |
:metrics, :perf, :stats |
Performance metrics |
Action Commands (Context-Aware)¶
| Command | Aliases | Action | Context |
|---|---|---|---|
:create |
:new, :add |
Create resource | All resource lists |
:delete |
:remove, :rm |
Delete selected | All resources |
:start |
:boot |
Start server | Server view |
:stop |
:shutdown |
Stop server | Server view |
:restart |
:reboot |
Restart server | Server view |
:refresh |
:reload |
Refresh view | All views |
:cache-purge |
:clear-cache, :cc |
Purge all caches | All views |
:reload-all |
- | Reload all modules | All views (advanced) |
Global Actions¶
| Key | Command Equivalent | Action |
|---|---|---|
Up/Down |
- | Navigate lists |
Space |
- | View details |
/ |
- | Local search |
? |
:help |
Context help |
Esc |
- | Go back/Cancel |
Common Workflows¶
List Your Servers¶
- Launch Substation:
substation --cloud mycloud - Enter command input:
: - Navigate:
servers<Enter>(orsrv<Enter>ors<Enter>) - Use
Up/Downto navigate - Press
Spacefor server details
Create a Resource¶
- Navigate to view:
:servers<Enter> - Create resource:
:create<Enter> - Fill in form fields
- Submit with
Enter
Search Across Services¶
- Open search:
:search<Enter>(or:find<Enter>or:z<Enter>) - Type your query (e.g., "prod")
- Press
Enter - Results from all services appear
Refresh Data¶
- Refresh view:
:refresh<Enter> - Or purge cache:
:cache-purge<Enter>(or:cc<Enter>)
Troubleshooting¶
Connection Issues¶
Problem: Can't connect to OpenStack
Solution: Verify auth_url includes /v3:
# Correct
auth_url: https://keystone.example.com:5000/v3 [OK]
# Wrong
auth_url: https://keystone.example.com:5000 [X]
Slow Performance¶
Problem: Everything is slow
Solution: Enable wiretap to diagnose:
Stale Data¶
Problem: Resources not showing up
Solution: :cache-purge<Enter> to purge cache, then :refresh<Enter> to reload
Next Steps¶
- Installation Guide - Detailed installation options and troubleshooting
- Configuration Guide - Advanced clouds.yaml setup and authentication
- Getting Started - Learn the concepts and first steps
- Navigation Guide - Master all keyboard shortcuts
- Common Workflows - Learn everyday operations
- Troubleshooting - Detailed problem solving