Skip to content

CLI Reference

All resource commands follow the pattern:

appliku <resource> <action> --team <team-path> [--app <app-id>] [options]

Most list commands support JSON output:

appliku apps list --team my-team --output json

Use --help on any command for full option details:

appliku apps --help
appliku apps logs --help

Authentication commands

These root-level commands manage your local session.

appliku login                        # Start browser-based login
appliku login --token YOUR_TOKEN     # Log in with an API token directly
appliku whoami                       # Show the authenticated user
appliku logout                       # Remove the saved token

teams

List and inspect your Appliku teams.

# List all teams you belong to
appliku teams list

# Get details for a specific team
appliku teams get my-team

Note

teams get returns the same set of fields whatever your membership level, but values you are not entitled to read come back as null:

  • Admins see null for the billing fields (paddle_*), can_invite_members and name_picked.
  • Developers additionally see null for the deploy keys (public_key, public_key_ed25519) and the notification webhook URLs (slack_webhook_url, discord_webhook_url).

A null therefore means either "not set" or "not visible to you" — for billing-related values, check as an owner before concluding a team has no subscription.


apps

Manage applications and fetch their logs.

# List applications in a team
appliku apps list --team my-team

Create an application

Create an application from GitHub, GitLab, or a custom Git repository:

# GitHub repository
appliku apps create github acme/example \
  --team my-team --name example --branch main --server 12

# GitLab project path or numeric project ID
appliku apps create gitlab group/subgroup/example \
  --team my-team --name example --branch main --cluster 7

# Custom Git repository
appliku apps create custom git@example.com:team/example.git \
  --team my-team --name example --branch main --server 12 \
  --private-key-file ~/.ssh/example_deploy_key

All three commands require exactly one positive --server or --cluster ID. Use --static-site to create a static site. Use --output json to return one JSON object with the application ID, name, provider, repository, branch, target, and static-site state.

For a custom HTTPS URL that contains credentials, do not put the URL in the command. Read it from a file or standard input:

appliku apps create custom \
  --team my-team --name example --branch main --server 12 \
  --git-url-file repository-url.txt

printf '%s\n' "$CUSTOM_GIT_URL" | appliku apps create custom \
  --team my-team --name example --branch main --server 12 \
  --git-url-file -

The command reads an SSH private key only from --private-key-file. It does not print the private key or the credential-bearing URL. Table and JSON output use only safe application fields.

Note

Create makes the application and starts the initial appliku.yml inspection. It does not deploy the application. Complete its setup, then deploy it with appliku apps deploy --team my-team --app <id>.

Application logs

There are two distinct log commands:

apps logs — fetches application-level logs using an async two-step flow. Use this to get logs across one or more processes:

# Fetch logs for the web process
appliku apps logs --team my-team --app 42 --process web

# Fetch logs for multiple processes
appliku apps logs --team my-team --app 42 --process web --process celery

# Limit output to the last N lines
appliku apps logs --team my-team --app 42 --process web --tail 200

apps service-logs — fetches service logs directly in a single request. Faster, but limited to one process at a time:

appliku apps service-logs --team my-team --app 42 --service web --tail 100

Nginx and load balancer logs

# Fetch nginx access logs for a domain
appliku apps nginx-logs --team my-team --app 42 --domain example.com --tail 100

# Fetch load balancer logs for a domain
appliku apps load-balancer-logs --team my-team --app 42 --domain example.com --tail 100

Note

apps load-balancer-logs is only available for applications deployed to a cluster, since the load balancer is a cluster node. For an application running on a single server, use apps nginx-logs for the same per-domain access and error logs, or apps logs for the application's own output.


deployments

Inspect deployments and their build logs.

# List all deployments for an app
appliku deployments list --team my-team --app 42

# Show only the latest deployment
appliku deployments latest --team my-team --app 42

# Fetch logs for a specific deployment
appliku deployments logs --team my-team --id 1234

domains

Manage custom domains attached to an application.

# List domains
appliku domains list --team my-team --app 42

# Add a domain
appliku domains create --team my-team --app 42 --domain example.com

# Remove a domain
appliku domains delete --team my-team --app 42 --id 7

# Verify DNS configuration for a domain
appliku domains check-dns --team my-team --app 42 --domain example.com

datastores

Manage attached datastores (PostgreSQL, MySQL, Redis, etc.).

appliku datastores list    --team my-team --app 42
appliku datastores start   --team my-team --app 42 --id 5
appliku datastores stop    --team my-team --app 42 --id 5
appliku datastores restart --team my-team --app 42 --id 5
appliku datastores delete  --team my-team --app 42 --id 5

volumes

Manage persistent volumes attached to an application.

appliku volumes list   --team my-team --app 42
appliku volumes delete --team my-team --app 42 --id 3

crons

Manage cron jobs for an application.

appliku crons list   --team my-team --app 42
appliku crons delete --team my-team --app 42 --id 8

clusters

Manage Docker Swarm clusters.

appliku clusters list   --team my-team
appliku clusters delete --team my-team --id 2

servers

Inspect servers attached to your team.

appliku servers list --team my-team
appliku servers get  --team my-team --id 10

invites

Manage pending team invitations.

appliku invites list   --team my-team
appliku invites delete --team my-team --id 4

migrations

Manage and inspect database migrations.

appliku migrations list --team my-team
appliku migrations logs --team my-team --id 99

ssh-keys

Manage the SSH public keys associated with your account. These keys are used for server access.

# List your SSH public keys
appliku ssh-keys list

# Add a new SSH public key
appliku ssh-keys add --key "ssh-rsa AAAA... user@host"

# Add your existing public key from a file
appliku ssh-keys add --key "$(cat ~/.ssh/id_ed25519.pub)"

# Remove an SSH public key by ID
appliku ssh-keys delete --id 12

Generating an SSH key pair

If you don't have a key yet, generate one with:

ssh-keygen -t ed25519 -C "your_email@example.com"

This creates two files: ~/.ssh/id_ed25519 (private key — keep this safe) and ~/.ssh/id_ed25519.pub (public key). Then add the public key to Appliku:

appliku ssh-keys add --key "$(cat ~/.ssh/id_ed25519.pub)"