mcp server
shipsquares
AI-native, self-hosted Platform-as-a-Service — deploy apps, databases, and more to servers you own (beta).
Set up
Runs on your computer. Pick your agent and operating system.
This project does not publish an install method we can turn into a config. Follow the README instead.
README
synced Oct 23, 2026ShipSquares
AI-native, self-hosted Platform-as-a-Service — deploy apps, databases, and more to servers you own, with push-to-deploy, automatic HTTPS, and a built-in AI assistant.
🌐 shipsquares.com · 📚 Documentation
⚠️ Beta
ShipSquares is under active development and not yet recommended for production-critical workloads. Expect rough edges and breaking changes on the road to 1.0 — feedback, bug reports, and issues are very welcome.
Need a production-ready self-hosted PaaS today? We'd point you to the more mature, battle-tested open-source projects in this space — Dokploy and Coolify — until ShipSquares reaches a stable release.
Why ShipSquares
- Own your data — runs entirely on your servers; no central control plane, no lock-in.
- Push-to-deploy — from a GitHub repo, a Docker image, or a one-click catalog template.
- Automatic HTTPS — custom domains get certificates issued and renewed for you (Caddy).
- Multi-server fleet — start on one server, add more over agentless SSH.
- Built-in data tools — Database Studio (SQL browser) and managed email.
- AI-native — an MCP server and assistant can operate the platform with your permissions.
- Lean core — one TypeScript control plane on PostgreSQL + Caddy; no extra broker, no Swarm/Kubernetes to run.
Quickstart
Install on a fresh Linux server:
curl -fsSL https://get.shipsquares.com | bash
Full installation and usage guides live at https://shipsquares.com/docs.
How it works
A single TypeScript control plane (apps/server) owns all state in PostgreSQL, runs
background work on an in-database job queue, and drives a Caddy reverse proxy for
automatic TLS. It deploys workloads as Docker containers — on the local host or on remote
servers reached over agentless SSH (nothing to install on the targets). A React
dashboard, an ss CLI, and an MCP server all talk to the same typed HTTP API, so
humans and AI assistants operate the platform through one contract.
How it compares
Coolify and Dokploy are excellent, production-ready PaaS projects, and ShipSquares keeps parity on the basics (push-to-deploy, one-click catalog, backups, multi-server over SSH). Where it differs is an AI-native, batteries-included core:
| ShipSquares | Coolify | Dokploy | |
|---|---|---|---|
| Built-in AI assistant + MCP — operate the platform via AI, with your permissions | ✅ | — | — |
| Database Studio — in-dashboard SQL browser & editor (Postgres + MySQL) | ✅ | — | — |
| Managed email — host mailboxes + DKIM/SPF/DMARC records generated & verified | ✅ | — | — |
| Automatic-HTTPS proxy | Caddy (zero-config, on-demand TLS) | Traefik | Traefik |
| Control-plane datastore | PostgreSQL only (pg-boss queue) | Postgres + Redis | Postgres + Redis |
| Process model | native systemd core (apps in Docker) | Docker | Docker |
| Push-to-deploy · catalog · backups · multi-server | ✅ | ✅ | ✅ |
| License | Apache-2.0 | Apache-2.0 | Apache-2.0 |
ShipSquares is beta; Coolify and Dokploy are battle-tested today. If you need production stability right now, use them — and check back as ShipSquares heads to 1.0.
Built with
ShipSquares stands on a deliberately small, battle-tested set of open-source libraries.
Core
- Node.js 22 + TypeScript (strict, ESM)
- pnpm workspaces
Control plane (apps/server)
- Fastify — HTTP server, with
@fastify/*plugins (CORS, Helmet, rate-limit, WebSocket, Swagger, static) - Drizzle ORM + postgres.js on PostgreSQL
- pg-boss — Postgres-backed job queue (no separate broker)
- better-auth — authentication + RBAC
- TypeBox + Zod — schema and validation
- ssh2 — agentless remote-server orchestration
- Octokit — GitHub App / repo integration
- Nodemailer — managed email delivery
@modelcontextprotocol/sdk— MCP server@anthropic-ai/sdk— the built-in AI assistant
Dashboard (apps/web)
- React 19 + Vite
- TanStack Table & Virtual — fast data grids
- CodeMirror — the SQL editor in Database Studio
- xterm.js — the in-browser console
Infrastructure
Tooling
Full per-subsystem attributions for adapted code are in NOTICE.
Monorepo layout
apps/server the Fastify control plane (API, deploy engine, Drizzle, pg-boss)
apps/web the React/Vite dashboard
apps/cli the `ss` command-line client
mcp the MCP server (tools over the typed client)
packages/shared shared config schema, ids, error taxonomy
packages/openapi-client generated TypeScript client from the server's openapi.json
infra installer + dev compose, Caddy/systemd templates
ops operational helper scripts
Development
Requires Node 22+ and pnpm 10+.
pnpm install
cp .env.example .env # set DATABASE_URL / AUTH_SECRET / AUTH_URL
pnpm dev # boot the control plane
pnpm -F @ss/web dev # the dashboard (Vite)
pnpm test # vitest
pnpm lint # eslint + prettier
pnpm build # typecheck + build the web app
pnpm openapi:gen # re-emit openapi.json + the typed client
Every runtime value comes from the environment and is validated once at boot; a missing or malformed key fails fast with a single aggregated error.
Contributing
Contributions are welcome — see CONTRIBUTING.md and the Code of Conduct. Found a security issue? See SECURITY.md.
Acknowledgments
ShipSquares learns from the excellent open-source self-hosted PaaS ecosystem — including Dokploy, Coolify, CapRover, Dockge, Kamal, and Portainer. Per-subsystem provenance for any adapted code is documented in NOTICE.
License
Apache-2.0 © Digisquares and the ShipSquares contributors.