Warning
Porto is not production-ready. Use it for local development and experimentation only, not production or critical workloads.
Releases are not code-signed, and macOS builds are not notarized. Your operating system may display security warnings or block installation or launch.
Porto is an open-source desktop (and optionally web) control plane for development workloads running on your machine, NAS, or home system. It discovers mixed-stack repositories and gives you one daemon, CLI, and dashboard to manage native applications, containers, Compose stacks, local Kubernetes clusters, and Linux virtual machines.
It provides a portable, open-source alternative to proprietary desktop container managers while keeping standard Docker clients and Compose workflows.
- One place for every project. Scan your workspace(s) root once, then control processes, ports, readiness, and persistent logs from the CLI or dashboard.
- Mixed stacks, one workflow. Porto recognizes Make, Compose, Node.js, Python, Go, and Rust projects and chooses the appropriate setup and start commands.
- Containers without a separate dashboard. Inspect and operate containers, images, builds, volumes, and networks through Porto or standard Docker clients.
- Local Kubernetes. Create managed k3s, k0s, or kind clusters without inheriting an unrelated global kube context.
- Cluster terminal included. Open a cluster-scoped k9s session from the dashboard or with
porto kubernetes terminal <cluster-name>. - Disposable Linux machines. Create standalone Ubuntu, CentOS Stream, openSUSE, NixOS, Arch, and Alpine environments; Kali is catalogued where an official compatible cloud image exists.
- No more port bookkeeping. Stable automatic assignments avoid collisions, while pinned and Compose-published ports remain supported.
- Branch-aware workflows. Switch branches with automatic restarts or run concurrent branches in isolated managed worktrees.
- Friendly local URLs. Open projects and managed Kubernetes Services through stable zero-configuration HTTP hostnames or trusted portless HTTPS on macOS.
- Local and portable. Runtime state stays in a small SQLite database, and the Go daemon runs on Linux, macOS, and Windows.
- Docker, Compose, and Buildx included. Desktop packages ship a pinned Docker CLI plus Compose and Buildx for the
portocontext. Porto's managed engine sets up CPU emulation automatically, without proxying another Docker engine. - Image layers in the terminal. Run
porto docker dive IMAGEwith the bundled Dive client to inspect layer contents, file changes, and wasted space. - Local diagnostics and repair. Run
porto diagnoseor use the Diagnostics page to inspect runtime health, preview a redacted local bundle, and apply confirmed Porto-owned repairs. - Optional runtime cleanup. Prune unused images and build cache weekly or with Run now, with retained results for both manual and scheduled runs.
See the Docker API compatibility matrix for supported, partial, capability-gated, and explicitly unsupported operations. See image layer inspection for Dive usage and the separate local Grype/SBOM roadmap.
Install and launch the latest desktop release on macOS or Linux:
curl -fsSL https://raw.githubusercontent.com/mbianchidev/porto/main/scripts/install-desktop.sh | shOn Windows PowerShell:
irm https://raw.githubusercontent.com/mbianchidev/porto/main/scripts/install-desktop.ps1 | iexThe one-liners detect the OS and architecture, verify the published SHA-256
checksum, install the native macOS DMG or Windows EXE package for the current
user, expose the porto CLI, and launch the desktop app. Linux uses the
portable desktop archive. Every desktop package bundles the daemon, dashboard,
kubectl, k9s, Lima, the supported kind binary, and Porto's Linux runtime
helper for direct container I/O, Windows containerd connections, CNI, and
checkpoint capability discovery.
New Windows container engines use Ubuntu 24.04 LTS instead of Lima's moving default image. Windows packages include Lima's stale-process recovery and consoleless force-stop fixes; normal shutdown recovery does not require deleting PID files or recreating the runtime VM. See Windows guest recovery for an existing crashed engine.
For a headless installation, download the CLI/web archive from the
releases page. Keep the
porto binary and ui/dist directory together, then add the binary to PATH.
See the installation guide for checksum verification, source builds, and custom dashboard paths.
CLI/web archives remain available for headless machines and servers.
Open Settings to see the running Porto release version, including prerelease and build metadata.
porto scan ~/code ~/work --depth 3
porto listporto daemon startThe daemon runs in the foreground. Leave it open and use a second terminal for project commands.
Desktop and daemon diagnostics are saved to logs/porto.log under Porto's
OS-specific data directory, with debug logging enabled by default. Porto
compresses completed days and keeps seven calendar days unless System settings
selects a different retention period. See
application diagnostic logs
for exact paths and the PORTO_LOG_LEVEL setting.
macOS desktop packages include a temporary native guard for a macOS 27 power-notification startup crash. No recovery command is needed for new packages; see compatibility and older-release recovery.
porto start api
porto logs api --stream stdout -n 100
porto stop apiReplace api with a project name shown by porto list. Open the dashboard at:
http://127.0.0.1:37623
Running projects are also available without DNS setup at http://<project>.porto.localhost:37680. On macOS, install the trusted portless HTTPS helper once to use https://<project>.porto.localhost/:
porto https installSee local networking for certificate, DNS, dotted-hostname, and custom-forwarding details.
For an always-available setup, follow the daily-use guide to install Porto in a stable location and start it at login or boot.
- Installation — release archives, source builds, and dashboard assets
- Daily use — durable installation, login or boot startup, upgrades, and home systems
- Project management — CLI reference, discovery, setup, ports, readiness, and logs
- Local runtimes — Docker socket, containers, Compose, Kubernetes resources, pod inspection, and Linux VMs
- Porto Docker Engine — native containerd backend, Docker context compatibility, supported API, and limitations
- Branch management — switching, concurrent instances, and merged-branch cleanup
- Local networking — HTTP, HTTPS, certificates, DNS, and forwarding
- Optional integrations — sql-not-so-lite, KillSwitch, and Sendbox
- Product overview — users, purpose, positioning, and product principles
- Design system — visual language, components, and interaction rules
- Continuous integration and releases — local checks, automation, and release artifacts
- Documentation index — all guides
