feat: Add winctl.sh management script and multi-version setup
Add winctl.sh with 12 commands for managing Windows Docker containers:
- start, stop, restart, status, logs, shell, stats
- build, rebuild, list, inspect, monitor, check
- Interactive menus, prerequisites checking, color output
- Support for 22 Windows versions across 4 categories
Multi-version compose structure:
- Split base.yml into base-modern.yml (8G) and base-legacy.yml (2G)
- Add .env.example for configuration
- Update all compose files to use env_file
- Add unique port mappings per version
- Update README with winctl.sh documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:14:45 +00:00
|
|
|
# Changelog
|
|
|
|
|
|
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
|
|
2026-01-30 17:12:14 +00:00
|
|
|
## [1.0.0] - 2026-01-30
|
feat: Add winctl.sh management script and multi-version setup
Add winctl.sh with 12 commands for managing Windows Docker containers:
- start, stop, restart, status, logs, shell, stats
- build, rebuild, list, inspect, monitor, check
- Interactive menus, prerequisites checking, color output
- Support for 22 Windows versions across 4 categories
Multi-version compose structure:
- Split base.yml into base-modern.yml (8G) and base-legacy.yml (2G)
- Add .env.example for configuration
- Update all compose files to use env_file
- Add unique port mappings per version
- Update README with winctl.sh documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:14:45 +00:00
|
|
|
|
|
|
|
|
### Added
|
|
|
|
|
- **winctl.sh**: Management script for Windows Docker containers
|
2026-01-30 17:12:14 +00:00
|
|
|
- 20+ commands: start, stop, restart, status, logs, shell, stats, build, rebuild, list, inspect, monitor, check, refresh, open, pull, disk, snapshot, restore, clean, destroy, instances, cache, help
|
feat: Add winctl.sh management script and multi-version setup
Add winctl.sh with 12 commands for managing Windows Docker containers:
- start, stop, restart, status, logs, shell, stats
- build, rebuild, list, inspect, monitor, check
- Interactive menus, prerequisites checking, color output
- Support for 22 Windows versions across 4 categories
Multi-version compose structure:
- Split base.yml into base-modern.yml (8G) and base-legacy.yml (2G)
- Add .env.example for configuration
- Update all compose files to use env_file
- Add unique port mappings per version
- Update README with winctl.sh documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:14:45 +00:00
|
|
|
- Interactive menus for version selection
|
|
|
|
|
- Prerequisites checking (Docker, Compose, KVM, TUN, memory, disk)
|
|
|
|
|
- Color-coded output with professional table formatting
|
|
|
|
|
- Safety confirmations for destructive operations
|
|
|
|
|
- Support for all 22 Windows versions across 4 categories
|
2026-01-28 23:33:56 +00:00
|
|
|
- JSON status cache (`~/.cache/winctl/status.json`) with auto-refresh
|
2026-01-30 17:12:14 +00:00
|
|
|
- **Multi-instance support**: run multiple instances of the same version
|
|
|
|
|
- `start <version> --new` creates auto-numbered instances with allocated ports
|
|
|
|
|
- `start <version> --new <name>` creates named instances
|
|
|
|
|
- `--clone` copies data from the base version
|
|
|
|
|
- JSON registry (`instances/registry.json`) tracks all instances
|
|
|
|
|
- `instances` lists all registered instances; `destroy` removes them
|
|
|
|
|
- **ISO cache**: skip re-downloading ISOs for new instances
|
|
|
|
|
- `cache download <version>` downloads original ISOs using the container's download logic
|
|
|
|
|
- `cache save <version>` caches from data directory (skips rebuilt ISOs)
|
|
|
|
|
- Auto-restore on `start --new` copies cached ISOs before container starts
|
|
|
|
|
- `cache list` / `cache rm` / `cache flush` for cache management
|
|
|
|
|
- Rebuilt ISOs (genisoimage output) detected and skipped automatically
|
|
|
|
|
- **Auto-cache on stop**: `AUTO_CACHE=Y` in `.env` caches unprocessed ISOs when stopping
|
|
|
|
|
- **Snapshot & restore**: back up and restore VM data directories
|
|
|
|
|
- **Topic-based help system**: `help [commands|instances|cache|examples|config|all]`
|
|
|
|
|
- Interactive numbered menu in terminal mode
|
|
|
|
|
- Auto-disabled in pipes, CI, and batch environments
|
|
|
|
|
- Aligned columns using `_help_row()` with ANSI-safe formatting
|
|
|
|
|
- **ARM64 auto-detection**: blocks unsupported versions, shows `[x86 only]` tags
|
|
|
|
|
- **LAN IP detection** with remote access URLs shown on start
|
|
|
|
|
- **Port conflict detection** before starting containers
|
|
|
|
|
- **Disk usage monitoring** with per-VM and snapshot breakdowns
|
feat: Add winctl.sh management script and multi-version setup
Add winctl.sh with 12 commands for managing Windows Docker containers:
- start, stop, restart, status, logs, shell, stats
- build, rebuild, list, inspect, monitor, check
- Interactive menus, prerequisites checking, color output
- Support for 22 Windows versions across 4 categories
Multi-version compose structure:
- Split base.yml into base-modern.yml (8G) and base-legacy.yml (2G)
- Add .env.example for configuration
- Update all compose files to use env_file
- Add unique port mappings per version
- Update README with winctl.sh documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:14:45 +00:00
|
|
|
- Multi-version compose structure with organized folders (`compose/`)
|
|
|
|
|
- Environment file configuration (`.env` / `.env.example`)
|
|
|
|
|
- Two resource profiles: modern (8G RAM, 4 CPU) and legacy (2G RAM, 2 CPU)
|
|
|
|
|
- Per-version data folders under `data/`
|
|
|
|
|
- Pre-configured compose files for all Windows versions:
|
|
|
|
|
- Desktop: Win 11, 10, 8.1, 7 (with Enterprise variants)
|
|
|
|
|
- Legacy: Vista, XP, 2000
|
|
|
|
|
- Server: 2003, 2008, 2012, 2016, 2019, 2022, 2025
|
|
|
|
|
- Tiny: Tiny11, Tiny10
|
|
|
|
|
- Unique port mappings for each version (no conflicts)
|
|
|
|
|
- CLAUDE.md for Claude Code guidance
|
2026-01-30 17:12:14 +00:00
|
|
|
- WINCTL_GUIDE.md comprehensive user guide
|
feat: Add winctl.sh management script and multi-version setup
Add winctl.sh with 12 commands for managing Windows Docker containers:
- start, stop, restart, status, logs, shell, stats
- build, rebuild, list, inspect, monitor, check
- Interactive menus, prerequisites checking, color output
- Support for 22 Windows versions across 4 categories
Multi-version compose structure:
- Split base.yml into base-modern.yml (8G) and base-legacy.yml (2G)
- Add .env.example for configuration
- Update all compose files to use env_file
- Add unique port mappings per version
- Update README with winctl.sh documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:14:45 +00:00
|
|
|
|
|
|
|
|
### Changed
|
|
|
|
|
- Default storage location changed from `./windows` to `./data/`
|
|
|
|
|
- Compose files now use `env_file` for centralized configuration
|
2026-01-30 17:12:14 +00:00
|
|
|
- Restart policy changed from `always` to `on-failure`
|
|
|
|
|
- `clean --data` now unregisters instances and removes compose files
|
feat: Add winctl.sh management script and multi-version setup
Add winctl.sh with 12 commands for managing Windows Docker containers:
- start, stop, restart, status, logs, shell, stats
- build, rebuild, list, inspect, monitor, check
- Interactive menus, prerequisites checking, color output
- Support for 22 Windows versions across 4 categories
Multi-version compose structure:
- Split base.yml into base-modern.yml (8G) and base-legacy.yml (2G)
- Add .env.example for configuration
- Update all compose files to use env_file
- Add unique port mappings per version
- Update README with winctl.sh documentation
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 23:14:45 +00:00
|
|
|
|
|
|
|
|
### Resource Profiles
|
|
|
|
|
|
|
|
|
|
| Profile | RAM | CPU | Disk | Used By |
|
|
|
|
|
|---------|-----|-----|------|---------|
|
|
|
|
|
| Modern | 8G | 4 | 128G | Win 10/11, Server 2016+ |
|
|
|
|
|
| Legacy | 2G | 2 | 32G | Win 7/8, Vista, XP, 2000, Server 2003-2012, Tiny |
|