Deploy from the CLI
The CLI deploys a storefront from a directory on your machine, without a repository connected. Use it for a first push, for a CI step, or for a project whose repository isn't connected yet. For day-to-day work, connect Git and let a push do it.
There are two levels: one command that runs the whole pipeline, and the sites commands that expose each step.
revenexx tenants use <slug>.One command
If you have a theme or a build directory in front of you, revenexx deploy finds or creates the site by name, uploads, and builds — and for a theme, registers it and installs it on your tenant:
# A Blökkli theme: site deploy, registry registration, publish and install
revenexx deploy theme .
# Any directory as a plain site: find-or-create, upload, build
revenexx deploy site .
Both take the directory as their argument (. for the current one), and deploy theme expects a theme.json there.
Useful flags: --site-id to target an existing site instead of matching by name, --name to set the site name, --framework / --adapter / --install-command / --build-command / --output-directory to override the build configuration, --timeout to wait longer for a slow build, and --no-publish / --no-install to skip the marketplace steps for a theme.
Note the subcommands are not prefixed with sites- — it's revenexx deploy theme, not revenexx deploy sites-theme. Full flag reference: revenexx deploy.
These commands come from a CLI plugin, so they're present when the CLI is built with it — see Scaffolding.
Step by step
For finer control over individual deployments, the revenexx sites commands expose each step on its own. You need the site's ID: create the site with revenexx sites create or in Cockpit under Experience Studio → Sites, then list your sites with revenexx sites list.
Create a deployment from your storefront code. --code . packages the current directory; --activate true makes the new build live as soon as it finishes:
revenexx sites create-deployment --site-id <SITE_ID> --activate true --code .
If you didn't activate on create, switch the site to a finished deployment by its ID:
revenexx sites update-site-deployment --site-id <SITE_ID> --deployment-id <DEPLOYMENT_ID>
Review the deployment history, or roll back by activating an earlier one:
revenexx sites list-deployments --site-id <SITE_ID>
For a site connected to a Git repository, build from a branch or commit instead of uploading code — nothing leaves your machine, because the platform fetches from the repository:
revenexx sites create-vcs-deployment --site-id <SITE_ID> --type branch --reference main --activate true
Flags vary per command — run revenexx sites <command> --help for the authoritative list, or read the sites reference.
Pointing the CLI somewhere else
The CLI has no project file. Endpoint and tenant come from your sign-in or from the environment:
revenexx login --token <API_KEY> --tenant <slug>
revenexx tenants use <slug>
Or set them in the environment, which is what a CI job wants:
REVENEXX_API_KEY=...
REVENEXX_TENANT=...
REVENEXX_API_URL=https://api.revenexx.com/v1
See CLI configuration.
Build settings — install command, build command, output directory, framework — are properties of the site, not of your checkout. Set them with revenexx sites update, or in Cockpit. See Build configuration.
Debugging
- A configuration change had no effect. Build settings apply to the next deployment. Create a fresh one.
revenexx deployisn't a command. The CLI you have was built without the deploy plugin — see Scaffolding.- The build timed out waiting.
--timeoutonly changes how long the CLI waits; the build carries on regardless. Check its status withrevenexx sites list-deployments. - A 401 on any command. The API key or the selected tenant is wrong. Re-run
revenexx login.
Related
- Deploy from Git — the push-to-deploy workflow
- Deploy manually — uploading a
.tar.gzwith no repository - Build configuration — the settings a deployment builds with
- Deployments — statuses and build logs
- CLI reference — every
sitescommand and flag