Portside
Local database launcher for developers. One-click database instances as Docker containers, managed from a desktop app.
Portside is Rancero's open source utility (GitHub, MIT) for spinning up versioned database instances - MySQL, MariaDB, Postgres, Redis, and Valkey - as local Docker containers. Manage databases, tail logs, and copy connect strings from one native desktop app built with Tauri (Rust). It is a modern, open replacement for StackBricks-style desktop database managers, with per-instance TLS so instances can be shared across your LAN.
Why it exists: built for agentic coding
AI coding agents burn through databases. Every experiment wants a fresh schema, every attempt wants isolation, and a shared dev database gets clobbered fast. Portside gives each agent and each project its own isolated home:
- One-click instance creation - pick an engine, a version, and a port; Portside handles the container.
- Dedicated databases or schemas per project - no cross-project collisions.
- Multiple engine versions side by side - test against Postgres 16 and 17 simultaneously.
- Disposable by design - paste the connect string into the agent's env, let it prototype freely, then wipe the instance when done.
- All local Docker - fast, offline-friendly, and free.
The typical agent workflow: create an instance, copy its connect string, paste it into the coding agent's .env, let the agent prototype freely against its own database, then wipe the instance when the experiment ends. Nothing shared, nothing lost, nothing slow.
At a glance
| Aspect | Detail |
|---|---|
| Product | Portside, local database launcher |
| License | MIT, open source |
| Platforms | Windows, macOS (Intel + ARM), Linux installers, built by GitHub Actions |
| Stack | Tauri v2 (Rust backend, web frontend) on top of your local Docker |
| Engines | MySQL, MariaDB, Postgres, Redis, Valkey - multiple versions, multiple ports, side by side |
| Metadata | SQLite at %LOCALAPPDATA%\portside\portside.db |
| Data | Docker volumes named portside-{id}-data |
| LAN sharing | Optional, with per-instance self-signed TLS |
Quickstart
Portside needs a Docker runtime running. The UI starts without it but shows an onboarding banner until a runtime is detected.
Windows one-click
Double-click run.bat in a fresh clone. It checks the toolchain, installs anything missing (one UAC prompt plus one WSL2 yes/no), starts Docker Desktop itself, waits for the daemon, runs npm install, and launches the app. It never force-reboots and never registers anything at startup.
From a fresh clone (all platforms)
npm install
npm run tauri dev
Prerequisites by OS (Tauri v2):
- Windows 10+: WebView2 (preinstalled on Win10 1803+ / Win11) and MSVC Build Tools with the C++ workload.
- macOS 13+: Xcode Command Line Tools (
xcode-select --install). - Linux: WebKit2GTK plus build tools, e.g. on Ubuntu/Debian:
sudo apt install libwebkit2gtk-4.1-dev build-essential curl wget file \
libssl-dev libayatana-appindicator3-dev librsvg2-dev
Your first instance
- Open Portside and pick Create instance.
- Choose an engine and version (see the engines and instances page for the full version catalog).
- Set a port (leave blank for auto-assignment) and an optional password. Defaults:
portsidefor SQL engines, empty for Redis/Valkey. The password is set once and cannot be changed later. - Copy the
localhostconnect string with Copy connect, or, for LAN-enabled instances, the laptop-facing string with Copy LAN.
To work across machines instead of just local ports, jump to networking and TLS. For what happens on stop, remove, and wipe, see data and lifecycle.
Tests
npx vitest run # frontend
cargo test --manifest-path src-tauri/Cargo.toml # Rust (needs cargo)