Project
CLI

Deploy

Deploy and inspect Project deployments on the VPS.

project deploy

Deploy the current project to the VPS.

project deploy [directory] [flags]

Arguments

ArgumentRequiredDefaultDescription
directoryno.Project directory to deploy.

Flags

FlagSynonymsTypeDefaultDescription
--host-stringdiscoveredSSH host.
--path-stringdiscoveredRemote project directory.
--branch-stringdiscoveredGit branch to deploy.
--domain-stringdiscoveredPublic project domain.
--api-domain-stringderived from --domain when possiblePublic API domain.
--email-stringnoneTraefik ACME email.
--dry-run-booleanfalsePrint planned remote actions without changing the VPS.
--help-hbooleanfalsePrint help.

Deploy Config

Values can live in deploy/deploy.yaml:

host: deploy@100.84.238.75
secrets:
  GITHUB_TOKEN: op://projects/GitHub Personal Access Token/token
environments:
  prod:
    default: true
    branch: main
    path: /opt/platform/apps/my-project
    domain: my-project.os-home.net
    apiDomain: api.my-project.os-home.net
  beta:
    branch: beta
    path: /opt/platform/apps/my-project-beta
    domain: beta.my-project.os-home.net
    apiDomain: api.beta.my-project.os-home.net

Flags override config.

Deploy status and dry-run JSON include webUrl, apiUrl, and docsUrl. docsUrl is derived from the app domain at /docs.

Behavior

  • Requires deploy/compose.yml.
  • Requires deploy/ingress.labels.yml.
  • Uses the VPS-owned private-platform-traefik ingress and traefik-public Docker network.
  • Supports only prod and beta.
  • Requires --env for deploys.
  • Clones or refreshes the remote Git checkout.
  • Runs Docker Compose with the deploy compose and ingress labels.

Examples

project deploy --env prod --dry-run
project deploy --env beta --dry-run --format json
project deploy status --all-envs --format json

project deploy status

Inspect deployment status without changing the VPS.

project deploy status [directory] [flags]

Arguments

ArgumentRequiredDefaultDescription
directoryno.Project directory.

Flags

FlagSynonymsTypeDefaultDescription
--host-stringdiscoveredSSH host.
--path-stringdiscoveredRemote project directory.
--branch-stringdiscoveredGit branch.
--domain-stringdiscoveredPublic project domain.
--api-domain-stringderived from --domain when possiblePublic API domain.
--email-stringnoneTraefik ACME email.
--help-hbooleanfalsePrint help.

Examples

project deploy status
project deploy status --host deploy@100.84.238.75 --path /opt/platform/apps/project-space

On this page