Managed services are long-lived processes inside a box with publishing and blue/green deploys. For the concepts, see Services.

service

Run and manage long-lived services in a box
4kr service <command>
SubcommandDescription
listList services for a box
startStart a managed service
statusGet service status
inspectGet service inspect details (spec + reproducible commands)
logsView service logs
restartRestart a managed service
deployDeploy a preview instance
promotePromote preview to active
publishPublish an existing managed service
unpublishUnpublish a managed service
stopStop a managed service
# Start a managed service and publish it
4kr service start my-box web --port 8080 --publish myapp -- python3 -m http.server 8080

# Check service status
4kr service status my-box web --json

# Inspect runtime/spec and reproducible commands
4kr service inspect my-box web
4kr service inspect my-box web --json

# Tail service logs
4kr service logs my-box web --lines 50

# Publish/unpublish an existing managed service without restart
4kr service publish my-box web --subdomain myapp
4kr service unpublish my-box web

# Deploy preview and promote
4kr service deploy my-box web --preview --port 9090 -- python3 -m http.server 9090
4kr service promote my-box web

list

List services for a box
4kr service list <FORK> [options]
Argument / optionDescription
<FORK>Box ref.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

start

Start a managed service
4kr service start <FORK> <NAME> [<CMD>...] [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
--port <PORT>Service port to publish
--publish <PUBLISH>Publish subdomain (uses default domain)
--domain <DOMAIN>Override publish domain
-t, --tag <TAGS>Tag as key=value (repeatable); use box.ui=main for the primary web UI
-p, --project <PROJECT>Target project.
<CMD>Command and arguments (use -- separator) (repeatable)

status

Get service status
4kr service status <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

inspect

Get service inspect details (spec + reproducible commands)
4kr service inspect <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

logs

View service logs
4kr service logs <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
-l, --lines <LINES>Number of lines to show (most recent) Defaults to 100.
-p, --project <PROJECT>Target project.

restart

Restart a managed service
4kr service restart <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
-p, --project <PROJECT>Target project.

deploy

Deploy a preview instance
4kr service deploy <FORK> <NAME> [<CMD>...] [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
--preview <PREVIEW>Deploy as preview (required). Optional subdomain override
--port <PORT>Service port to publish
-p, --project <PROJECT>Target project.
<CMD>Command and arguments (use -- separator) (repeatable)

promote

Promote preview to active
4kr service promote <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
-p, --project <PROJECT>Target project.

publish

Publish an existing managed service
4kr service publish <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
--subdomain <SUBDOMAIN>Publish subdomain (uses default domain); use @ for apex domain
--domain <DOMAIN>Override publish domain
--port <PORT>Override published port (default: service active port)
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

unpublish

Unpublish a managed service
4kr service unpublish <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

stop

Stop a managed service
4kr service stop <FORK> <NAME> [options]
Argument / optionDescription
<FORK>Box ref.
<NAME>Name.
-p, --project <PROJECT>Target project.

compose

Apply and manage a compose stack
4kr compose <command>
SubcommandDescription
upApply a compose file (create/addons/start services)
downStop services/addons from a compose file
psShow service state for a compose file
logsShow logs for compose services
# Start stack from compose file
4kr compose up -f fork.compose.yaml

# Show stack services and state
4kr compose ps -f fork.compose.yaml

# Tail logs for one service
4kr compose logs -f fork.compose.yaml api --lines 200

# Stop all services/addons defined in file
4kr compose down -f fork.compose.yaml

up

Apply a compose file (create/addons/start services)
4kr compose up [options]
Argument / optionDescription
-f, --file <FILE>Compose YAML file. Defaults to fork.compose.yaml.
-p, --project <PROJECT>Target project.
--force-recreateRe-run addon create/start commands even if resources appear to exist

down

Stop services/addons from a compose file
4kr compose down [options]
Argument / optionDescription
-f, --file <FILE>Compose YAML file (optional when using —stack)
--stack <STACK>Stack name (reads authoritative state from in-box metadata)
-p, --project <PROJECT>Target project.

ps

Show service state for a compose file
4kr compose ps [options]
Argument / optionDescription
-f, --file <FILE>Compose YAML file (optional when using —stack)
--stack <STACK>Stack name (reads authoritative state from in-box metadata)
-p, --project <PROJECT>Target project.
-j, --jsonPrint the JSON response.

logs

Show logs for compose services
4kr compose logs [<SERVICE>] [options]
Argument / optionDescription
-f, --file <FILE>Compose YAML file (optional when using —stack)
--stack <STACK>Stack name (reads authoritative state from in-box metadata)
<SERVICE>Optional service name filter
-l, --lines <LINES>Number of lines to show (most recent) Defaults to 100.
-p, --project <PROJECT>Target project.