| name | cloudron-server-ops |
| description | Manage apps on a Cloudron server using the cloudron CLI. Covers authentication, listing, logs, exec, sync/push/pull, backups, env vars, start/stop/restart, and CI/CD integration. Use when the user wants to manage, debug, or operate installed Cloudron apps, or mentions cloudron CLI commands like cloudron logs, cloudron exec, cloudron sync, cloudron backup, or cloudron env. Use when this capability is needed. |
| metadata | {"author":"benneic"} |
Cloudron Server Operations
The cloudron CLI manages apps on a Cloudron server. All commands operate on apps, not the server itself.
Setup
sudo npm install -g cloudron
cloudron login my.example.com
Token is stored in ~/.cloudron.json.
For self-signed certificates: cloudron login my.example.com --allow-selfsigned
App targeting
Most commands require --app to specify which app:
cloudron logs --app blog.example.com
cloudron logs --app blog
cloudron logs --app 52aae895-5b7d-4625-8d4c-...
When run from a directory with CloudronManifest.json and a previously installed app, the CLI auto-detects the app (stored as appId in the per-directory config).
Commands
Listing and inspection
cloudron list
cloudron list -q
cloudron list --tag web
cloudron status --app <app>
cloudron inspect
App lifecycle
cloudron install
cloudron update --app <app>
cloudron uninstall --app <app>
cloudron repair --app <app>
cloudron clone --app <app> --location new-location
cloudron install and cloudron update accept:
--image <repo:tag> — use a pre-built Docker image
--no-backup — skip backup before update
-l, --location <subdomain> — set the app location
-s, --secondary-domains <domains> — secondary domain bindings
-p, --port-bindings <bindings> — TCP/UDP port bindings
-m, --memory-limit <bytes> — override memory limit
--versions-url <url> — install a community app from a CloudronVersions.json URL
Run state
cloudron start --app <app>
cloudron stop --app <app>
cloudron restart --app <app>
cloudron cancel --app <app>
Logs
cloudron logs --app <app>
cloudron logs --app <app> -f
cloudron logs --app <app> -l 200
cloudron logs --system
cloudron logs --system mail
Shell and exec
cloudron exec --app <app>
cloudron exec --app <app> -- ls -la /app/data
cloudron exec --app <app> -- bash -c 'echo $CLOUDRON_MYSQL_URL'
Debug mode
When an app keeps crashing, cloudron exec may disconnect. Debug mode pauses the app (skips CMD) and makes the filesystem read-write:
cloudron debug --app <app>
cloudron debug --app <app> --disable
File transfer
cloudron push --app <app> local.txt /tmp/remote.txt
cloudron push --app <app> localdir /tmp/
cloudron pull --app <app> /app/data/file.txt .
cloudron pull --app <app> /app/data/ ./backup/
cloudron sync push --app <app> ./local/ /app/data
cloudron sync push --app <app> ./local /app/data
cloudron sync push --app <app> file.txt /app/data
cloudron sync pull --app <app> /app/data/ ./local
cloudron sync pull --app <app> /app/data ./local
cloudron sync push --app <app> ./local/ /app/data --delete
cloudron sync pull --app <app> /app/data/ ./local --delete
A trailing slash on the source syncs its contents; without it, the directory itself is placed inside the destination (rsync convention).
Use --delete to remove files present only on the destination side. Use --force to remove files blocking directory creation.
For directory transfers, prefer cloudron sync; keep cloudron push/pull for one-off file copy and stream-oriented use cases.
Environment variables
cloudron env list --app <app>
cloudron env get --app <app> MY_VAR
cloudron env set --app <app> MY_VAR=value OTHER=val2
cloudron env unset --app <app> MY_VAR
Configuration
cloudron set-location --app <app> -l new-subdomain
cloudron set-location --app <app> -s "api.example.com"
cloudron set-location --app <app> -p "SSH_PORT=2222"
Backups
cloudron backup create --app <app>
cloudron backup list --app <app>
cloudron restore --app <app> --backup <backup-id>
cloudron export --app <app>
cloudron import --app <app> --backup-path /path
Backup encryption utilities (local, offline):
cloudron backup decrypt <infile> <outfile> --password <pw>
cloudron backup decrypt-dir <indir> <outdir> --password <pw>
cloudron backup encrypt <infile> <outfile> --password <pw>
Utilities
cloudron open --app <app>
cloudron init
cloudron completion
CI/CD integration
Use --server and --token to run commands non-interactively. Get API tokens from https://my.example.com/#/profile:
cloudron update \
--server my.example.com \
--token 001e7174c4cbad2272 \
--app blog.example.com \
--image username/image:tag
Global options
These apply to most commands:
| Option | Purpose |
|---|
--server <domain> | Target Cloudron server |
--token <token> | API token (for CI/CD) |
--allow-selfsigned | Accept self-signed TLS certificates |
--no-wait | Do not wait for the operation to complete |
Common workflows
Check and restart a misbehaving app
cloudron status --app <app>
cloudron logs --app <app> -l 100
cloudron restart --app <app>
Debug a crashing app
cloudron debug --app <app>
cloudron exec --app <app>
cloudron debug --app <app> --disable
Backup and restore
cloudron backup create --app <app>
cloudron backup list --app <app>
cloudron restore --app <app> --backup <id>
Set env vars for an app
cloudron env set --app <app> FEATURE_FLAG=true DEBUG=1
cloudron logs --app <app> -f
Source: benneic/cloudron-activepieces — distributed by TomeVault.