# Command-line programs

URL: https://scalws.com/docs/guide/cli/
Source: `docs/guide/cli.md` in the ScalWS repository

ScalWS ships four programs; each has its own reference page with every command, option and exit status.

## scalwsctl

The operator CLI. It checks a configuration without touching the server, detects
application frameworks, adds, lists and removes site files, migrates sites from nginx or
Apache, and talks to a running server through its admin API: status views, reload,
rollback, application restarts, cache purges and tenant resource limits. While
scalws-controller runs, its reloads and limits go through the controller.
Reference: [scalwsctl](https://scalws.com/docs/reference/programs/scalwsctl/).

## scalws-controller

The Adaptive Runtime controller. `scalws-controller run` starts, activates, drains and
supervises several `scalwsd` instances that share the listening sockets, and never handles
client traffic itself. Its client commands show the instances, change their number and the
autoscaling mode, roll the instances onto a new configuration generation, and purge the
cache on every instance. Reference:
[scalws-controller](https://scalws.com/docs/reference/programs/scalws-controller/).

## scalwsd

The web server daemon. It serves client traffic from one configuration file, either on its
own as `scalwsd.service` or as an instance started by scalws-controller. `scalwsd --check`
validates and prepares a configuration and exits. Reference:
[scalwsd](https://scalws.com/docs/reference/programs/scalwsd/).

## scalws-console

ScalWS Console, the web administration for scalws-controller. `scalws-console run` serves
the console over HTTPS; `init-credentials` creates the administrator account and
`hash-password` hashes a password for the credentials file. Reference:
[scalws-console](https://scalws.com/docs/reference/programs/scalws-console/).
