All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- WSL: Relay method using custom ssh client + custom ssh server and windows named pipes
- Connection info screen - exemplify how to connect from code and with cli tools
- Improved the way volume mounts are displayed
- Improved layers display (use
div
instead of atextarea
) - Default monospace font is now
Consolas, "SF Mono", "DejaVu Sans Mono", "Droid Sans Mono", "Ubuntu Mono", "Roboto Mono", "Fira Code", monospace, "Powerline Extra Symbols"
- Improved environment variables display(Container Inspect)
- Windows is now using only named pipes for remote and WSL connections instead of TCP
- Linux and MacOS use relayed unix sockets instead of TCP
- WSL - All relay binaries and build scripts
- WSL - Ensure
$HOME/.local/bin/container-desktop-wsl-relay
has executable permissions once deployed
- WSL - Use socat / local named pipe server instead of TCP to connect to a custom distribution
- Reduced default timeouts to 3 seconds
- WSL - Add
socat
retry mechanism for Docker engine
- WSL - Use custom
socat
relay build - deploy to WSL file-system before spawning to avoidexecvp
errors
- WSL - Drop custom relay in favor of custom
socat
build, relay using a node server listening on named pipe - WSL - Use named pipes listener instead of random tcp localhost allocated port listener(more secure, avoid firewall prompts)
- Improve logging
- Improve spawned processes killing
- WSL - Create and use a custom TCP relay
- WSL - Performance - Reduced CPU usage to insignificant values during polling
- WSL - Provisioning - Removed the need for
socat
ornetcat
as the relay binary is now bundled for Windows
- Avoid reading container processes if container is not running
- WSL - Killing of spawned processes from WSL distribution before application graceful quit(nodejs cannot kill them as they are not native)
- WSL - Relay binary helper building during release
- WSL - Fix never ending pollers due to netcat no timeout exit
- Reduced the polling frequency to 2 seconds
- WSL - Support for multiple distributions even with automatic connections
- Flatpak - Unable to set icon and connect properly
- Linux - Proper icons and logos in all cases for all packages
- Window Close issues
- Reduced timeouts to fail faster
- Improved flatpak build process to be able to publish to flathub
- Updated deps
- Completed rebranding - added container-desktop.com support
- Added separate UI and latest version checking API endpoint for supporting Microsoft Store for Windows as updates need approval
- Only build appx target by default in releases
- Podman machine info respects the cli
- Moved container stats to container actions menu to favor Processes
- Container pages auto-refresh on container start / stop / pause / restart
- Container playback actions differentiation
- Upgraded deps
- Issue #159: Ability to create and start multiple containers from the same image
- Processes top list page for a container
- Reload button for all container screens
- Docker engine discovery - now it is supposed to support any docker engine in existence using auto-detection (podman impersonating as docker is recognized on purpose as docker just like any other client that uses podman docker compatibility layer)
- Tray icon for mac is now theme aware and has proper size
- Re-branded from
podman-desktop-companion
tocontainer-desktop
to avoid confusion of users and publishers with the youngerpodman-desktop
- Theme switch on connect
- Startup/Shutdown of managed hosts
- Env sourcing
- Starting containers with volumes and exposed ports
- Open in browser when applicable
- Icons generator
- Proper privacy policy page
- Graphics generator
- Self-sign test task
- Upgraded deps
- Home page podman desktop note and redirect to avoid users getting wrong message
- Home page license and privacy notes
- System tray screenshots as they were inaccurate
- Terminate WSL distributions only if started by pdc
- Stop LIMA instances only if started by pdc
- Icons for Windows Store
- Privacy policy to be readable
- Properly close connections
- Auto-mode supported for all connection types
- Bug with podman not being able to create the basedir of the listening socket on WSL
- Mode change disabled while pending operation
- Registry search behavior for docker
- NSIS installer icon
- Visual bugs
- Detect button for relay endpoint
- Display version only when connected
- Export connections with version specifier
- Connection pending indicator moved to bottom of the form
- Refactor all needed to respect containers domain
- Upgraded deps
- Unused dependencies
- Connection defaults to first available podman (virtualized or native) at first start
- Ability to set default connection was broken
- Fixed pause / unpause of containers
- Application startup visual log
- Flexible connection management method and UI
- Support for custom WSL distributions
- Support for custom LIMA instances
- Support for remote SSH connection using
.ssh/config
like VS Code extension - Ability to export / import connections
- Ability to automatically detect installed packages
- Enabled latest version check
- Latest version publishing to static website
- Footer mentioning current connection and engine version
No results
non-ideal state for all list screens- Manual reload/refresh button for all list screens
- Connection management
- Container inline player actions for stop/start/pause/restart
- Single file javascript bundling using ncc to eliminate need to distribute
node_modules
in asar package - Tray icon with duo-tone
- Automatic detections
- System clean/prune
- Factory reset
- Errors properly displaying
- Various visual issues
- Logging to file-system
- All electron languages besides
en-US
to reduce payload size
- Enabled latest version check
- Latest version publishing to static website
- Make everything async
- Increase type safety
- Drop node polyfills
- Wrap node direct calls in a single
Platform
module
- Issue #109 - Allow flatpak version to start/stop podman native binary
- Scanner report in light mode using docker engine
- Programs detection
- Ubuntu 24.04 - apparmor template executable path was wrong
- Silenced apparmor errors where service is present / enabled but reported as not available (WSL + apparmor) - during reload
- Included
LOW
security reporting priority counts - Removed environment letter suffix form version reporting
- Moved helper scripts outside sources
- Updated trivy homepage URL
- Checksum generation for binaries
- Ubuntu 24.04 launching issues(added apparmor profile, electron sandbox disabling)
- On linux, electron-builder product name uses project name to avoid path with spaces issues
- Issue #103 - terminal output
- MacOS default podman cli path
- Current version to
5.2.0
in defaults - Changed default development port to use 3000
- Linux shortcut name changed to use project title
- Enabled ARM build for linux releases
- Upgraded dependencies
- Memory usage in human form
- Home page note to favor podman-desktop - major feature freezing note added.
- README.md note to favor podman-desktop
- TODO.md update to release binaries for
5.2.0-rc1
- Links to Podman in action and Podman for DevOps books
- Changed all logos and icons to distinguish from podman desktop
- Fixed minor bugs with copy-to-clipboard, visual inconsistencies, terminal launching and shortcut entries
- Registries support(define / search / pull) - search using podman configuration for podman engine only, inline configuration(custom) for all engines
- Overlay quick start container actions on hover and tap for table users
- Expand / collapse sidebar support for more work space horizontally (persist settings across restart)
- Light mode / Dark mode toggle (already supported by the blueprintjs framework but not enabled) - for all engines
- Icons for some table views headers
- Unified navigation / inspect for all entities that support it
- Upgraded node to 20
- Upgrades to be compatible with podman
5.2.0
- Migrated all code to typescript (basic)
- Migrated infra to use vite instead of react-scripts
- Upgraded react blueprint framework to 5.x
- Upgraded all upgradable dependencies
- Modified CI/CD pipeline to support current version
- Modified example to work on Ubuntu 22.04 (my current OS)
- More compact lists and table views
- Unified headers with tables / lists
- Containers groups show first (like folders first in file managers)
- Pod infrastructure containers are placed in their special group, showing first if they exist
- Container logs use VT100 emulator for displaying
ansi-colors
properly (service is consuming byte array data instead of strings)
- Merged all dependabot PRs
- Open terminal on some platforms
- Open browser on some platforms
- Main window shows up only when UI has received all init data to avoid showing incomplete windows
- Detail tables in Drawers didn't size properly - first column was taking too much space
- Sponsors
- Issue #85 - Detection of paths is now handled properly
- Issue #84 - Detection of versions is now handled properly
- Issue #54 - Pods tab: list with stats/start/stop
- Models reset on engine change not to confuse the users keeping old values
- Containers group header color for podman engine
- Pending indicator in the sidebar footer was a bit off vertically, now is centered
- Indentation due to css class name clashes
- Set active tab for container kube
- Ports map undefined coercion
- Detection avoids baseline versions from being reported to the user
- Moved actions as plugins of bridge using lambda architecture - an async function with context and parameters
- Clear bridge bootstrap phase, split into
init
happening only once andstart
, each time engines are switched - Faster and more reliable startup, less prone to crashes and easier to read
- New models should implement
ResetableModel
- Lift error boundary so that the app still has custom title bar even when it crashes
- Improved detection flow - test paths presence on disk for required executables
- Visual improvements
- Missing scan report journal update dates and version on non-linux
- When connecting to docker engine - the app did not check if api is available and it was always connecting creating confusion
- Issue #79 as per Issue #57 - Add container grouping by prefix, only a single prefix is supported to single level depth (first part after split by
_
)
- Improved pending indicators for long operations
- Added sorting by name for containers list
- Removed dead CSS
- Fix os missing os type dependency
- Error boundary to gracefully crash
- Regression with default connector being always checked even if the user did not set one
- No more crashes in image security screen
- Container Image security scan screen with Trivy
- Machine commands were broken (restart, stop, remove)
- Separated responsibilities
- Started work on plugin architecture
- Network creation for podman end docker engines (no subnet support for docker for now)
- Activated stdout / stderr logging when level is debug for what is output coming from locally started apis for better tracing
- Prevent stopping api on engine switching if not started by podman desktop companion
- issue #64 - Blank page after loading
- issue #77 - Missing podman-machine-default machine
- issue #73 - "Path to native podman CLI" disappears after saving
- issue #56 - UI freezes and cannot get back to configuration menu
- Show program version in settings screen header left column
- Connection methods
- Upgraded electron engine
- Separated concerns (some)
- Moved back to IPC instead of works as they are faster
- Changed bootstrap method to be more stable in case of program failures
- issue #73 - Prevent crashing if no programs or versions are found - do not merge empty strings, default as
undefined
is required for proper merge
- issue #73 - Read and write settings without needing to spawn a worker
- Fix UI blocking when server detections fail abruptly
- Moved all time consuming operations to web-workers
- Call socket api when possible
- Attempt solving startup issues
- Added strict engine checks to avoid invalid operations on platforms that do not need it
- Added pod logs viewer
- Added jump to list for all screens to avoid back button confusion
- Added view kube yaml for pod
- Added view kube yaml for container
- Pods section processes
- Pods section list
- Pods section inspect
- Multiple container engine support
- Docker engine support
- Podman and Docker support for operating modes
- Adaptive color scheme to dissociate between engines (original for podman and blue for docker)
- Ability to customize path to podman / docker and their connection strings
- Ability to test custom configuration
- Ability to save customization and restore defaults
- Ability to detect what is currently available
- Full support for custom LIMA instance and WSL distributions for both engines
- 45: Added support for Windows Terminal as tool for "Open terminal" functionality
- Ability to dissociated between container states using colors
- Refactored the entire application to support any container engine easily
- Improved error messages everywhere
- Changed configuration and logging location, less screen vertical real-estate used
- Upgraded all dependencies to their most recent supported versions
- 56: Podman machine startup / shutdown
- Connection system
- Experimental Docker API
- 47: Allow custom connection string
- Connection UI
- Various UI improvements
- Disable screens not making sense when using certain engines
- 44: Fix Open in Browsers due to schema changes
- 49: UI freezes on Start a new container
- Overflow issues triggering vertical & horizontal scrolling
- Bug with pause / resume of containers
- 43: Restore LIMA
- Ability to switch logging to original console, to avoid losing lines
- Add more info about the environment where podman is running
- Port mappings as array of items - ability to map any port/protocol
- Add created counter on dashboard
- Improved detection of locally available podman, podman machine, LIMA
- Ability to connect without restart when switching engines (from native to machine, from machine to lima and back)
- Improved error handling and notifications
- Simplified logging
- Removed worker PRC - proxy all through Electron IPC
- CLI backend for communication - it was too limiting
- Builds for
M1
architecture - Counters for
paused
andexited
on Dashboard screen - Ability to
pause / unpause
a container - Basic
System Tray
support (restore window & quit - no startup to tray)
- Fix Dashboard wrong counters
- Fixed icon path in development mode
- Fixed window restoration on MacOS
- Added HTTP response
ok
state interpretation - Changed build pipeline to be more explicit
- Added
DecodedState
computed property toContainer
type to avoid miss-match data when requesting lists vs single items - Rephrased counters for running containers
- Removed extra
Status
column fromContainers
list screen
- initial flatpak support (not yet flathub)
- solve custom program path setting bug
- Fix improper request body proxy-ing to worker affecting requests methods with body
- Add BDD initial testing for the client
- Add
cli
fallback whenapi
is not available - Refactor settings UI to allow toggling of
cli
fallback
- Properly respect build environment
- Enable debug panel for production builds
- Ability to control logging level and debug the application
- Provider more information and control over startup and internals
- Exposed application configuration storage path for the user to be informed
- Ability to turn auto-start on or off
- Ability to re-connect
- Changed bootstrap procedure using phases/states to improve detection
- Improved bootstrap failure reasons
- Use a single configuration source
- Wrapped logging into its own module to support switching
- Clean-up of old artifacts
- Upgrade to support podman
4.0.x
- Upgrade to blueprint 4.x
- Support Windows
- Support MacOS
- Dropped Lima temporarily until better configuration exists
- 14: Automatic detection failed (macOs Catalina)
Support MacOS using lima, native read write mounts and terminal console
Address tech debt and allow easier development.
- Split
easy-peasy
model - Changed application folder structure
- Add logging for all http requests with curl command construction
- Fix request parameters
- Fix secrets creation
- Prepare bundling
- Initial release