Skip to main content

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

AspectDetail
ProductPortside, local database launcher
LicenseMIT, open source
PlatformsWindows, macOS (Intel + ARM), Linux installers, built by GitHub Actions
StackTauri v2 (Rust backend, web frontend) on top of your local Docker
EnginesMySQL, MariaDB, Postgres, Redis, Valkey - multiple versions, multiple ports, side by side
MetadataSQLite at %LOCALAPPDATA%\portside\portside.db
DataDocker volumes named portside-{id}-data
LAN sharingOptional, 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

  1. Open Portside and pick Create instance.
  2. Choose an engine and version (see the engines and instances page for the full version catalog).
  3. Set a port (leave blank for auto-assignment) and an optional password. Defaults: portside for SQL engines, empty for Redis/Valkey. The password is set once and cannot be changed later.
  4. Copy the localhost connect 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)