Skip to content

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.

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.

Connect to your VPS as root, or use sudo. Then download the CLI:

Terminal window
curl -fsSL https://get.buuck.io/cli -o /usr/local/bin/buuck
chmod +x /usr/local/bin/buuck

Check the version:

Terminal window
buuck --version

The command shows the CLI version number.

Show the command list:

Terminal window
buuck --help

Show the options for one command:

Terminal window
buuck install --help
buuck update --help
buuck upgrade --help

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.

Command builder

Fill in your values to build a one-liner Buuck CLI command.

From your purchase email (robot$…)

For Let's Encrypt certificate notices

Implicit TLS (usually off on port 587)

Adds --yes

Opens ports 22, 80, 443

Do not start Docker

sudo buuck install --yes

Prepare the DNS records first. Read Step 1 in the install guide.

Then run:

Terminal window
sudo buuck install

The CLI asks for these values from your purchase email and from your own setup:

  1. Registry user name (it starts with robot$)
  2. License key
  3. Edition (start or pro)
  4. Buuck version (for example v0.0.1)
  5. API domain (for example api.example.com)
  6. Dashboard domain (for example admin.example.com)
  7. Booking domain (for example book.example.com)
  8. Logs domain (for example logs.example.com)
  9. Email address for TLS certificate notices
  10. Email provider (usually smtp)
  11. From address for booking emails
  12. 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:

  1. Installs Docker Engine and Docker Compose if they are missing.
  2. Can open ports 22, 80 and 443 with ufw if you say yes.
  3. Checks your DNS records.
  4. Creates /opt/buuck with compose.yaml, Caddyfile, .env and dozzle-users.yml.
  5. Generates the database passwords, the cache password, the auth secret, the setup token and the log viewer password.
  6. Logs in to the Buuck registry.
  7. Pulls the images for your edition and starts Buuck.
  8. Waits until the API answers over HTTPS.
  9. 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.

Give the install values as flags when you do not want prompts. The CLI does not ask for a value that you already give.

Terminal window
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 \
--acme-email [email protected] \
--email-from 'Your Business <[email protected]>' \
--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:

Terminal window
buuck install --help

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:

Terminal window
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_EMAIL_FROM='Your Business <[email protected]>' \
BUUCK_SMTP_HOST=smtp.example.com \
BUUCK_SMTP_USER='smtp-user' \
BUUCK_SMTP_PASS='smtp-password' \
buuck install

Your license includes all later versions of your edition. We send you an email for each new version.

Run:

Terminal window
sudo buuck update

The 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:

Terminal window
sudo buuck update --version v0.0.1 --services dashboard,booking

Default 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.

Use this command when you need a newer CLI. A newer CLI also includes new Compose and Caddy templates.

Check for a newer CLI:

Terminal window
buuck upgrade --check

Install the newer CLI:

Terminal window
sudo buuck upgrade

The 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.

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.