Buuck CLI
The Buuck CLI is a single program named buuck. You use it on your server to manage your Buuck installation.
This page tells you how to get the CLI and how to use its commands. For DNS records, first account setup, backups and service checks, read the install Buuck guide.
Commands
Section titled “Commands”| Command | Function |
|---|---|
buuck install |
Installs Buuck on the server. Writes the Compose files and starts the services. |
buuck update |
Pulls new Buuck product images and recreates the selected services. |
buuck upgrade |
Replaces the buuck program with a newer CLI from get.buuck.io. |
Get the CLI
Section titled “Get the CLI”Connect to your VPS as root, or use sudo. Then download the CLI:
curl -fsSL https://get.buuck.io/cli -o /usr/local/bin/buuckchmod +x /usr/local/bin/buuckCheck the version:
buuck --versionThe command shows the CLI version number.
Show the command list:
buuck --helpShow the options for one command:
buuck install --helpbuuck update --helpbuuck upgrade --helpCommand builder
Section titled “Command builder”Fill the form with values from your purchase email. Copy the command. Then run the command on your VPS.
The builder uses flags. It adds --yes by default so the CLI does not ask questions.
Fill in your values to build a one-liner Buuck CLI command.
sudo buuck install --yes
Install Buuck
Section titled “Install Buuck”Prepare the DNS records first. Read Step 1 in the install guide.
Then run:
sudo buuck installThe CLI asks for these values from your purchase email and from your own setup:
- Registry user name (it starts with
robot$) - License key
- Edition (
startorpro) - Buuck version (for example
v0.0.1) - API domain (for example
api.example.com) - Dashboard domain (for example
admin.example.com) - Booking domain (for example
book.example.com) - Logs domain (for example
logs.example.com) - Email address for TLS certificate notices
- Email provider (usually
smtp) - From address for booking emails
- SMTP host, port, user, password and secure setting
Use the registry user name and the license key from the same purchase email. Those credentials already match your edition (Start → project buuck, Pro → project buuck-pro).
Then the CLI shows a summary. Type y to continue.
The CLI then does this work for you:
- Installs Docker Engine and Docker Compose if they are missing.
- Can open ports 22, 80 and 443 with
ufwif you say yes. - Checks your DNS records.
- Creates
/opt/buuckwithcompose.yaml,Caddyfile,.envanddozzle-users.yml. - Generates the database passwords, the cache password, the auth secret, the setup token and the log viewer password.
- Logs in to the Buuck registry.
- Pulls the images for your edition and starts Buuck.
- Waits until the API answers over HTTPS.
- Prints the setup link for the first account.
The first start needs about 2 to 3 minutes.
After the install, check the services and make the first account. Read Step 3 and Step 4 in the install guide.
Pass values with flags
Section titled “Pass values with flags”Give the install values as flags when you do not want prompts. The CLI does not ask for a value that you already give.
sudo buuck install \ --registry-user 'robot$YOUR-HASH' \ --license-key 'YOUR-LICENSE-KEY' \ --edition start \ --version v0.0.1 \ --api-domain api.example.com \ --dashboard-domain admin.example.com \ --booking-domain book.example.com \ --logs-domain logs.example.com \ --smtp-host smtp.example.com \ --smtp-user 'smtp-user' \ --smtp-pass 'smtp-password'Put the registry user name in single quotes. The name contains $.
Useful flags:
| Flag | Function |
|---|---|
--yes / -y |
Do not ask questions. Stop if a required value is missing. |
--write-files-only |
Write the install files only. Do not start Docker. |
--skip-dns-check |
Do not check the DNS records. |
--skip-docker-install |
Do not install Docker. Stop if Docker is missing. |
--configure-ufw |
Open ports 22, 80 and 443 with ufw. |
--reset-secrets |
Make new database and auth secrets. This breaks an existing database. |
--install-dir |
Install directory. The default is /opt/buuck. |
Show all flags:
buuck install --helpPass values with environment variables
Section titled “Pass values with environment variables”Each flag also has an environment variable. The flag has priority if both are set.
| Flag | Environment variable |
|---|---|
--registry-user |
BUUCK_REGISTRY_USER |
--license-key |
BUUCK_LICENSE_KEY |
--edition |
BUUCK_EDITION |
--version |
BUUCK_VERSION |
--api-domain |
BUUCK_API_DOMAIN |
--dashboard-domain |
BUUCK_DASHBOARD_DOMAIN |
--booking-domain |
BUUCK_BOOKING_DOMAIN |
--logs-domain |
BUUCK_LOGS_DOMAIN |
--acme-email |
BUUCK_ACME_EMAIL |
--email-provider |
BUUCK_EMAIL_PROVIDER |
--email-from |
BUUCK_EMAIL_FROM |
--smtp-host |
BUUCK_SMTP_HOST |
--smtp-port |
BUUCK_SMTP_PORT |
--smtp-user |
BUUCK_SMTP_USER |
--smtp-pass |
BUUCK_SMTP_PASS |
--smtp-secure |
BUUCK_SMTP_SECURE |
--install-dir |
BUUCK_INSTALL_DIR |
--registry |
BUUCK_REGISTRY |
--yes |
BUUCK_NONINTERACTIVE=1 |
--write-files-only |
BUUCK_WRITE_FILES_ONLY=1 |
--skip-dns-check |
BUUCK_SKIP_DNS_CHECK=1 |
--skip-docker-install |
BUUCK_SKIP_DOCKER_INSTALL=1 |
--configure-ufw |
BUUCK_CONFIGURE_UFW=1 |
--reset-secrets |
BUUCK_RESET_SECRETS=1 |
Example with environment variables and --yes:
sudo BUUCK_NONINTERACTIVE=1 \ BUUCK_REGISTRY_USER='robot$YOUR-HASH' \ BUUCK_LICENSE_KEY='YOUR-LICENSE-KEY' \ BUUCK_EDITION=start \ BUUCK_VERSION=v0.0.1 \ BUUCK_API_DOMAIN=api.example.com \ BUUCK_DASHBOARD_DOMAIN=admin.example.com \ BUUCK_BOOKING_DOMAIN=book.example.com \ BUUCK_LOGS_DOMAIN=logs.example.com \ BUUCK_SMTP_HOST=smtp.example.com \ BUUCK_SMTP_USER='smtp-user' \ BUUCK_SMTP_PASS='smtp-password' \ buuck installUpdate the product
Section titled “Update the product”Your license includes all later versions of your edition. We send you an email for each new version.
Run:
sudo buuck updateThe CLI asks for the new version (for example v0.0.1) and which services to update. It changes BUUCK_VERSION in /opt/buuck/.env, pulls the new images for your edition, runs database migrations when needed, and recreates only the selected services. The database keeps your data.
To update only some services:
sudo buuck update --version v0.0.1 --services dashboard,bookingDefault services: db-migrate,server,dashboard,booking.
Useful flags:
| Flag | Function |
|---|---|
--version |
Image tag. Writes BUUCK_VERSION in .env. |
--services |
Comma-separated Compose services. |
--registry-user / --license-key |
Log in to the registry before the pull. |
--skip-pull |
Do not pull. Recreate from local images only. |
--force-recreate |
Force recreate of the selected services. |
--yes / -y |
Do not ask questions. |
buuck update does not add new Compose services. If your install has missing services, upgrade the CLI first. Then run buuck install again. The install overwrites compose.yaml and the Caddyfile. It keeps the database secrets.
Upgrade the CLI
Section titled “Upgrade the CLI”Use this command when you need a newer CLI. A newer CLI also includes new Compose and Caddy templates.
Check for a newer CLI:
buuck upgrade --checkInstall the newer CLI:
sudo buuck upgradeThe command downloads https://get.buuck.io/cli and replaces the current buuck binary.
Useful flags:
| Flag | Function |
|---|---|
--check |
Show if a newer CLI is available. Do not replace the binary. |
--force |
Download and replace even when the version is the same. |
--yes / -y |
Do not ask for confirmation. |
--base-url |
Download host. The default is https://get.buuck.io. |
After a CLI upgrade that changes Compose or Caddy, run sudo buuck install again if you need the new files. Keep the secrets. Then run sudo buuck update if you also need new product images.
Problems
Section titled “Problems”| Problem | Cause and correction |
|---|---|
The command shows Run as root. |
Run the command with sudo, or sign in as root. |
Docker shows unauthorized or denied for a pull. |
The registry user name or the license key is not correct, or the credentials do not match your edition. Put the registry user name in single quotes. |
Docker shows manifest unknown for a pull. |
The value of --version / BUUCK_VERSION is not correct, or the image path does not match your edition. Compare the value with your purchase email. |
buuck upgrade says it only works for the compiled binary. |
You ran the source with bun run. Download the CLI from https://get.buuck.io/cli and use that binary. |
buuck upgrade --check shows Remote CLI: unknown. |
The VPS cannot read https://get.buuck.io/cli.version. Check the network and the DNS. |
| The install stops because a value is missing. | You used --yes without all required flags or environment variables. Add the missing values, or run without --yes. |
New Compose services are missing after buuck update. |
Run buuck upgrade, then buuck install (keep secrets), then buuck update if needed. |
If a problem continues, answer the email that we sent to you after you bought Buuck. Add the messages of the services to your answer.