Skip to main content

Portainer Client Tools - CLI for managing Portainer from client

Project description

ptctools - Portainer Client Tools

CLI for managing Portainer stacks, volume backups, and database operations.

Note: Only tested on Portainer 2.33.6

Installation

# From Git repository
uv tool install git+https://github.com/tamntlib/ptctools.git
# or
uv tool install ptctools --from git+https://github.com/tamntlib/ptctools.git

# From local path
uv tool install . --no-cache --reinstall

Usage

export PORTAINER_URL=https://portainer.example.com
export PORTAINER_ACCESS_TOKEN=your-api-key
export S3_ACCESS_KEY=your-s3-key
export S3_SECRET_KEY=your-s3-secret
export S3_ENDPOINT=https://s3.<region>.amazonaws.com

# Stack deployment
ptctools stack deploy -u $PORTAINER_URL -n mystack -f compose.yaml

# Volume backup/restore (uses Duplicati)
ptctools volume backup -u $PORTAINER_URL -v vol1,vol2 -o s3://mybucket
ptctools volume restore -u $PORTAINER_URL -i s3://mybucket/vol1  # volume name derived from URI path
ptctools volume restore -u $PORTAINER_URL -v vol1 -i s3://mybucket/vol1  # explicit volume name

# Database backup/restore (uses minio/mc for S3)
ptctools db backup -u $PORTAINER_URL -c container_id -v db_data \
  --db-user postgres --db-name mydb -o backup.sql.gz
ptctools db backup -u $PORTAINER_URL -c container_id -v db_data \
  --db-user postgres --db-name mydb -o s3://mybucket/backups/db.sql.gz

ptctools db restore -u $PORTAINER_URL -c container_id -v db_data \
  --db-user postgres --db-name mydb -i backup.sql.gz
ptctools db restore -u $PORTAINER_URL -c container_id -v db_data \
  --db-user postgres --db-name mydb -i s3://mybucket/backups/db.sql.gz

# Config management
# Create config from inline data
ptctools config set -u $PORTAINER_URL -n my-config -d "config content"
ptctools config set -u $PORTAINER_URL -n nginx.conf -f ./nginx.conf
ptctools config set -u $PORTAINER_URL -n my-config -d "new content" --force
ptctools config list -u $PORTAINER_URL
ptctools config get -u $PORTAINER_URL -n my-config
ptctools config delete -u $PORTAINER_URL -n my-config

# Utils - local Duplicati operations
ptctools utils backup --input ./data --output s3://backups/mydata
ptctools utils restore --input s3://backups/mydata --output ./restored

Environment Variables

  • PORTAINER_ACCESS_TOKEN - Portainer API key (required)
  • S3_ACCESS_KEY / S3_SECRET_KEY - S3 credentials (for backup commands)
  • S3_ENDPOINT - S3/MinIO endpoint URL
  • DUPLICATI_PASSPHRASE - Backup encryption passphrase (optional, for volume backups)

Commands

ptctools stack deploy

Deploy or update a Docker stack in Portainer.

ptctools volume backup/restore

  • backup: Backup multiple Docker volumes (comma-separated) to S3 using Duplicati container.
  • restore: Restore a single Docker volume from S3. Volume name can be specified via --volume or derived from the input URI path.

ptctools db backup/restore

Backup/restore PostgreSQL database. Supports both local files and S3 URIs.

  • Uses pg_dump/psql for database operations
  • Uses minio/mc container for S3 transfers

ptctools utils backup/restore

Local backup/restore operations using Duplicati CLI (docker or local).

ptctools config set/get/list/delete

Manage Docker Swarm configs via Portainer API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ptctools-0.1.0.tar.gz (30.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ptctools-0.1.0-py3-none-any.whl (25.5 kB view details)

Uploaded Python 3

File details

Details for the file ptctools-0.1.0.tar.gz.

File metadata

  • Download URL: ptctools-0.1.0.tar.gz
  • Upload date:
  • Size: 30.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for ptctools-0.1.0.tar.gz
Algorithm Hash digest
SHA256 05996d4b9a5e6df1c652bf5a32e8bcc581b71189bc1eef91862f826d29988fe9
MD5 904775c6d14a9defc230ef1612525b95
BLAKE2b-256 4f22889497874d93165543816091ecd5ce33ec2c45420199de36d3c134c22cd6

See more details on using hashes here.

File details

Details for the file ptctools-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: ptctools-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 25.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.7

File hashes

Hashes for ptctools-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b1a14bd929f6aa8893797b52150eb5e7aa97ef74b77623a51d932fd51d673150
MD5 0a20b0aabe3fde127f1641061e6dfd41
BLAKE2b-256 77e2f707c0e882e51b7caa9072cb93107c0ad9664c7eadd48bd3edc55db10bca

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page