Global options
Every command that talks to the server also takes:
A server URL without a scheme gets
https://, except localhost, 127.0.0.1 and [::1], which get http://.
Projects and deployment ids
Commands that work on one project take-p, --project <name>. Without it, atoll env, atoll domains, atoll ci, atoll firewall and atoll rollback use the name of the current directory, the same way atoll deploy does.
Deployment ids can be shortened to their first characters, as atoll list shows them. The CLI looks the prefix up among the newest 200 deployments you can see; if more than one matches, it lists them and stops.
Exit codes
With
--no-wait, deploy, promote and rollback exit with 0 once the server accepted the request. atoll domains verify has its own codes, see below.
Where the CLI keeps its login
atoll login saves one token per server in a file only you can read:
- Linux and macOS:
$XDG_CONFIG_HOME/atoll/config.json, or~/.config/atoll/config.json - Windows:
%APPDATA%\atoll\config.json
--token and ATOLL_TOKEN always win over the saved token, and they never use the saved default org, so CI is not affected by your local settings.
atoll deploy
Upload a project and deploy every target in it.
Without
--no-wait, it prints the log until the deployment finishes, then a summary, and exits with the code for the result. CLI deploys always go to production. Needs the Developer role. See Deploying with the CLI.
atoll list
List recent deployments, newest first.
Shows the short id, project, status, environment, age, target counts and live URLs of each deployment.
atoll logs
Print the build and deploy log of a deployment, or the output of a running Ktor server.
Pass either a deployment id or
--project, not both. Runtime output starts with the last 200 lines, each with the local time and the replica that printed it. Secret values are masked in both kinds of logs. See Deployments.
atoll status
Check that the server is reachable and print its version.atoll login
Sign in and save a token for later commands.
Without
--token, the CLI prints a URL and a code like BCDF-GHJK, and opens the panel’s device page in your browser. Check that the code matches and approve the sign-in. The code expires after 10 minutes. The CLI then saves the token, and the server becomes the default for later commands.
atoll logout
Revoke the saved token on the server and forget it.atoll whoami
Show the signed-in user, the server, where the token comes from, and your orgs with your role in each.atoll orgs
atoll projects
atoll cancel
Stop a deployment that has not finished. It ends asCANCELLED; targets that were already live stay live.
QUEUED, BUILDING and DEPLOYING deployments can be cancelled. Needs the Developer role.
atoll promote
Make a finished deployment live again, as a new deployment, with the project’s current env vars.
Waits for the new deployment and exits like
atoll deploy. Works for the last 10 finished deployments per project and environment. Needs the Developer role. See Promote and rollback.
atoll rollback
Put the previous good production build back live, without rebuilding it.READY production deployment before the current one that runs a different build. Waits for the new deployment and exits like atoll deploy. Needs the Developer role.
atoll env
List, set and remove a project’s env vars and secrets. Changes apply on the next deployment. See Environment variables and the env vars reference. Everyatoll env command takes:
atoll env ls
(secret).
atoll env set
The value is everything after the first
= and may be empty. Setting an existing key replaces it. Values typed here can end up in your shell history; use atoll env import for secrets. Needs the Developer role.
atoll env import
.env file of KEY=value lines. Existing variables with the same keys are replaced. The flags apply to every imported variable. The file is checked first: with more than 500 variables or a value over 64 KB, nothing is imported. The env vars reference describes the file format. Needs the Developer role.
atoll env rm
atoll domains
List, add, verify and remove a project’s custom domains. Everyatoll domains command takes -p, --project <name>, which defaults to the current directory name. See Custom domains.
atoll domains ls
atoll domains add
Prints the DNS records to create. Needs the Admin role.
atoll domains verify
atoll domains rm
-y, --yes. Needs the Admin role.
atoll ci
Turn CI on and off for a git-linked project, and list, follow, rerun and cancel its runs. CI vars are set withatoll env set --ci. Every atoll ci command takes -p, --project <name>.
Run ids can be shortened to their first characters, as
atoll ci ls shows them.
atoll firewall
Edit a project’s firewall from the terminal.atoll fw is short for atoll firewall. Every command takes -p, --project <name>, and most commands that print take --json.
Changes to rules, IP blocks and managed rulesets go into a draft. atoll fw publish makes the draft live within seconds, without a redeploy. Attack mode and lifting a timed block apply at once. Anyone in the project can look at the firewall; changing it needs the Developer role.
Draft and versions
Custom rules
Custom rules run in order, before the managed rulesets, and the first terminating action wins. Name a rule by its id, its position or its name.
A condition is
"<field> <op> <value>". Several --if conditions must all match; --or starts the next group, and the rule matches when any group does. --not, or a leading !, negates one condition.
in, starts_with, ends_with and contains take comma-separated values.
--persist <duration>, from 1m to 24h, blocks the client IP that long after a deny, challenge or rate limit. With atoll fw rules edit, --persist off removes it.
IP blocking
Managed rulesets
atoll fw managed list shows the rulesets. atoll fw managed set <ruleset> <mode> sets one in the draft:
The OWASP core rules take more options:
--paranoia 1 to 4, --threshold (the anomaly score that blocks; 5 by default), --group <group>=off|log|deny for one rule group, --inspect-bodies or --no-inspect-bodies, and --max-body such as 1MB (larger requests are refused).
Attack mode and traffic
--for turns it off again after a time, such as 1h, 6h or 24h.
--by lists the top values of ip, path, host, country, asn, user-agent or rule; -n, --limit sets how many (1 to 100). --action keeps one of allowed, logged, challenged, denied, rate-limited or redirected, and --rule the requests one rule decided.