Account
Setup status
Pilot path
First real site
Sign in to load the guided setup path.
Signed-in user
Operational next steps
- Use
./tsc setupto sign in and register your SSH key. - Use
./tsc site registerand./tsc env addfor registry changes. - Use
./tsc launch,./tsc deploy,./tsc restore, and./tsc sync-filesfor Drupal operations. - Use CI Setup when you need a browser bridge for deploy tokens and provider templates.
Sites
Registry
CLI-first registry
./tsc site register --name "Client site" ./tsc env add --name Production --profile drupal-basic ./tsc site rename site-abc12345 --name "New name" ./tsc env rename Production --name Stage
Environments
Deployments
Status and rollback
Support
Tickets
Create ticket
Organisation
Access and members
Create an organisation
Request access
CI setup
Deploy tokens and provider templates
CLI equivalent
./tsc deploy-tokens create --environment Production --name "Main branch" ./tsc ci-template --provider github-actions --environment Production --branch main
Create deploy token
Generate provider template
CLI
Primary workflow
Install and initialise
The CI Tool lives inside a Drupal project as ./tsc. Install the launcher when you want to run tsc from anywhere on your PATH.
./tsc install --bin-dir ~/.local/bin ./tsc init ./tsc settings ./tsc setup
Command glossary
install- Installs a global launcher that finds the nearest TSC project and delegates to its bundled tool.
init- Detects Drupal defaults and writes
.tsc/config. settings- Adds the Drupal environment settings block needed by Docker Compose and hosted deploys.
setup- Signs in, checks organisation access, and registers an SSH key when needed.
version- Prints the bundled client release version.
update- Updates the bundled client from the public update feed.
clean- Removes generated local client state; use
--dry-runfirst.
First useful run
./tsc site register --name "Client site" ./tsc env add --name Demo --profile demo ./tsc launch --environment Demo --sql ./site.sql.gz
Sites
./tsc site register --name "Client site" ./tsc site create --site-name "Client site" --environment Demo ./tsc site list ./tsc site show ./tsc site show site-abc12345 ./tsc site rename site-abc12345 --name "New name" ./tsc site deregister site-abc12345
Site terms
- Site
- The top-level registry record. It groups environments, artifacts, deploy tokens, and deployments.
- Site ID
- The stable identifier used by API calls and CI templates, for example
client-site-a1b2c3d4. site register- Creates only the registry entry.
site create- Compatibility path for launch-style creation; it provisions through the hosted workflow.
site deregister- Hides a site from the registry after active environments are removed.
Environments
./tsc env add --name Demo --profile demo ./tsc env add site-abc12345 --name Stage --profile drupal-basic --profile-extra cloudfront ./tsc env add --domain www.example.com --profile drupal-basic ./tsc env list ./tsc env list site-abc12345 ./tsc env rename Demo --name Stage ./tsc env remove Stage
Environment terms
- Environment
- A runtime target under a site, such as Demo, Stage, or Production.
- Profile
- The infrastructure shape. Current values are
demoanddrupal-basic. - Profile extra
- An optional capability added to a profile, such as
cloudfront. - Custom domain
- The public hostname for an environment. Supplying
--domaincan also name the environment.
Deploy lifecycle
./tsc launch --environment Demo --sql ./site.sql.gz ./tsc launch --environment Demo --install-profile standard ./tsc deploy --environment Demo ./tsc restore --environment Demo --sql ./site.sql.gz ./tsc sync-files --environment Demo ./tsc retire --environment Demo ./tsc destroy --environment Demo
Deploy terms
launch- Bundles the project, uploads artifacts, provisions infrastructure, and deploys the first release.
deploy- Uploads and deploys a new code bundle to an existing environment.
restore- Restores a SQL dump, then runs Drupal post-restore maintenance.
sync-files- Uploads Drupal public files separately from deployable code.
retire- Retires temporary hosted infrastructure.
destroy- Alias for
retire.
Deploy options
--environment NAME- Selects the target environment by display name or ID.
--sql PATH- Uses a specific database dump for launch or restore. Without it, restore uses
DEFAULT_SQL_DUMP. --install-profile PROFILE- Installs a Drupal profile when launching without a database dump.
--no-ssh-keys- Launches without adding registered SSH keys to the instance.
--verbose- Streams hosted output while still writing the local log file.
Artifacts and rollback
./tsc online bundle --site-name "Client site" ./tsc online status --environment Demo ./tsc online deployments list --environment Demo --json ./tsc online deployments current --environment Demo ./tsc online deployments rollback dep-abc123 --environment Demo --yes
Status and URLs
./tsc status ./tsc status arn:aws:states:eu-west-2:123:execution:job ./tsc url --environment Demo ./tsc online deployments dashboard --environment Demo --json ./tsc online artifacts list --site-id site-abc12345 --json
Drupal tools
./tsc drush --environment Demo status ./tsc drush --environment Demo cr ./tsc drush --environment Demo --ssh-key ~/.ssh/id_ed25519 uli ./tsc drush-aliases write --environment Demo ./tsc drush-aliases write --all --output drush/sites/tsc.site.yml
Operations terms
status- Shows the latest hosted job, or one specific Step Functions execution ARN.
url- Prints the public URL for an environment.
drush- Runs Drush against a hosted environment over SSH.
drush-aliases write- Writes local Drush alias YAML for one environment or every environment.
online- Direct hosted API mode for debugging and lower-level automation.
Hosted API mode
online bundle- Creates an uploadable local artifact bundle without starting a deploy.
online launch- Calls the hosted launch API directly.
online deploy- Calls the hosted deploy API directly.
online restore- Calls the hosted restore API directly.
online sync-files- Calls the hosted public-files sync API directly.
online retire- Calls the hosted retire API directly.
online deployments- Lists, shows, summarizes, and rolls back deployment runs.
online artifacts- Lists reusable code bundles for a site.
Local safety checks
./tsc settings --check ./tsc clean --dry-run ./tsc clean ./tsc version ./tsc update --force
Sign-in and keys
./tsc login ./tsc whoami ./tsc whoami --json ./tsc keys add ~/.ssh/id_ed25519.pub --label "Laptop" ./tsc keys list ./tsc keys list --json ./tsc logout
Deploy tokens
./tsc deploy-tokens create --environment Demo --name "Main branch" ./tsc deploy-tokens create --site-id site-abc12345 --environment Demo --json ./tsc deploy-tokens list --environment Demo ./tsc deploy-tokens revoke token-abc123
CI templates
./tsc ci-template --provider github-actions --environment Demo --branch main ./tsc ci-template --provider gitlab --environment Demo --branch main ./tsc ci-template --provider bitbucket --environment Demo --branch main ./tsc ci-template --provider azure-pipelines --environment Demo --branch main ./tsc ci-template --provider shell --environment Demo --token-secret-name TSC_DEPLOY_TOKEN ./tsc ci-template --kind shell --environment Demo --output deploy.sh
CI terms
- Deploy token
- A scoped credential for CI systems to deploy one site/environment without a browser sign-in.
- Token secret name
- The CI secret variable name used by generated templates. Default:
TSC_DEPLOY_TOKEN. - Provider
- The CI system template format: GitHub Actions, GitLab, Bitbucket, Azure Pipelines, or shell.
--json- Returns machine-readable output for scripts.
- SSH key
- A public key registered to allow shell and Drush access where the environment supports it.
Project config
The main local file is .tsc/config. It is loaded by the CLI Tool and by deploy helper scripts.
APP_SERVICE=php COMPOSE_PROJECT_NAME=client-site COMPOSE_FILE=.tsc/docker-compose.yml DRUSH_BIN=vendor/bin/drush DRUPAL_WEB_ROOT=web DEFAULT_SQL_DUMP=./client-site.sql.gz TSC_API_URL=https://api.twosmallclouds.com
Config glossary
APP_SERVICE- Docker Compose service that runs Drupal/PHP commands.
COMPOSE_PROJECT_NAME- Compose project name; also used for local container and volume naming.
COMPOSE_FILE- Compose file path used by local helper scripts.
DRUSH_BIN- Path to Drush inside the Drupal codebase.
DRUPAL_WEB_ROOT- Drupal web root, usually
webordocroot. DEFAULT_SQL_DUMP- Fallback database dump used by launch and restore.
TSC_API_URL- Hosted API endpoint used by CLI API calls.
Hosted runtime config
DEPLOY_USER- SSH user for runtime deployment hosts.
DEPLOY_PATH- Base path used for releases and shared files on the host.
PHP_IMAGE- PHP image used for Drupal runtime containers.
AUTO_BACKUP- Controls pre-deploy backup behaviour.
RUN_COMPOSER_INSTALL- Controls Composer install during deploy flows.
RUN_DB_UPDATES- Controls Drupal database updates during deploy flows.
Environment override
./tsc settings adds a Drupal settings block that reads database, hash salt, and trusted host values from environment variables.
./tsc settings --check ./tsc settings
Download latest package
Unpack the CI Tool into the root of a Drupal site, then run ./tsc init.
Loading latest release...
Unpack into a site folder
The package contains the tsc launcher and bundled .tsc helpers. Use --strip-components=1 so those files land directly in the project root.
cd /path/to/drupal-site tar -xzf ~/Downloads/tsc-client-VERSION.tar.gz --strip-components=1 ./tsc init ./tsc settings --check