portainer-ctl


Nameportainer-ctl JSON
Version 0.2.1 PyPI version JSON
download
home_pageNone
SummaryA poor man's kubectl for docker swarm
upload_time2025-07-17 08:27:29
maintainerNone
docs_urlNone
authorHossein Naderi
requires_python>=3.8
licenseNone
keywords docker docker swarm kubectl portainer swarm
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ### Portainer controller
[![](https://img.shields.io/pypi/v/portainer-ctl)](https://pypi.org/project/portainer-ctl/)

### Install
This project is published to PyPi and you can install it using pip:
```
pip install portainer-ctl
```

You can also use the published container images:

```sh
docker pull hnaderi/pctl
# or
docker pull ghcr.io/hnaderi/pctl
```

#### Features
- Fully automated deployment
- Support for multiple config and secret
- Support for .env files and multiple variables
- Support for api tokens introduced in portainer 2.11.0

#### Usage

``` plaintext
Usage: pctl [-h] [-T API_TOKEN] [-H HOST] [-U USERNAME] [-P PASSWORD] [--debug] [-j] {deploy,stacks,configs,secrets,endpoints,tags,system} ...

Poorman's kubectl, CLI for portainer on docker swarm

Options:
  -h, --help            show this help message and exit
  -T, --api-token API_TOKEN
                        api token for user, overrides PORTAINER_TOKEN variable (default: None)
  -H, --host HOST       portainer host, overrides PORTAINER_HOST variable (default: http://127.0.0.1:9000/api)
  -U, --username USERNAME
                        username to login, overrides PORTAINER_USERNAME variable (default: admin)
  -P, --password PASSWORD
                        password for user, overrides PORTAINER_PASSWORD variable (default: admin)
  --debug               Whether or not print debugging logs (default: False)
  -j, --json            Print json output (default: False)

Commands:
  {deploy,stacks,configs,secrets,endpoints,tags,system}

No budget. No vendors. No fleet of ops. Just you, a blinking cursor, and the will to script what others buy. The rich scale with dollars. You scale with shell. Excuses cost, Automation pays!
```

You can provide host, username and password in environment:
- PORTAINER_HOST
- PORTAINER_USERNAME
- PORTAINER_PASSWORD
- PORTAINER_TOKEN

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "portainer-ctl",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "docker, docker swarm, kubectl, portainer, swarm",
    "author": "Hossein Naderi",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/47/47/baab136687e4d4f41e8f2f8c6e3d7cd238cc628753919268b7f83bc708ca/portainer_ctl-0.2.1.tar.gz",
    "platform": null,
    "description": "### Portainer controller\n[![](https://img.shields.io/pypi/v/portainer-ctl)](https://pypi.org/project/portainer-ctl/)\n\n### Install\nThis project is published to PyPi and you can install it using pip:\n```\npip install portainer-ctl\n```\n\nYou can also use the published container images:\n\n```sh\ndocker pull hnaderi/pctl\n# or\ndocker pull ghcr.io/hnaderi/pctl\n```\n\n#### Features\n- Fully automated deployment\n- Support for multiple config and secret\n- Support for .env files and multiple variables\n- Support for api tokens introduced in portainer 2.11.0\n\n#### Usage\n\n``` plaintext\nUsage: pctl [-h] [-T API_TOKEN] [-H HOST] [-U USERNAME] [-P PASSWORD] [--debug] [-j] {deploy,stacks,configs,secrets,endpoints,tags,system} ...\n\nPoorman's kubectl, CLI for portainer on docker swarm\n\nOptions:\n  -h, --help            show this help message and exit\n  -T, --api-token API_TOKEN\n                        api token for user, overrides PORTAINER_TOKEN variable (default: None)\n  -H, --host HOST       portainer host, overrides PORTAINER_HOST variable (default: http://127.0.0.1:9000/api)\n  -U, --username USERNAME\n                        username to login, overrides PORTAINER_USERNAME variable (default: admin)\n  -P, --password PASSWORD\n                        password for user, overrides PORTAINER_PASSWORD variable (default: admin)\n  --debug               Whether or not print debugging logs (default: False)\n  -j, --json            Print json output (default: False)\n\nCommands:\n  {deploy,stacks,configs,secrets,endpoints,tags,system}\n\nNo budget. No vendors. No fleet of ops. Just you, a blinking cursor, and the will to script what others buy. The rich scale with dollars. You scale with shell. Excuses cost, Automation pays!\n```\n\nYou can provide host, username and password in environment:\n- PORTAINER_HOST\n- PORTAINER_USERNAME\n- PORTAINER_PASSWORD\n- PORTAINER_TOKEN\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A poor man's kubectl for docker swarm",
    "version": "0.2.1",
    "project_urls": null,
    "split_keywords": [
        "docker",
        " docker swarm",
        " kubectl",
        " portainer",
        " swarm"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9266406bca509a6bde47f4b9cc9ecd49d73ce7f7eb317b3d138f3e741cc9d362",
                "md5": "19e723b6bea6e4bba3620298f8621d98",
                "sha256": "09b0bcfad2962145edd0c96c711003231cf76e9073a4a3a453ebe11308f963ee"
            },
            "downloads": -1,
            "filename": "portainer_ctl-0.2.1-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "19e723b6bea6e4bba3620298f8621d98",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 14675,
            "upload_time": "2025-07-17T08:27:27",
            "upload_time_iso_8601": "2025-07-17T08:27:27.913594Z",
            "url": "https://files.pythonhosted.org/packages/92/66/406bca509a6bde47f4b9cc9ecd49d73ce7f7eb317b3d138f3e741cc9d362/portainer_ctl-0.2.1-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4747baab136687e4d4f41e8f2f8c6e3d7cd238cc628753919268b7f83bc708ca",
                "md5": "a77af3ce373058204c96988849d5f961",
                "sha256": "6df5e7bfe9b0ec23ff0bb9b9d5ac25f92d5607da0ccad153145e30425c1a3f5b"
            },
            "downloads": -1,
            "filename": "portainer_ctl-0.2.1.tar.gz",
            "has_sig": false,
            "md5_digest": "a77af3ce373058204c96988849d5f961",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 29522,
            "upload_time": "2025-07-17T08:27:29",
            "upload_time_iso_8601": "2025-07-17T08:27:29.258245Z",
            "url": "https://files.pythonhosted.org/packages/47/47/baab136687e4d4f41e8f2f8c6e3d7cd238cc628753919268b7f83bc708ca/portainer_ctl-0.2.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-07-17 08:27:29",
    "github": false,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "lcname": "portainer-ctl"
}
        
Elapsed time: 0.72319s