cloudworkstation

module
v0.5.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 19, 2025 License: MIT

README ΒΆ

CloudWorkstation

CloudWorkstation Logo

Academic Research Computing Platform - Pre-configured cloud environments in seconds

GitHub release (latest by date) License Go Report Card ESLint

What is CloudWorkstation?

CloudWorkstation provides researchers with pre-configured cloud workstations for data analysis, machine learning, and computational research. Launch production-ready environments in seconds, not hours.

From individual researchers to institutional deployments - research computing made simple, scalable, and cost-effective.

🎯 Core Design Principles

  • 🎯 Default to Success: Every template works out of the box in every supported region
  • ⚑ Optimize by Default: Smart instance sizing and cost-performance optimization
  • πŸ” Transparent Fallbacks: Clear communication when configurations change
  • πŸ’‘ Helpful Warnings: Gentle guidance for optimal choices
  • 🚫 Zero Surprises: Users always know what they're getting
  • πŸ“ˆ Progressive Disclosure: Simple by default, detailed when needed

πŸš€ Installation

macOS

Homebrew (Recommended)

brew install scttfrdmn/tap/cloudworkstation

Manual Installation

# Download and extract
curl -L https://github.com/scttfrdmn/cloudworkstation/releases/latest/download/cloudworkstation_0.5.4_darwin_arm64.tar.gz | tar xz

# Install binaries
sudo mv cws cwsd /usr/local/bin/
Linux

Debian/Ubuntu

wget https://github.com/scttfrdmn/cloudworkstation/releases/download/v0.5.4/cloudworkstation_0.5.4_linux_amd64.deb
sudo dpkg -i cloudworkstation_0.5.4_linux_amd64.deb

RHEL/CentOS/Fedora

wget https://github.com/scttfrdmn/cloudworkstation/releases/download/v0.5.4/cloudworkstation_0.5.4_linux_amd64.rpm
sudo rpm -i cloudworkstation_0.5.4_linux_amd64.rpm

Alpine Linux

wget https://github.com/scttfrdmn/cloudworkstation/releases/download/v0.5.4/cloudworkstation_0.5.4_linux_amd64.apk
sudo apk add --allow-untrusted cloudworkstation_0.5.4_linux_amd64.apk
Windows

Scoop

scoop bucket add scttfrdmn https://github.com/scttfrdmn/scoop-bucket
scoop install cloudworkstation

Manual Installation

# Download from GitHub releases
# https://github.com/scttfrdmn/cloudworkstation/releases/latest
# Extract and add to PATH

πŸš€ Quick Start

1. Configure AWS Credentials
# If you already have AWS CLI configured, skip to step 2
aws configure

CloudWorkstation automatically discovers credentials from:

  • Environment variables (AWS_PROFILE, AWS_ACCESS_KEY_ID)
  • AWS CLI configuration (~/.aws/credentials)
  • CloudWorkstation profiles (for multi-account management)
2. Launch Your First Workstation
# View available templates
cws templates

# Launch a Python ML environment
cws launch python-ml my-research

# Connect via SSH
cws connect my-research

# View running instances
cws list

What happens automatically:

  • βœ… Daemon starts if not running
  • βœ… Optimal instance type selected
  • βœ… Security groups configured
  • βœ… SSH keys generated and managed
  • βœ… Template provisioned and ready

🌟 Key Features

πŸ’° Cost Optimization
  • Hibernation: Preserve state while reducing costs by 90%
  • Idle Detection: Automated hibernation policies with configurable thresholds
  • Budget Management: Project-level cost tracking and alerts
  • Cost Analytics: Real-time spending reports and forecasts
πŸ—οΈ Research Templates
  • 21+ Pre-configured Environments: Python ML, R, bioinformatics, web dev, and more
  • Template Inheritance: Compose complex environments from simple building blocks
  • Smart Defaults: Optimal instance sizing and cost-performance ratios
  • Regional Fallbacks: Automatic handling of availability constraints
🏒 Enterprise & Collaboration
  • Project-Based Organization: Multi-user projects with role-based access
  • Research User System: Persistent identities across instances
  • Multi-Account Support: Manage multiple AWS profiles seamlessly
  • Template Marketplace: Share and discover community templates
πŸ“± Multi-Modal Access
  • CLI: Fast, scriptable command-line interface
  • TUI: Interactive terminal interface with keyboard navigation
  • GUI: Desktop application (available when building from source)
  • REST API: Complete HTTP API on port 8947

πŸ“¦ Example Templates

CloudWorkstation includes 21+ pre-configured templates for research computing:

  • Python ML: Jupyter, scikit-learn, TensorFlow, PyTorch
  • R Research: RStudio, tidyverse, Bioconductor
  • Bioinformatics: BLAST, bowtie2, samtools, bedtools
  • Web Development: Node.js, Docker, nginx
  • Deep Learning: GPU-optimized environments with CUDA
# View all templates
cws templates

# Get detailed template info
cws templates info python-ml

πŸ’» Usage Examples

Basic Instance Management
# Launch an instance
cws launch python-ml my-project

# List running instances
cws list

# Connect via SSH
cws connect my-project

# Stop instance
cws stop my-project
Cost Optimization
# Hibernate to preserve state while saving costs
cws hibernate my-instance
cws resume my-instance

# Automated idle policies
cws idle profile list
cws idle instance my-gpu --profile gpu
Project Management
# Create project with budget
cws project create ml-research --budget 500

# Add team members
cws project member add ml-research user@example.com --role member

# Launch instance in project
cws launch python-ml analysis --project ml-research
Multi-Modal Access
# Command line
cws templates

# Terminal UI
cws tui

# REST API
curl http://localhost:8947/api/v1/instances

πŸ“– Documentation

cws --help                      # Show all commands
cws templates                   # List available templates
cws templates info <template>   # Detailed template info
cws doctor                      # System health check

Guides:

πŸ—“οΈ Version History

v0.5.4 (Current) - Universal Version System
  • Dynamic OS Versions: Choose OS versions at launch time with --version flag
  • Version Aliases: Support for latest, lts, previous-lts
  • AMI Freshness Checking: cws ami check-freshness validates static AMI IDs
  • AWS SSM Integration: Automatic latest AMI discovery for major distributions
  • Package Management: Available via Homebrew (macOS), Scoop (Windows), deb, rpm, apk
v0.5.3 - Research User System & Template Marketplace
  • Multi-User Architecture: Persistent research identities across instances
  • SSH Key Management: Complete key generation and distribution
  • Template Registry: Multi-registry support with community templates
  • Policy Framework: Institutional governance and access control
v0.4.5 - Enterprise Research Platform
  • Project-Based Organization: Multi-user projects with role-based access
  • Budget Management: Real-time cost tracking and automated controls
  • Hibernation Ecosystem: Manual + automated idle detection policies
  • Template Inheritance: Stackable template system

πŸš€ Roadmap

Phase 5 (Current): Multi-user collaboration and template marketplace Phase 6: Advanced storage (FSx, S3 integration) and AWS research services Phase 7: Enterprise authentication (OAuth, LDAP, SAML) and TUI enhancements

🀝 Contributing

CloudWorkstation is open source and welcomes contributions!

  • Issues: Report bugs or request features
  • Pull Requests: Submit code improvements
  • Templates: Contribute research environment templates
  • Documentation: Help improve guides

Development:

git clone https://github.com/scttfrdmn/cloudworkstation.git
cd cloudworkstation
make build
make test

πŸ“„ License

MIT License - Free for academic and commercial use

πŸ†˜ Support


CloudWorkstation v0.5.4 - Pre-configured cloud environments for research computing

Directories ΒΆ

Path Synopsis
cmd
cws command
CloudWorkstation CLI client (cws) - Launch research computing environments.
CloudWorkstation CLI client (cws) - Launch research computing environments.
cwsd command
CloudWorkstation Daemon (cwsd) - Background service for AWS operations.
CloudWorkstation Daemon (cwsd) - Background service for AWS operations.
cwsd-service command
internal
cli
Package cli implements admin commands for CloudWorkstation CLI.
Package cli implements admin commands for CloudWorkstation CLI.
tui
Package tui provides the terminal user interface for CloudWorkstation.
Package tui provides the terminal user interface for CloudWorkstation.
tui/api
Package api provides an API client for the TUI.
Package api provides an API client for the TUI.
tui/models
Package models contains the models for the TUI components.
Package models contains the models for the TUI components.
pkg
ami
Package ami provides CloudWorkstation's AMI creation system.
Package ami provides CloudWorkstation's AMI creation system.
api/client
Package client provides the CloudWorkstation API client implementation
Package client provides the CloudWorkstation API client implementation
api/mock
Package mock provides mock implementations for CloudWorkstation API.
Package mock provides mock implementations for CloudWorkstation API.
aws
Package aws provides AMI caching functionality for the Universal AMI System
Package aws provides AMI caching functionality for the Universal AMI System
cost
Package cost provides advanced cost optimization and alerting features
Package cost provides advanced cost optimization and alerting features
daemon
AMI operations handlers for Universal AMI System (Phase 5.1 Week 2)
AMI operations handlers for Universal AMI System (Phase 5.1 Week 2)
idle
Package idle provides advanced idle detection and policy management
Package idle provides advanced idle detection and policy management
marketplace
Package marketplace provides the marketplace registry implementation
Package marketplace provides the marketplace registry implementation
profile
Package profile provides functionality for managing CloudWorkstation profiles
Package profile provides functionality for managing CloudWorkstation profiles
profile/export
Package export provides functionality for exporting and importing CloudWorkstation profiles.
Package export provides functionality for exporting and importing CloudWorkstation profiles.
profile/security
Package security provides comprehensive audit logging for security events
Package security provides comprehensive audit logging for security events
project
Package project provides project and budget management functionality for CloudWorkstation.
Package project provides project and budget management functionality for CloudWorkstation.
repository
Package repository provides multi-repository support for CloudWorkstation templates.
Package repository provides multi-repository support for CloudWorkstation templates.
research
Package research provides the multi-user foundation for CloudWorkstation Phase 5A.
Package research provides the multi-user foundation for CloudWorkstation Phase 5A.
security
Package security provides AWS Artifact compliance validation and SCP enforcement
Package security provides AWS Artifact compliance validation and SCP enforcement
state
Package state provides unified state management for CloudWorkstation.
Package state provides unified state management for CloudWorkstation.
storage
Package storage provides advanced storage integration for CloudWorkstation.
Package storage provides advanced storage integration for CloudWorkstation.
templates
Package templates provides AMI configuration validation for the Universal AMI System
Package templates provides AMI configuration validation for the Universal AMI System
types
Package types provides AMI-related data structures for the Universal AMI System
Package types provides AMI-related data structures for the Universal AMI System
version
Package version provides centralized version information for CloudWorkstation.
Package version provides centralized version information for CloudWorkstation.
web
Package web provides web interface and proxy capabilities for CloudWorkstation
Package web provides web interface and proxy capabilities for CloudWorkstation

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL