portainer-update

A small update tool for portainer stacks

Usage no npm install needed!

<script type="module">
  import portainerUpdate from 'https://cdn.skypack.dev/portainer-update';
</script>

README

Build Status npm (tag) npm GitHub issues Libraries.io dependency status for GitHub repo npm GitHub license

Portainer Update

This tool can be used to update a stack via the portainer project.

Feature list

  • Update existing stacks
  • Read a docker-compose file from file system
  • Make tool available through npx
  • Deploy new stacks
  • Command line tool

Usage

==Attention: Portainer only supports compose file version 2 at the moment==

Example Usage

As package

const { Auth, Deploy, Update, GetStackByName } = require('portainer-update');
const url = "http://localhost:9000/api";

Auth("username", "password", url)
    .then(async (response) => {
        const stacks = [];
        
        const stackid = await GetStackByName(response.jwt, url, "stackname");
        
        // JsonWebToken, Portainer api url, id of stack which should be updated, 
        // endpoint id, docker compose as string
        stacks.push(await Update(response.jwt, url, stackid, 1, "compose string"));

        // JsonWebToken, Portainer api url, name of the new stack which will be deployed, 
        // endpoint id, docker compose as string
        stacks.push(await Deploy(response.jwt, url, "stackname", 1, "compose string"));
        console.info(JSON.stringify(stacks));
    });


In Terminal

npx portainer-update -p <Stackname> -u <Portainer Username> --password <Portainer Password> -f <Path to docker compose> -s <Portainer URL>

Parameters

|Parameter|Name|Description|Required| |:--:|--|:--|:--:| |-h | --help|Help|Show this parameter table|| |-e | --env|Envrionment|At the moment this parameter has no effect|| |-p | --project|Stackname|The name of the stack you want to update|X| |-u | --user|Portainer Username|The username of the user which will update the stack ==The user need the permission to edit the stack==|X| |--password|Portainer Password|This tool is for use in CiCD pipelines so please provide the password as a secret variable|X| |-f | --compose|Path to compose|Fill in the path to the compose file, which you want to deploy|X| |-s | --portainersystem|Portainer API URL|The address where to find portainer API (The url you are browsing to in your browser)|Default value: http://localhost:9000| |--endpoint|Endpoint ID|The id of the endpoint where the stack should be deployed|Default value: 1|