SHIPOWN — FULL CONTENT ================================================================ Canonical URL: https://pushops.eztooflow.in Download: https://pushops.eztooflow.in/download Invite key: https://pushops.eztooflow.in/invite Generated: 2026-09-22T17:01:35.474Z Version: 0.1.0-beta.5.7 (invite-only beta) License: Content is free to quote with attribution and a link back to https://pushops.eztooflow.in. Contact: hello@pushops.dev ---------------------------------------------------------------- SUMMARY ---------------------------------------------------------------- Shipown is a desktop control centre for deploying Node apps and static sites to Linux servers you own, over SSH. Real build logs, Nginx domains with HTTPS, server monitoring, and rollbacks. Shipown runs no service of its own on your servers and no deployment backend in between: the desktop app connects over SSH and drives plain shell, PM2 and Nginx. The only services it talks to are the licence server, the download server, GitHub when you connect it, and — if you use the AI terminal — the AI provider you choose. The product promise: Vercel-like deployment simplicity with self-hosted control, portability, and an operator-friendly desktop experience. ---------------------------------------------------------------- HERO ---------------------------------------------------------------- Ship to servers you actually own. Shipown is a desktop control centre for deploying Node and static web apps to your own Linux servers over SSH. Connect a server, pick a repository and a branch, get a live URL with HTTPS — and roll it back when it goes wrong. ---------------------------------------------------------------- AT A GLANCE ---------------------------------------------------------------- SSH — The only agent (Zero daemons installed on your servers) Docker — Full container ops (Start, stop, restart & live logs) 7 — AI models, your key (Claude Opus 5, GPT-5.4 & DeepSeek V4 Pro) 100% — Your infrastructure (Your servers, your keys, your data) Supported runtimes, sources and components: Docker, DeepSeek, Claude, Next.js, Node.js, Nginx, Linux, Postgres, Redis, Vite, GitHub ---------------------------------------------------------------- FEATURES ---------------------------------------------------------------- 01. REAL LOGS, NEVER SIMULATED Every progress state streams from the actual install, build and health check. Shipown refuses to fabricate deployment success. Install output, build output and the health check stream from the server as they happen. When a deploy fails you get the exact command and the exact line that broke it, not a spinner that gives up. 02. SERVER OPS WITHOUT THE TAB SPRAWL CPU, memory, disk, uptime, processes and a live SSH terminal in one place. Register a Linux server over SSH and Shipown inspects it, reports what is missing, and installs only what is needed — Node.js, PM2, Git, Nginx, Certbot. Open a server and you get its gauges, its busiest processes, its apps, its logs and a real terminal, with a way back to the rest. 03. FRAMEWORK DETECTION THAT ADMITS UNCERTAINTY Detected build command and output directory, shown before you commit. Shipown reads your project and proposes a framework, an install command, a build command and an output directory. Every one of them is editable, and the summary you approve is what runs. A runtime Shipown cannot deploy is marked as such rather than attempted. 04. IMMUTABLE RELEASES AND ONE-CLICK ROLLBACK Every deploy is a versioned attempt you can return to. Each deploy lands in its own release directory and the live pointer moves only after the build and the health check pass. A failed deploy restores the previous release by itself. Rolling back later is picking a known-good release, not reconstructing one under pressure. 05. IT TELLS YOU WHEN A BRANCH HAS MOVED The commit each app runs, against the head of its branch. Shipown reads the commit each deployment is actually running off the server, and compares it with the branch on GitHub. An app that is behind says how far, and its deploy button says how many commits are waiting. Promoting from staging ships that exact commit, not whatever the branch points at by the time the deploy runs. 06. CREDENTIALS STAY OUT OF THE INTERFACE SSH keys and secrets never cross into the UI process. The Electron main process holds SSH keys, passphrases and environment values behind a narrow bridge. Shipown never uploads private keys, environment variable values, source code, or command output for licensing or telemetry. Saving a server, you choose whether its password or key passphrase is kept on that computer at all: keep it, encrypted by the operating system, and the server reconnects by itself; leave it out and nothing secret is written to disk — the app asks you once per session instead, and forgets it when you disconnect. 07. MULTI-MODEL AI TERMINAL OPERATOR Claude, ChatGPT or DeepSeek proposes one shell command at a time, with its reason — you approve before it runs. Bring your own Anthropic, OpenAI or DeepSeek API key — Claude Opus 5, Claude Fable 5.1, Claude Sonnet 5, GPT-5.4, GPT-5.4 mini, DeepSeek V4 Pro or DeepSeek 4.1 Flash — and operate your servers in natural language. The AI operator diagnoses port conflicts, inspects system logs, checks failing builds, and proposes exact shell commands with clear rationale. Destructive commands — recursive deletions, reboots, firewall flushes, stopping SSH — are held for human confirmation. Keys are encrypted with OS keychains and private credentials never touch Shipown servers. 08. DOCKER CONTAINER CONTROLS & LIVE LOGS Inspect ports, memory, and crash loops — and Start, Stop, or Restart with one click. Open any server to manage every Docker container: see image tags, runtime state, published vs internal ports, Nginx routing, CPU and memory gauges, restart policies, restart counts, and volumes. Crash-looping containers are surfaced first with last log lines. Safely trigger container lifecycle actions (Start, Stop, Restart) over SSH with live progress and feedback. 09. DEDICATED SSH DEPLOY USERS PER SERVER Create isolated deploy accounts, assign SSH keys, and grant scoped sudo rules without root sharing. Shipown enables granular access management directly over SSH. Provision non-root deploy users, assign public SSH keys, configure tailored sudo rules, or revoke accounts with a single click. Secrets and private keys never leave your local Electron process. 10. LIVE SSH TERMINAL & REAL-TIME HEALTH ENGINE Integrated @xterm/xterm console alongside CPU, RAM, disk, load average, and PM2 process monitoring. Instant terminal access without external SSH clients or window switching. The embedded xterm console is a real PTY with full ANSI colour, alongside live server vitals read from /proc: CPU load, memory, disk usage, network throughput, uptime and the PM2 process list. 11. DEPLOY THE CONTAINER, NOT JUST THE CODE A Dockerfile or a compose file, with the same releases, health check and rollback. Point Shipown at a repository or folder with a Dockerfile and it builds the image on your server, labels it with the commit it came from, and publishes it on 127.0.0.1 behind Nginx. A compose file is built and brought up as a project instead. Either way the previous container is kept until the health check passes, a failed release is put back automatically, old images are pruned, and every release stays available to roll back to. A server without Docker can have it installed from the app. 12. A FILE MANAGER, NOT AN SFTP DETOUR Browse, upload a whole folder, edit a file in place, unzip an archive. Open any server and browse it from the SSH user’s home: breadcrumbs, hidden files, a search that filters the folder you are in. Upload single files, several at once, or a whole directory tree with its structure kept, by picker or by dropping them in — each transfer shows its own percentage. Download a file, rename or move it, edit a text file without leaving the app, unzip an archive in place, and delete after a confirm step. 13. CRON, FIREWALL, SWAP AND LOG ROTATION The maintenance jobs that usually mean a shell session, with the dangerous parts guarded. Read every cron job on the server — the SSH user’s, root’s, /etc/cron.d and the periodic directories — and edit a crontab with the syntax checked and a backup written before it is installed. Manage ufw or firewalld: the ports actually listening, the rules, allow or deny with a range and a protocol, and a rule that cannot lock you out, because the live SSH port is read from the connection and allowed first. Create or remove a swap file with the memory and disk checked first. Install and configure pm2-logrotate, and flush an app’s logs. Shipown can also tune sshd, clear stale temp files and clean up dead SSH sessions. 14. DATABASE BACKUPS THAT CAN BE RESTORED MySQL, MariaDB, PostgreSQL and MongoDB: back up now, restore, or run it nightly. The app finds the database engines installed on the server and lists their databases. Back one up on demand with the right tool for the engine, compressed into the server’s own backup directory with only the newest kept. Restore a backup and a safety copy is taken first, before anything is overwritten. Schedule a daily backup at an hour you choose with its own retention, and see when cron is not running to carry it out. Database credentials, when you save them, are written on the server with 600 permissions and never kept on your computer. 15. LIVE UPDATES, NOT A REFRESH BUTTON A container that dies shows up in about a second, without an agent on the server. The Overview keeps a live feed for the servers you are connected to. Docker events stream over the existing SSH connection, so a container that starts, exits, runs out of memory or turns unhealthy appears in about a second — and a container crash-looping is reported once as a loop, not forty times. PM2 apps are re-read every fifteen seconds and compared, so an app going down, coming back or restarting is called out. A server that stops answering is reported once, with the checks backing off, and its recovery is reported too. Deploys and rollbacks land in the same feed. 16. WHEN THE IP CHANGES, IT FINDS THE SERVER A moved server is traced through its own domains, and proved by its SSH host key. Restart a cloud instance without a static IP and the address it had is gone. Shipown remembers the SSH host key of every server it connects to, and the public domains its Nginx serves. When a saved server stops answering, it resolves those domains, tries SSH on the new address, and accepts it only if that machine presents the same host key — a check that happens before any password or key is offered, so nothing is handed to a machine that merely took over a domain. If it matches, you are asked whether to save the new address. 17. FAIL2BAN, INSTALLED AND RUN FROM THE APP Who is being locked out for failed logins, on what terms, and one button to set it up. A firewall decides which ports answer; fail2ban decides who stops being answered. Shipown reads whether it is installed, whether the daemon is actually replying, whether it starts with the server, and every jail with the failures it has seen, the bans it has made and the addresses banned right now — each one unbannable in a click. One button installs it with the server's own package manager, writes the jail, switches it on and confirms the daemon answers afterwards. Exactly one file is managed, /etc/fail2ban/jail.d/99-push-ops.conf, so the distribution's own configuration is untouched, and the address your session comes from is always in the ignore list, so tightening the rules cannot lock you out. Where failed logins are read from is detected rather than assumed — auth.log, secure, the systemd journal, or Alpine's messages — because a jail pointed at a file that is not there never starts. PM2 log rotation lives beside it, so logs stop growing without a cron job of your own. 18. UPDATES THAT TELL YOU WHAT CHANGED A new version announces itself with its release notes, downloads inside the app and is checked before it runs. When a new version appears, Shipown says so once: the version, what is in it, and how long the copy you have keeps working. The installer streams inside the app with a progress bar — never a browser download — and is verified against the SHA-512 published beside it before anything runs; no checksum means no install, rather than trusting whatever arrived. An out-of-date install keeps working for a week after an update is first seen, warns on the last day, and then offers only the update. ---------------------------------------------------------------- HOW IT WORKS — THE DEPLOYMENT PIPELINE ---------------------------------------------------------------- Step 01 — Connect a server Any Linux box you can reach over SSH. Add a server with host, port, user and key or password. Shipown tests the connection before it saves anything, so a bad credential fails at setup instead of halfway through a deploy. Step 02 — Pick a source A GitHub repository and branch, or a folder on this computer. Connect GitHub once and choose a repository and one of its real branches — the list is fetched, never guessed. Or point at a directory on disk. Either way the main process reads it, so the interface never touches your filesystem. Step 03 — Review the plan Framework, commands, port, domain and target, all editable. Shipown shows what will be built, how, and precisely where it lands, with every value open to correction. You approve it, then it runs. Step 04 — Watch it build Streaming output from the real thing. Install, build and release output streams live from the server. A health check decides whether the release goes live, Nginx routes the domain, and Certbot issues the certificate when you ask for HTTPS. Step 05 — Operate it Live URL, history, health, logs, rollback. What is deployed, what is failing, how far behind its branch it is, and what to do about it — on one page. Redeploy, roll back, read the logs, or take a site offline from the same screen. ---------------------------------------------------------------- DEPLOYMENT TARGETS ---------------------------------------------------------------- Every deployment shows both what was deployed and where it runs. Shipown deploys two shapes of app, and manages domains and HTTPS for both. NODE APPS — Run by PM2 Next.js, Nuxt, Remix, SvelteKit, NestJS, Fastify and plain Express. Installed, built and started on your server under PM2, with the port, the health check and the restart policy set for you. - Release directory per deploy - Health check before it goes live - Automatic restore on failure STATIC SITES — Served by Nginx Vite with React or Vue, Astro, or plain HTML. Built once, published to a release directory, and served straight from Nginx — no process, no port, nothing to restart. - Built on the server or shipped prebuilt - Rollback by switching release - Take a site offline without deleting it DOCKER APPS — Built and run as containers A Dockerfile or a compose file, built on your server and published behind Nginx. This is also the answer for languages with no runtime of their own here: if it ships in a container, it deploys. - Image labelled with the commit it came from - Previous container kept until the health check passes - Roll back to an earlier image or release DOMAINS AND HTTPS — Nginx and Certbot Point a domain at an app or a site and Shipown writes the virtual host, tests the configuration before reloading it, and asks Certbot for a certificate. A configuration Nginx rejects is put back the way it was. - Config tested before every reload - Certificate expiry surfaced - Changes undone if Nginx refuses them ---------------------------------------------------------------- PRODUCT PRINCIPLES ---------------------------------------------------------------- 1. Simple on the surface, real underneath. Every progress state comes from the real API or runtime. The client never shows fake deployment success. 2. Desktop-first and local-first. For a solo user the control plane can stay on the user's machine and reach a remote target over SSH. 3. One model. Node apps and static sites are two shapes of one deployment, not separate products. 4. Safe defaults. Test a server before saving it, validate target ownership, keep credentials out of the renderer, and fail with actionable messages. 5. High-signal UI. Restrained typography, clear status, real logs, progressive disclosure. ---------------------------------------------------------------- BETA ACCESS, LICENSING AND PRIVACY ---------------------------------------------------------------- The beta is invite-only. Keys carry an expiry, a status, and a device limit. Activation is checked by the licence server — not by the desktop client — so a revoked key stops working everywhere. Ask for an invitation and we will send one when a slot opens. - Revocable licence key with explicit expiry - Two devices per key by default - Hashed hardware ID, used only for device limits and trials - Opt-in diagnostics, exportable and deletable A license key supports a validity window, a status (active, expired, revoked or suspended), a maximum device count, server-side device registrations, and administrator actions to revoke a device, reset a device slot, extend the expiry, or revoke the whole key. Device identity is a random installation identifier stored on the machine, plus hashed hardware identifiers (board UUID, serial number, OS installation ID) sent at activation, so the device limit and a one-per-computer free trial hold across reinstalls. Only salted SHA-256 hashes leave the machine, never the serial numbers. The full privacy policy is at /privacy on this site. Shipown never uploads SSH private keys, SSH passwords or passphrases, environment-variable values, source code, project files, or arbitrary server command output. The exception is one the user opts into: the AI terminal sends its conversation, including command output, to the AI provider the user picks, under the user's own API key. The renderer does not decide whether a key is valid — the API returns a signed license session and the desktop revalidates it periodically. ---------------------------------------------------------------- FREQUENTLY ASKED QUESTIONS ---------------------------------------------------------------- Q: What is Shipown? A: Shipown is a cross-platform Electron desktop application that deploys and operates web applications on Linux servers you own. It gives you the workflow of a managed deployment platform — connect a source, build, get a live URL, roll back — while the servers and the data stay yours. Q: How is Shipown different from Vercel or Netlify? A: Managed platforms run your app on their runtime and their account. Shipown deploys to a server you already rent or own, over plain SSH, and installs no agent to do it. You keep the smooth workflow without handing over the infrastructure. Q: What can it deploy today? A: Three runtimes. Node applications run by PM2 — Next.js, Nuxt, Remix, SvelteKit, NestJS, Fastify and plain Express. Static sites served by Nginx, including Vite with React or Vue, Astro and plain HTML. And Docker, from a Dockerfile or a compose file, which covers any language that ships in a container. Python, Go, Rust, PHP, Ruby, Java and .NET have no native runtime here; deploy them in a container. Q: Does Shipown need Docker? A: No. Node applications run directly under PM2 and static sites are served by Nginx, on a server with no Docker at all. If you do use Docker, Shipown deploys to it as well — a Dockerfile or a compose file, with releases, health checks and rollback — and manages the containers already on the server: every container inspected, published and internal ports mapped, CPU and memory gauges, crash loops called out, start, stop, restart, a shell inside the container, and its logs. It can also install Docker on a server that has none. Q: Where does it deploy to? A: A Linux server you can reach over SSH — a VPS, a cloud VM, or a box in your office. Ubuntu, Debian, the RHEL family and Alpine are handled. Your own computer is where a project comes from, not somewhere Shipown deploys to. Q: Are my SSH keys or environment variables uploaded anywhere? A: No. SSH private keys, passwords, passphrases, environment variable values, source code and project files never leave your machine for licensing or telemetry. Credentials are held by the Electron main process and are never exposed to the interface. The one exception is one you opt into: the AI terminal sends its conversation to the AI provider you pick. Q: Where does the AI terminal send my server’s data? A: Only to the provider you choose (DeepSeek, Anthropic Claude, or OpenAI), and only while you actively interact with it. The AI operator sends your prompt and the terminal outputs of the commands it runs under your own encrypted API key. Shipown does not intercept or store this telemetry. Destructive commands (reboots, rm -rf, firewall changes, stopping SSH) are never executed automatically without your explicit confirmation. Q: Can I roll a bad deployment back? A: Yes. Every deploy lands in its own release directory, and the live pointer moves only after the build and the health check pass. A deploy that fails restores the previous release by itself, and you can switch back to an earlier release later from the app. Q: Does it deploy automatically when I push? A: No. Shipown tells you when a branch has moved ahead of what a server is running, and how many commits are waiting, but a person still presses deploy. Automatic deployment on push is not part of this beta. Q: Is Shipown open source? A: No. Shipown is a commercial product and its source is not published. What runs on your servers is plain SSH and shell — nothing is installed to phone home — but the desktop application itself is licensed, not open. Q: Is Shipown free, and how do I get access? A: The beta is invite-only. An administrator issues a revocable licence key with an expiry and a device limit — typically two machines per key. Activation is checked server-side, and keys can be extended, revoked, or have a device slot freed. Q: Which platforms does the desktop app run on? A: Windows, as an .exe installer, and Linux, as a .deb for Debian and Ubuntu. Both come from the same download server the app updates from, so the file on the invite page and the file an update fetches are the same file. macOS is not published yet. ---------------------------------------------------------------- END OF CONTENT ----------------------------------------------------------------