Account
Setup status
Pilot path
First real site
Sign in to load the guided setup path.
Signed-in user
Operational next steps
- Register a site, then add at least one environment.
- Add an SSH key before launching infrastructure.
- Create a deploy token and CI template for repeatable web-native deploys.
- Use the CLI for local database, files, and project bundling tasks.
Sites
Registry
Environments
Runtime targets
Deployments
Status and rollback
Tasks
Environment operations
Artifacts
Uploads and reusable artifacts
Manual site upload
Upload a structured Drupal archive, prepare launch artifacts, then launch the selected environment with its database and files.
Archive structure
- Use one
.tar.gz,.tgz, or.zipfile. - The archive may contain files at root or inside one top-level folder.
- The Drupal root must include
composer.jsonandweb/index.php. If.tsc/is missing, the prep job adds the deploy helpers. - Public files must be at
web/sites/default/files. - Put one DB dump at root as
db.sql,db.sql.gz,site.sql,site.sql.gz, or any single.sql/.sql.gzfile, or underdatabase/.
my-site/
composer.json
composer.lock
web/
index.php
sites/default/files/
db.sql.gz
The prep job adds TSC deploy helpers when needed, builds deployable code, normalizes the DB dump as db.sql.gz, and packages public files. It rejects missing DB/files, multiple DB dumps, multiple likely Drupal roots, and unsafe archive paths.
Deploy tokens
CI access
SSH keys
User access keys
Support
Tickets
Create ticket
Organisation
Access and members
Create an organisation
Request access
CI templates
Web-native deployment
CLI Tool
CLI glossary
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