Skip to content
This repository has been archived by the owner on Apr 16, 2024. It is now read-only.

flweber/portainer-stack-updater

Repository files navigation

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