Agent Skills: Design openship.json

This skill should be used when the user asks to "create openship.json", "configure an OpenShip deployment", "make a repo deployable on OpenShip", or fix "openship config validate" errors.

UncategorizedID: fcakyon/claude-codex-settings/openship-config

Install this agent skill to your local

pnpm dlx add-skill https://github.com/fcakyon/claude-codex-settings/tree/HEAD/plugins/openship-skills/skills/openship-config

Skill Files

Browse the full folder contents for openship-config.

Download Skill

Loading file tree…

plugins/openship-skills/skills/openship-config/SKILL.md

Skill Metadata

Name
openship-config
Description
This skill should be used when the user asks to "create openship.json", "configure an OpenShip deployment", "make a repo deployable on OpenShip", or fix "openship config validate" errors.

Design openship.json

Use OpenShip's upstream configuration workflow: inspect the repo, declare only necessary overrides, then validate. Auto-detection supplies omitted fields. Prefer self-hosted deployment unless the user selects cloud.

Design the configuration

  1. Inspect package scripts, lockfiles, framework settings, Dockerfiles, compose files, workspace layout, and an existing openship.json.
  2. Choose a single app, compose services, or detected monorepo apps. Do not combine those shapes casually. monorepo.apps overrides detected apps by root directory. It does not discover new applications.
  3. Read fields for names and meanings and the bundled JSON schema for editor validation. Use compose guidance for service topology, ports, dependencies, and persistent volumes.
  4. Start with openship config init only when the file is absent. Preserve an existing config and add only values that need to override detection. Keep its $schema set to https://openship.io/openship.schema.json.
  5. Run openship --json config validate using the deployment's CLI version. Fix errors and review warnings: unknown keys can be ignored by the runtime even though the editor schema rejects them.

A minimal server config can be:

{
  "$schema": "https://openship.io/openship.schema.json",
  "port": 3000,
  "runtime": "docker",
  "domains": ["app.example.com"]
}

Self-hosted details

  • Self-hosted defaults to unlimited resources in the bundled release. Declare caps only when intended. Service-level caps override project caps field by field. Check target capacity separately from local config validation.
  • Use named persistent volumes for state that must survive an application deploy. Expose only the services intended to receive public traffic.
  • Keep actual secret values out of committed JSON. secret: true controls storage handling after ingestion. It does not encrypt a credential in a Git file. Read environment variables for instance-managed values.
  • openship.json expresses desired configuration. It does not prove an existing domain has moved or the running deployment has changed. The companion openship-deploy skill handles deployment and live verification.

Source and version

The workflow and field reference derive from the official upstream config skill. upstream.json records the release and links to its CLI validator, runtime parser, types, parser tests, and deployment preparation code. Consult those sources when docs disagree or a behavior depends on the installed version. The parser and actual deployment implementation decide runtime behavior. The JSON schema serves editor validation.

Read the configuration guide for additional examples. Do not copy example credentials into a repository.