Sign inSign up

lordraw/open-automator-wallet

By lordraw

Updated 9 months ago

Secure credential management with AES-256 encryption for Open-Automator workflows.

Image
0

2.3K

lordraw/open-automator-wallet repository overview

Open-Automator Wallet

Secure credential management tool for Open-Automator workflows.

Docker Image Version Docker Pulls Image Size Platform


Overview

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.

Key Features
  • 🔐 AES-256 Encryption - Military-grade encryption for credentials
  • 🔑 Password Protected - Encrypted with master password
  • 📦 Portable - Single encrypted file, easy to backup
  • 🛠️ CLI Interface - Simple command-line operations
  • 🔄 Integration - Works with Shell, API, and Streamlit
  • 📝 Multiple Formats - Support for keys, passwords, tokens, certificates
  • 🌐 Multi-Platform - Native support for AMD64 and ARM64

Quick Start

Create New Wallet
docker run --rm -it \
  -v $(pwd)/data:/data \
  lordraw/open-automator-wallet:latest create

You'll be prompted for a master password.

Add Credentials
# 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"
List Credentials
docker run --rm -it \
  -v $(pwd)/data:/data \
  lordraw/open-automator-wallet:latest list
Get Credential
docker run --rm -it \
  -v $(pwd)/data:/data \
  lordraw/open-automator-wallet:latest get github_token
Update Credential
docker run --rm -it \
  -v $(pwd)/data:/data \
  lordraw/open-automator-wallet:latest update github_token
Delete Credential
docker run --rm -it \
  -v $(pwd)/data:/data \
  lordraw/open-automator-wallet:latest delete old_key

Usage with Environment Variables

Non-Interactive Mode
# 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
With Custom Wallet Path
docker run --rm -it \
  -v $(pwd)/secure:/secure \
  -e WALLET_FILE=/secure/production.wallet \
  lordraw/open-automator-wallet:latest list

Integration with Other Images

With Shell (CLI)
# 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
With open-automator-wallet
# 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
With Streamlit (UI)
# 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

Docker Compose

Standalone Wallet Management
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
Complete Stack with Wallet
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

Commands Reference

Create
# 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
Add
# 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
# 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
# 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
# Update credential
docker run --rm -it -v $(pwd)/data:/data \
  lordraw/open-automator-wallet:latest update KEY_NAME
Delete
# 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/Import
# 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
Change Password
docker run --rm -it -v $(pwd)/data:/data \
  lordraw/open-automator-wallet:latest change-password

Environment Variables

VariableDescriptionDefault
WALLET_FILEPath to wallet file/data/wallet.enc
WALLET_PASSWORDMaster password (for non-interactive)-
CREDENTIAL_VALUEValue for add command (non-interactive)-
WALLET_AUTO_BACKUPAuto backup before operationstrue
WALLET_BACKUP_DIRBackup directory/data/backups

Security Best Practices

Password Management
  • ✅ Use strong master passwords (16+ characters)
  • ✅ Never hardcode passwords in scripts
  • ✅ Use environment variables or secret managers
  • ✅ Rotate passwords regularly
  • ❌ Don't commit wallet files to version control
File Permissions
# Set proper permissions
chmod 600 data/wallet.enc
chmod 700 data/
Backup Strategy
# 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/
Production Deployment
# 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

Troubleshooting

Wrong Password
# 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
Wallet Not Found
# 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
Permission Denied
# Error: "Permission denied"
# Solution: Fix file permissions

chmod 600 data/wallet.enc
chown $(whoami) data/wallet.enc
Corrupted Wallet
# 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

Aliases for Easy Usage

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

Examples

Manage GitHub Token
# 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
Manage AWS Credentials
# Add AWS keys
wallet add aws_access_key_id
wallet add aws_secret_access_key

# List to verify
wallet list
Rotate Credentials
# Update existing credential
wallet update api_key

# Or delete and re-add
wallet delete api_key
wallet add api_key
Backup Before Major Change
# 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

Image Details

  • Base Image: python:3.12-slim
  • Size: ~250MB
  • Platforms: linux/amd64, linux/arm64
  • Encryption: AES-256-CBC
  • Working Directory: /app

Support


🔐 Keep your credentials secure with Open-Automator Wallet

Tag summary

Content type

Image

Digest

sha256:53175a394

Size

50 MB

Last updated

9 months ago

docker pull lordraw/open-automator-wallet