Tons of Stuff
Some checks failed
Deploy Backend to Docker / deploy (push) Failing after 6m13s
Deploy Backend to Docker / deploy-portainer (push) Has been skipped

This commit is contained in:
2025-12-03 20:19:40 -05:00
parent 0b86c88eb4
commit b7c2e0fc24
19 changed files with 1783 additions and 134 deletions

View File

@@ -0,0 +1,76 @@
#!/bin/bash
# Portainer Deployment Script
# This script deploys or updates the rmtPocketWatcher stack via Portainer API
set -e
# Configuration
PORTAINER_URL="${PORTAINER_URL:-http://localhost:9000}"
PORTAINER_API_KEY="${PORTAINER_API_KEY}"
STACK_NAME="${STACK_NAME:-rmtpocketwatcher}"
ENDPOINT_ID="${ENDPOINT_ID:-1}"
# Colors
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m'
# Check required variables
if [ -z "$PORTAINER_API_KEY" ]; then
echo -e "${RED}Error: PORTAINER_API_KEY is not set${NC}"
echo "Usage: PORTAINER_API_KEY=your_key ./portainer-deploy.sh"
exit 1
fi
echo -e "${GREEN}Deploying rmtPocketWatcher to Portainer...${NC}"
# Check if stack exists
STACK_ID=$(curl -s -X GET \
"${PORTAINER_URL}/api/stacks" \
-H "X-API-Key: ${PORTAINER_API_KEY}" \
| jq -r ".[] | select(.Name==\"${STACK_NAME}\") | .Id")
if [ -z "$STACK_ID" ] || [ "$STACK_ID" = "null" ]; then
echo -e "${YELLOW}Stack not found. Creating new stack...${NC}"
# Create new stack from Git repository
curl -X POST \
"${PORTAINER_URL}/api/stacks/create/standalone/repository" \
-H "X-API-Key: ${PORTAINER_API_KEY}" \
-H "Content-Type: application/json" \
-d @- << EOF
{
"name": "${STACK_NAME}",
"endpointId": ${ENDPOINT_ID},
"repositoryURL": "${GIT_REPO_URL}",
"repositoryReferenceName": "refs/heads/main",
"composeFile": "deploy/portainer-stack.yml",
"repositoryAuthentication": false,
"env": [
{"name": "POSTGRES_PASSWORD", "value": "${POSTGRES_PASSWORD}"},
{"name": "IMAGE_TAG", "value": "latest"}
]
}
EOF
echo -e "${GREEN}Stack created successfully!${NC}"
else
echo -e "${YELLOW}Stack found (ID: ${STACK_ID}). Updating...${NC}"
# Update existing stack via Git pull
curl -X PUT \
"${PORTAINER_URL}/api/stacks/${STACK_ID}/git/redeploy" \
-H "X-API-Key: ${PORTAINER_API_KEY}" \
-H "Content-Type: application/json" \
-d '{
"pullImage": true,
"prune": true
}'
echo -e "${GREEN}Stack updated successfully!${NC}"
fi
echo -e "${GREEN}Deployment complete!${NC}"
echo -e "Access your backend at: ${PORTAINER_URL%:*}:3000"