Files
docker-compose/Backup_Script/README.md

68 lines
1.7 KiB
Markdown

# Portainer Stack Backup Script
This script connects to a Portainer instance and exports all stacks with their configurations, environment variables, and docker-compose files.
## Prerequisites
- `curl` (usually pre-installed on macOS)
- `jq` for JSON processing: `brew install jq`
## Usage
1. Make sure the script is executable:
```bash
chmod +x portainer-backup.sh
```
2. Run the script:
```bash
./portainer-backup.sh
```
3. When prompted, enter:
- Portainer URL (e.g., `http://localhost:9000`)
- Username
- Password
Alternatively, you can edit the script and set these variables at the top:
```bash
PORTAINER_URL="http://your-portainer-url:9000"
USERNAME="your-username"
PASSWORD="your-password"
```
## Output
The script creates a `portainer-stacks-backup` directory containing:
```
portainer-stacks-backup/
├── stack-name-1/
│ ├── stack-info.json # Complete stack information
│ ├── environment-variables.json # Environment variables as JSON
│ ├── .env # Environment variables in .env format
│ ├── docker-compose.yml # Stack's compose file
│ └── metadata.txt # Human-readable metadata
├── stack-name-2/
│ └── ...
```
## What gets backed up
For each stack:
- Complete stack configuration (JSON format)
- Environment variables (both JSON and .env formats)
- Docker Compose file content
- Metadata (creation date, status, type, etc.)
## Error Handling
The script includes error handling for:
- Missing dependencies
- Authentication failures
- Network connectivity issues
- API errors
## Security Note
The script handles authentication via JWT tokens. Passwords are prompted securely (hidden input) if not set in the script.