Server
Accounts
Accounts are on when the server has a database. People sign up in the panel, work in orgs, and the CLI signs in withatoll login or a personal access token.
Admin area
Platform admins (seeATOLL_AUTH_ADMIN_EMAILS) get an Admin page in the panel: users and orgs (search, suspend, delete, make admin), system status (build queue, replicas, runners, storage), revenue, and “view as user”. It needs accounts, so a server without a database has none.
- A suspended user can’t sign in; their sessions end and their tokens stop working until they are unsuspended.
- A suspended org has its apps scaled to zero, like billing does past a limit, until it is unsuspended.
- “View as user” turns the admin’s own session into a read-only view of the panel as that user: the server refuses every change in it, and the panel shows a banner with “Stop viewing”. It only applies to the panel’s requests; a link opened in the browser still acts as the admin.
- Every admin action and every view as a user is written to an audit log, shown on the System tab.
Env vars
Build runners
See Build runners.
Email notifications
Users get emails about failed, partial, recovered and live deployments, spend limits and their org’s runners; each user picks which on the Account page and per project in its settings (see Notifications). They need accounts, so a server without a database sends none. Emails go through the SMTP server ofATOLL_AUTH_SMTP_*; without one they are written to the server log. Only verified addresses get them, and every email has an unsubscribe link and a one-click List-Unsubscribe header.
- Sending never holds up a deployment: emails are queued, retried a few times when SMTP fails, and sent once per deployment, event and user, also with several replicas.
- After an email to someone, more within the digest window are held and sent as one digest.
Regions
See Regions.
App metrics
See App metrics.
Data stores
Postgres, Redis and Files stores users create in the panel. They needATOLL_RUNTIME=kubernetes.
See Storage.
Firewall
The Helm chart sets these on atoll-edge (the server image started with
ATOLL_ROLE=edge):
See Firewall.
Database, storage, Kubernetes, domains and billing
These settings are documented next to what they configure:- Running the platform on Kubernetes: database, object storage, builds, the Kubernetes runtime
and app scaling (
ATOLL_SCALING_*: scale to zero, idle time, replica caps) - Custom domains: DNS checks, certificates and domain Ingresses
- Billing settings: Stripe, prices and free amounts
Running the platform on Kubernetes
From Running the platform on Kubernetes.Custom domains
From Custom domains.Billing settings
From Billing settings.Deploy from GitHub
From Deploy from GitHub.CI
From CI.App distribution
From App distribution.Not server settings
- The server passes
ATOLL_SERVER,ATOLL_DEPLOYMENT_ID,ATOLL_PROJECT,ATOLL_BUILD_TOKEN(a different one to each of the pod’s two containers),ATOLL_IMAGE_REPO,ATOLL_WORK_DIR,ATOLL_OUT_DIR,ATOLL_ENV_DIRandATOLL_RUNNERSto build pods. Don’t set them yourself. - On users’ machines, the CLI reads
ATOLL_SERVERandATOLL_TOKEN; see the CLI reference. - On runner hosts,
atoll-runnerreadsATOLL_SERVER,ATOLL_REGISTRATION_TOKEN,ATOLL_RUNNER_TOKEN_FILEandATOLL_JOB_TOKEN; see Build runners. - Projects can’t use env vars named
PORTor starting withATOLL_; the platform drops them at deploy time.