Garage Installer - Future Development
β Back to Main README
This document tracks planned improvements, bug fixes, and future development for the Garage Installer project.
Status Legend
- π― In Progress - Currently being worked on
- π Planned - Scheduled for next release
- π‘ Proposed - Under consideration
- β
Completed - Implemented (for reference)
π― In Progress
Code Quality & Testing
π Planned for Next Release (v0.2)
Bug Fixes & Improvements
High Priority
Medium Priority
Features
π‘ Future Roadmap (v0.3+)
Major Features
Enhancements
Developer Experience
β
Completed (For Reference)
These items were initially flagged as issues but have been implemented:
- β
Docker permissions handling (#1)
- User must be in docker group before running installer
- Clear error messages if docker access is not available
- File:
src/checks/system.ts
- β
Port checking without escalation (#2)
- Best-effort port availability checking
- No sudo required (best-effort operation)
- File:
src/checks/system.ts
- β
SSH timeout handling (#3)
exec() method has configurable timeout (default 30s)
- Async file operations throughout
- Improved error contexts
- File:
src/ssh/connection.ts
- β
Layout version parsing (#4)
- Dynamically parses current version from
garage layout show
- Increments version automatically
- File:
src/garage/cluster.ts (line ~368)
- β
Node ID extraction with case-insensitive regex (#5)
- Uses
/([a-f0-9]{64})/i pattern
- Handles both uppercase and lowercase
- File:
src/garage/cluster.ts (line ~243)
- β
SSH file upload fixed (#8)
- Uses
await Deno.readFile() properly
- Correct Uint8Array handling
- File:
src/ssh/connection.ts (line ~150)
- β
Container name exact matching (#9)
- Uses
docker ps --filter "name=^${name}$"
- No more partial name matches
- File:
src/docker/manager.ts (line ~90)
- β
Rollback/cleanup on failure (#10)
CleanupManager tracks all deployments
- Automatic cleanup offer on failure
- Manual cleanup support
- File:
src/cleanup.ts
- β
State management and resume (#13)
- Full state persistence in
.garage-installer-state.json
- Resume from last checkpoint
- Phase tracking
- File:
src/state.ts
- β
Bootstrap peers configuration (#13)
- Automatically configured after getting node IDs
- Two-pass config deployment
- File:
src/garage/cluster.ts (updateBootstrapPeers)
- β
Configurable ports and paths (#14)
- All ports and paths configurable
- Constants file for defaults
- File:
src/constants.ts
- β
Progress indicators (#16)
- Spinner UI for all long operations
- File:
src/ui/spinner.ts
- β
File logging (#17)
- Complete audit trail in
garage-installer.log
- Structured logging with timestamps
- File:
src/logger.ts
- β
IPv6 support (#19)
- Full IPv4/IPv6/dual-stack support
- Smart hostname resolution
- File:
src/wizard.ts
Original Project Goals (Completed)
From project-plan.md:
- β
Interactive CLI wizard
- β
SSH key management and connectivity
- β
Pre-flight system checks with auto-fix
- β
Docker-based deployment (non-root)
- β
Automated cluster configuration
- β
Single compiled binary
- β
Cross-platform (Linux, macOS, Windows builds)
- β
Progress indicators and status displays
- β
Rollback capability
- β
Comprehensive error handling
Contributing
Want to work on any of these items? Hereβs how:
- Check status - Make sure the item isnβt already in progress
- Discuss first - Open an issue to discuss your approach
- Follow conventions - Match existing code style
- Add tests - Include tests for new functionality
- Update docs - Keep documentation in sync
- Small PRs - Break large changes into reviewable chunks
See CONTRIBUTING.md for detailed guidelines (coming soon).
Prioritization Criteria
Features are prioritized based on:
- User Impact - How many users benefit?
- Stability - Does it fix bugs or improve reliability?
- Complexity - Effort required vs value delivered
- Dependencies - What must be done first?
- Community Demand - What are users asking for?
Version Planning
v0.1 (Current)
- Initial release
- Two-node cluster deployment
- Basic management capabilities
- State persistence and resume
v0.2 (Next - Q1 2026)
- Windows testing complete
- Bug fixes (#7, #18, #19)
- Enhanced state persistence
- Uninstall improvements
v0.3 (Q2 2026)
- 3+ node cluster support
- Cluster expansion capability
- Backup/restore
- Monitoring setup
v1.0 (Q3 2026)
- Production-ready
- Comprehensive testing
- Security audit
- Full documentation
Last Updated: November 16, 2025