portainer-stack-updater

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

View the Project on GitHub flweber/portainer-stack-updater

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

## 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