{"slug":"openship-deploy","title":"openship-deploy","summary":"This skill should be used when the user asks to \"deploy with OpenShip\", \"manage a self-hosted OpenShip instance\", \"debug an OpenShip deployment\", or manage its domains, storage, backups, or upgrades through the CLI.","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-12T11:08:48.20745Z","repo":{"url":"https://github.com/fcakyon/claude-codex-settings","stars":1155,"forks":110,"license":"Apache-2.0","updatedAt":"2026-09-24T09:28:39Z"},"bodyHtml":"<hr>\n<h2>name: openship-deploy\ndescription: This skill should be used when the user asks to \"deploy with OpenShip\", \"manage a self-hosted OpenShip instance\", \"debug an OpenShip deployment\", or manage its domains, storage, backups, or upgrades through the CLI.</h2>\n<h1>Deploy and operate OpenShip</h1>\n<p>Prefer the CLI and an existing self-hosted instance. Use a cloud or desktop workflow when the user requests it. Keep application deployments separate from installing or upgrading the OpenShip control plane.</p>\n<h2>Choose the instance and command</h2>\n<ul>\n<li>Check <code>openship --version</code> and <code>openship context list</code>. Select the intended self-hosted context before a remote operation. Never assume the active context points to the user's server.</li>\n<li>Use native commands with the global <code>--json</code> flag. Read <a href=\"references/cli/access.mdx\">CLI access</a> for context and authentication details. Do not print stored tokens.</li>\n<li>Check the installed command's <code>--help</code>. Use <code>openship api</code> for routes without a working command, after checking the matching implementation. In v0.7.2, <code>service exec</code> and <code>server ssh</code> are stubs despite appearing in help. A successful help command does not prove an operation works.</li>\n<li><a href=\"references/upstream.json\">upstream.json</a> records the bundled release, exact source URLs, and hashes. If the installed CLI or server differs, verify the relevant source at that version before relying on a flag or API contract.</li>\n</ul>\n<h2>Deploy an application</h2>\n<ol>\n<li>Inspect the repository, existing project link, build entry point, service topology, persistent volumes, and current domain ownership. Use <a href=\"references/cli/projects.mdx\">projects and services</a> for commands.</li>\n<li>Use the companion <code>openship-config</code> skill to author a small <code>openship.json</code>. When only this ZIP is installed, use the <a href=\"https://openship.io/docs/guides/openship-json\">official config guide</a>. Keep repeatable build and routing choices in the repository. Keep actual credentials in the instance's environment settings.</li>\n<li>Run <code>openship --json config validate</code>, then use <a href=\"references/cli/deploy.mdx\">deployment commands</a> for the appropriate repository or folder deploy. A valid file does not prove its image builds or that the destination has sufficient capacity.</li>\n<li>Check deployment completion, the active deployment, service health, logs, and the public URL. Report the deployed revision and any checks still pending. Use <a href=\"references/cli/edge.mdx\">edge and monitoring</a> for diagnosis.</li>\n</ol>\n<p>Read only the guide needed for the operation:</p>\n<ul>\n<li><a href=\"references/guides/self-hosted-github-app.mdx\">Self-hosted GitHub App</a>: repository authorization and automatic deployment.</li>\n<li><a href=\"references/guides/custom-domains.mdx\">Domains</a>: ownership, DNS, ports, and HTTPS. Reconcile existing ownership before moving a hostname.</li>\n<li><a href=\"references/guides/persistent-storage.mdx\">Persistent storage</a>: volumes and data that must survive redeployment.</li>\n</ul>\n<h2>Maintain the self-hosted instance</h2>\n<p>Use <a href=\"references/cli/self-host.mdx\">self-host infrastructure</a> for servers and backups, and <a href=\"references/cli/run.mdx\">running OpenShip</a> for lifecycle commands. Inspect how the instance was installed and whether it has a custom updater before selecting an upgrade command.</p>\n<ul>\n<li><a href=\"references/guides/updating.mdx\">Updates</a>: CLI and server lifecycle.</li>\n<li><a href=\"references/guides/backups-restore.mdx\">Backups and restore</a>: protection and recovery of application data.</li>\n<li><a href=\"references/guides/migrate-control-plane.mdx\">Instance migration</a>: control-plane export and import.</li>\n</ul>\n<p>Use the user's existing authorization for the requested operation. Preparing a deployment is not authorization to replace a running instance or restore over its data.</p>\n","files":[{"path":"LICENSE","sizeBytes":11358,"isText":false},{"path":"references/cli/access.mdx","sizeBytes":8562,"isText":false},{"path":"references/cli/deploy.mdx","sizeBytes":9308,"isText":false},{"path":"references/cli/edge.mdx","sizeBytes":13871,"isText":false},{"path":"references/cli/index.mdx","sizeBytes":9178,"isText":false},{"path":"references/cli/projects.mdx","sizeBytes":23477,"isText":false},{"path":"references/cli/run.mdx","sizeBytes":16746,"isText":false},{"path":"references/cli/self-host.mdx","sizeBytes":19023,"isText":false},{"path":"references/guides/backups-restore.mdx","sizeBytes":13572,"isText":false},{"path":"references/guides/custom-domains.mdx","sizeBytes":15027,"isText":false},{"path":"references/guides/migrate-control-plane.mdx","sizeBytes":5327,"isText":false},{"path":"references/guides/persistent-storage.mdx","sizeBytes":5674,"isText":false},{"path":"references/guides/self-hosted-github-app.mdx","sizeBytes":6757,"isText":false},{"path":"references/guides/updating.mdx","sizeBytes":8025,"isText":false},{"path":"references/upstream.json","sizeBytes":6245,"isText":true},{"path":"SKILL.md","sizeBytes":3605,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-12T11:10:44.414566Z","sha256":"C335443952B13D7083AD104E0BC706E86473C503C70867F8AEE51AE06BEF94C8","sizeBytes":64938},"review":null,"source":{"repositoryUrl":"https://github.com/fcakyon/claude-codex-settings","path":"plugins/openship-skills/skills/openship-deploy","license":"Apache-2.0","commit":"8c25677efb55b473f7b0bbbb3658273ebc8eb993","subtreeSha":"295A14DDE1FD57FDA573DB4D6F082B6DEB6A13D5D92E2D69AD71A7D5DBAC7D7A","lastSyncedAt":"2026-09-25T06:49:35.483925Z"},"reviewedAt":"2026-09-12T11:14:12.968056Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/fcakyon/claude-codex-settings/tree/main/plugins/openship-skills/skills/openship-deploy"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install fcakyon-claude-codex-settings@llmmart"},{"target":"git","command":"git clone https://github.com/fcakyon/claude-codex-settings.git"}]}