Secure credential management with AES-256 encryption for Open-Automator workflows.
2.3K
Secure credential management tool for Open-Automator workflows.
Open-Automator Wallet is a secure credential management tool that encrypts and stores sensitive information like API keys, passwords, and tokens. It uses AES-256 encryption to protect your credentials and integrates seamlessly with all Open-Automator components.
docker run --rm -it \
-v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest create
You'll be prompted for a master password.
# Add API key
docker run --rm -it \
-v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest add github_token
# Add with description
docker run --rm -it \
-v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest add aws_key --description "AWS Access Key"
docker run --rm -it \
-v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest list
docker run --rm -it \
-v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest get github_token
docker run --rm -it \
-v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest update github_token
docker run --rm -it \
-v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest delete old_key
# Create wallet with password from env
docker run --rm \
-v $(pwd)/data:/data \
-e WALLET_PASSWORD=mysecurepassword \
lordraw/open-automator-wallet:latest create
# Add credential non-interactively
docker run --rm \
-v $(pwd)/data:/data \
-e WALLET_PASSWORD=mysecurepassword \
-e CREDENTIAL_VALUE=ghp_1234567890 \
lordraw/open-automator-wallet:latest add github_token
docker run --rm -it \
-v $(pwd)/secure:/secure \
-e WALLET_FILE=/secure/production.wallet \
lordraw/open-automator-wallet:latest list
# Use wallet in workflow execution
docker run --rm \
-v $(pwd)/workflows:/workflows \
-v $(pwd)/data:/data \
-e OA_WALLET_FILE=/data/wallet.enc \
-e OA_WALLET_PASSWORD=mysecret \
lordraw/open-automator-shell:latest /workflows/deploy.yaml
# Run API with wallet support
docker run -d -p 8000:8000 \
-v $(pwd)/workflows:/app/workflows \
-v $(pwd)/data:/app/data \
-e OA_WALLET_FILE=/app/data/wallet.enc \
-e OA_WALLET_PASSWORD=mysecret \
lordraw/open-automator-wallet:latest
# Run UI with wallet
docker run -d -p 8501:8501 \
-v $(pwd)/workflows:/app/workflows \
-v $(pwd)/data:/app/data \
-e OA_WALLET_FILE=/app/data/wallet.enc \
-e OA_WALLET_PASSWORD=mysecret \
lordraw/open-automator-streamlit:latest
version: '3.8'
services:
wallet:
image: lordraw/open-automator-wallet:latest
volumes:
- ./data:/data
environment:
- WALLET_FILE=/data/wallet.enc
- WALLET_PASSWORD=${WALLET_PASSWORD}
entrypoint: ["sh", "-c", "tail -f /dev/null"]
container_name: wallet-manager
# Usage:
# docker-compose run --rm wallet list
# docker-compose run --rm wallet add mykey
version: '3.8'
services:
# Shell for automation
shell:
image: lordraw/open-automator-shell:latest
volumes:
- workflows:/workflows
- data:/data
environment:
- OA_WALLET_FILE=/data/wallet.enc
- OA_WALLET_PASSWORD=${WALLET_PASSWORD}
restart: unless-stopped
# API
api:
image: lordraw/open-automator-wallet:latest
ports:
- "8000:8000"
volumes:
- workflows:/app/workflows
- data:/app/data
environment:
- API_KEY=${API_KEY}
- OA_WALLET_FILE=/app/data/wallet.enc
- OA_WALLET_PASSWORD=${WALLET_PASSWORD}
restart: unless-stopped
# UI
ui:
image: lordraw/open-automator-streamlit:latest
ports:
- "8501:8501"
volumes:
- workflows:/app/workflows
- data:/app/data
environment:
- OA_WALLET_FILE=/app/data/wallet.enc
- OA_WALLET_PASSWORD=${WALLET_PASSWORD}
restart: unless-stopped
# Wallet manager (for manual operations)
wallet:
image: lordraw/open-automator-wallet:latest
volumes:
- data:/data
environment:
- WALLET_FILE=/data/wallet.enc
- WALLET_PASSWORD=${WALLET_PASSWORD}
entrypoint: ["tail", "-f", "/dev/null"]
container_name: wallet-manager
volumes:
workflows:
data:
# Usage:
# docker-compose run --rm wallet create
# docker-compose run --rm wallet add github_token
# docker-compose run --rm wallet list
# Interactive
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest create
# Non-interactive
docker run --rm -v $(pwd)/data:/data \
-e WALLET_PASSWORD=mysecret \
lordraw/open-automator-wallet:latest create
# Interactive
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest add KEY_NAME
# With description
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest add KEY_NAME --description "My API Key"
# Non-interactive
docker run --rm -v $(pwd)/data:/data \
-e WALLET_PASSWORD=mysecret \
-e CREDENTIAL_VALUE=secret123 \
lordraw/open-automator-wallet:latest add KEY_NAME
# List all credentials
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest list
# List with details
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest list --verbose
# Get credential value
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest get KEY_NAME
# Get and copy to clipboard (if available)
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest get KEY_NAME --copy
# Update credential
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest update KEY_NAME
# Delete credential
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest delete KEY_NAME
# Force delete (no confirmation)
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest delete KEY_NAME --force
# Export (encrypted)
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest export backup.wallet
# Import
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest import backup.wallet
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest change-password
| Variable | Description | Default |
|---|---|---|
WALLET_FILE | Path to wallet file | /data/wallet.enc |
WALLET_PASSWORD | Master password (for non-interactive) | - |
CREDENTIAL_VALUE | Value for add command (non-interactive) | - |
WALLET_AUTO_BACKUP | Auto backup before operations | true |
WALLET_BACKUP_DIR | Backup directory | /data/backups |
# Set proper permissions
chmod 600 data/wallet.enc
chmod 700 data/
# Regular backups
docker run --rm -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest export /data/backups/wallet-$(date +%Y%m%d).enc
# Encrypted backup to remote
docker run --rm -v $(pwd)/data:/data -v ~/.ssh:/root/.ssh \
lordraw/open-automator-wallet:latest export /tmp/backup.enc && \
scp /tmp/backup.enc user@backup-server:/backups/
# Use Docker secrets
version: '3.8'
services:
api:
image: lordraw/open-automator-wallet:latest
volumes:
- workflows:/app/workflows
- data:/app/data
secrets:
- wallet_password
environment:
- OA_WALLET_FILE=/app/data/wallet.enc
- OA_WALLET_PASSWORD_FILE=/run/secrets/wallet_password
secrets:
wallet_password:
external: true
# Error: "Invalid password or corrupted wallet"
# Solution: Verify password, try backup file
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest list
# Error: "Wallet file not found"
# Solution: Create new wallet or check path
# Create new
docker run --rm -it -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest create
# Check volume mount
docker run --rm -v $(pwd)/data:/data \
lordraw/open-automator-wallet:latest ls -la /data
# Error: "Permission denied"
# Solution: Fix file permissions
chmod 600 data/wallet.enc
chown $(whoami) data/wallet.enc
# Try to recover from backup
cp data/backups/wallet-latest.enc data/wallet.enc
# If no backup, wallet is unrecoverable
# Create new wallet and re-add credentials
Add to your .bashrc or .zshrc:
# Wallet aliases
alias wallet='docker run --rm -it -v $(pwd)/data:/data lordraw/open-automator-wallet:latest'
alias wallet-list='wallet list'
alias wallet-add='wallet add'
alias wallet-get='wallet get'
# Usage:
# wallet list
# wallet add mykey
# wallet get mykey
# Add token
wallet add github_token --description "GitHub Personal Access Token"
# Use in workflow
docker run --rm \
-v $(pwd)/workflows:/workflows \
-v $(pwd)/data:/data \
-e OA_WALLET_FILE=/data/wallet.enc \
-e OA_WALLET_PASSWORD=mysecret \
lordraw/open-automator-shell:latest /workflows/github-deploy.yaml
# Add AWS keys
wallet add aws_access_key_id
wallet add aws_secret_access_key
# List to verify
wallet list
# Update existing credential
wallet update api_key
# Or delete and re-add
wallet delete api_key
wallet add api_key
# Manual backup
wallet export /data/backups/before-update-$(date +%Y%m%d%H%M).enc
# Make changes
wallet update production_db_password
# If something goes wrong
wallet import /data/backups/before-update-202512291400.enc
python:3.12-slimlinux/amd64, linux/arm64/app🔐 Keep your credentials secure with Open-Automator Wallet
Content type
Image
Digest
sha256:53175a394…
Size
50 MB
Last updated
9 months ago
docker pull lordraw/open-automator-wallet