CLI Reference¶
All resource commands follow the pattern:
Most list commands support JSON output:
Use --help on any command for full option details:
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
nullfor the billing fields (paddle_*),can_invite_membersandname_picked. - Developers additionally see
nullfor 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.
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:
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.
crons¶
Manage cron jobs for an application.
clusters¶
Manage Docker Swarm clusters.
servers¶
Inspect servers attached to your team.
invites¶
Manage pending team invitations.
migrations¶
Manage and inspect database migrations.
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:
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: