Interactive web UI for Open-Automator workflows with real-time monitoring and visual editing.
1.1K
Interactive web interface for managing and executing Open-Automator workflows with real-time monitoring.
Open-Automator Streamlit provides a user-friendly web UI built with Streamlit for creating, managing, and monitoring YAML-based automation workflows. It offers visual workflow editing, real-time execution monitoring, wallet management, and comprehensive logging.
docker run -d \
-p 8501:8501 \
--name open-automator-ui \
lordraw/open-automator-streamlit:latest
Access the UI at http://localhost:8502
Access the api at http://localhost:8503
docker run -d \
-p 8501:8501 \
-v $(pwd)/workflows:/app/workflows \
-v $(pwd)/data:/app/data \
-v $(pwd)/logs:/app/logs \
--name open-automator-ui \
lordraw/open-automator-streamlit:latest
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=your_secure_password \
--name open-automator-ui \
lordraw/open-automator-streamlit:latest
docker run -d \
-p 3000:8501 \
-v $(pwd)/workflows:/app/workflows \
--name open-automator-ui \
lordraw/open-automator-streamlit:latest
Access at http://localhost:3000
# Place your workflow in the workflows directory
echo 'version: 1.0
tasks:
- name: hello
module: system
action: execute_command
params:
command: echo "Hello from Streamlit!"' > workflows/hello.yaml
# Access UI and select the workflow from the dropdown
# Create encrypted wallet via UI
# Navigate to "Wallet Management"
# Add credentials with encryption
# Use in workflows with ${WALLET:key_name}
| Variable | Description | Default |
|---|---|---|
STREAMLIT_SERVER_PORT | Streamlit server port | 8501 |
STREAMLIT_SERVER_ADDRESS | Server bind address | 0.0.0.0 |
OA_WALLET_FILE | Path to wallet file | - |
OA_WALLET_PASSWORD | Wallet encryption password | - |
OA_LOG_LEVEL | Logging level | INFO |
OA_WORKFLOWS_DIR | Workflows directory | /app/workflows |
OA_DATA_DIR | Data directory | /app/data |
OA_LOGS_DIR | Logs directory | /app/logs |
| Container Path | Purpose | Recommended |
|---|---|---|
/app/workflows | YAML workflow files | ✅ Yes |
/app/data | Persistent data (wallets, state) | ✅ Yes |
/app/logs | Execution logs | ✅ Yes |
/app/templates | Custom workflow templates | Optional |
version: '3.8'
services:
streamlit-ui:
image: lordraw/open-automator-streamlit:latest
container_name: open-automator-ui
ports:
- "8501:8501"
volumes:
- ./workflows:/app/workflows
- ./data:/app/data
- ./logs:/app/logs
environment:
- OA_LOG_LEVEL=INFO
restart: unless-stopped
version: '3.8'
services:
streamlit-ui:
image: lordraw/open-automator-streamlit:latest
container_name: open-automator-ui
ports:
- "8501:8501"
volumes:
- ./workflows:/app/workflows
- ./data:/app/data
- ./logs:/app/logs
- ./templates:/app/templates
environment:
- OA_WALLET_FILE=/app/data/production.wallet
- OA_WALLET_PASSWORD=${WALLET_PASSWORD}
- OA_LOG_LEVEL=DEBUG
- STREAMLIT_SERVER_PORT=8501
- STREAMLIT_SERVER_ADDRESS=0.0.0.0
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8501/_stcore/health"]
interval: 30s
timeout: 10s
retries: 3
version: '3.8'
services:
# Web UI
streamlit-ui:
image: lordraw/open-automator-streamlit:latest
ports:
- "8501:8501"
volumes:
- workflows:/app/workflows
- data:/app/data
- logs:/app/logs
environment:
- OA_WALLET_FILE=/app/data/wallet.enc
- OA_WALLET_PASSWORD=${WALLET_PASSWORD}
depends_on:
- postgres
# CLI Worker
shell-worker:
image: lordraw/open-automator-shell:latest
volumes:
- workflows:/workflows
- data:/data
environment:
- OA_WALLET_FILE=/data/wallet.enc
- OA_WALLET_PASSWORD=${WALLET_PASSWORD}
command: tail -f /dev/null # Keep alive for manual execution
# PostgreSQL (for workflow state)
postgres:
image: postgres:15-alpine
environment:
- POSTGRES_DB=automator
- POSTGRES_USER=automator
- POSTGRES_PASSWORD=${DB_PASSWORD}
volumes:
- postgres_data:/var/lib/postgresql/data
volumes:
workflows:
data:
logs:
postgres_data:
Available templates in the UI:
All Open-Automator modules are accessible through the UI:
| Module | Description | Actions |
|---|---|---|
system | System commands | execute_command, file operations |
git | Git operations | clone, pull, push, commit |
network | Network operations | http_request, download, upload |
io | File I/O | read, write, copy, move |
pg | PostgreSQL | query, backup, restore |
notify | Notifications | email, slack, webhook |
utility | Utilities | template, validate, transform |
The container includes a built-in healthcheck:
# Check if Streamlit is running
curl -f http://localhost:8501/_stcore/health
Use in Docker Compose:
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8501/_stcore/health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 40s
# Default
http://localhost:8501
# Custom port
docker run -p 3000:8501 lordraw/open-automator-streamlit:latest
http://localhost:3000
services:
app:
image: myapp
environment:
- AUTOMATOR_UI_URL=http://streamlit-ui:8501
streamlit-ui:
image: lordraw/open-automator-streamlit:latest
location /automator/ {
proxy_pass http://localhost:8501/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
# Check if container is running
docker ps | grep open-automator-streamlit
# Check logs
docker logs open-automator-ui
# Verify port binding
docker port open-automator-ui
# Test health endpoint
curl http://localhost:8501/_stcore/health
# Check workflows directory
docker exec open-automator-ui ls -la /app/workflows
# Verify volume mount
docker inspect open-automator-ui | grep -A 10 Mounts
# Check permissions
docker exec open-automator-ui ls -la /app/workflows/*.yaml
# Verify wallet file exists
docker exec open-automator-ui ls -la /app/data/wallet.enc
# Check environment variables
docker exec open-automator-ui env | grep OA_WALLET
# Test wallet password
docker logs open-automator-ui 2>&1 | grep -i wallet
# Check resource usage
docker stats open-automator-ui
# Increase resources
docker run -d \
--memory="2g" \
--cpus="2.0" \
-p 8501:8501 \
lordraw/open-automator-streamlit:latest
# Enable debug logging
docker run -d \
-e OA_LOG_LEVEL=DEBUG \
-p 8501:8501 \
lordraw/open-automator-streamlit:latest
# Verify Streamlit is listening
docker exec open-automator-ui netstat -tulpn | grep 8501
# Check firewall
sudo ufw status
sudo ufw allow 8501/tcp
# Check Docker network
docker network inspect bridge
OA_WALLET_PASSWORD-e STREAMLIT_SERVER_ADDRESS=127.0.0.1# Example with Traefik + OAuth
services:
streamlit-ui:
image: lordraw/open-automator-streamlit:latest
labels:
- "traefik.enable=true"
- "traefik.http.routers.automator.rule=Host(`automator.example.com`)"
- "traefik.http.routers.automator.middlewares=oauth@docker"
- "traefik.http.routers.automator.tls.certresolver=letsencrypt"
OA_LOG_LEVEL=DEBUG# Backup workflows and data
docker run --rm \
-v $(pwd)/backup:/backup \
-v open-automator_workflows:/workflows \
-v open-automator_data:/data \
alpine tar czf /backup/automator-backup-$(date +%Y%m%d).tar.gz /workflows /data
# Restore
docker run --rm \
-v $(pwd)/backup:/backup \
-v open-automator_workflows:/workflows \
-v open-automator_data:/data \
alpine tar xzf /backup/automator-backup-YYYYMMDD.tar.gz
python:3.12-slimlinux/amd64, linux/arm648501/approot (can be changed)Built with ❤️ by the Open-Automator team
Content type
Image
Digest
sha256:fbd328875…
Size
308.3 MB
Last updated
7 months ago
docker pull lordraw/open-automator-streamlit