Add Python watchdog service to automatically sync ComfyUI outputs to HiDrive WebDAV storage. Changes: - Add scripts/comfyui_webdav_sync.py: File watcher service using watchdog + webdavclient3 - Update model-orchestrator/requirements.txt: Add watchdog and webdavclient3 dependencies - Update supervisord.conf: Add webdav-sync program with ENV variable support - Update arty.yml: Add service management scripts (start/stop/restart/status/logs) WebDAV credentials are now loaded from .env file (WEBDAV_URL, WEBDAV_USERNAME, WEBDAV_PASSWORD, WEBDAV_REMOTE_PATH) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
79 lines
2.2 KiB
Plaintext
79 lines
2.2 KiB
Plaintext
[supervisord]
|
|
logfile=/workspace/logs/supervisord.log
|
|
pidfile=/workspace/supervisord.pid
|
|
childlogdir=/workspace/logs
|
|
nodaemon=false
|
|
loglevel=info
|
|
|
|
[unix_http_server]
|
|
file=/workspace/supervisor.sock
|
|
chmod=0700
|
|
|
|
[supervisorctl]
|
|
serverurl=unix:///workspace/supervisor.sock
|
|
|
|
[rpcinterface:supervisor]
|
|
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
|
|
|
|
# Web interface for monitoring (proxied via nginx + Authelia)
|
|
[inet_http_server]
|
|
port=0.0.0.0:9001
|
|
# Authentication disabled - handled by Authelia SSO
|
|
# username=admin
|
|
# password=runpod2024
|
|
|
|
# ComfyUI Server
|
|
[program:comfyui]
|
|
command=bash /workspace/ai/models/comfyui/start.sh
|
|
directory=/workspace/ComfyUI
|
|
autostart=true
|
|
autorestart=true
|
|
startretries=3
|
|
stderr_logfile=/workspace/logs/comfyui.err.log
|
|
stdout_logfile=/workspace/logs/comfyui.out.log
|
|
stdout_logfile_maxbytes=50MB
|
|
stdout_logfile_backups=10
|
|
stderr_logfile_maxbytes=50MB
|
|
stderr_logfile_backups=10
|
|
environment=HF_HOME="/workspace/huggingface_cache",PYTORCH_CUDA_ALLOC_CONF="expandable_segments:True"
|
|
priority=100
|
|
stopwaitsecs=30
|
|
|
|
# AI Model Orchestrator
|
|
[program:orchestrator]
|
|
command=python3 model-orchestrator/orchestrator_subprocess.py
|
|
directory=/workspace/ai
|
|
autostart=false
|
|
autorestart=true
|
|
startretries=3
|
|
stderr_logfile=/workspace/logs/orchestrator.err.log
|
|
stdout_logfile=/workspace/logs/orchestrator.out.log
|
|
stdout_logfile_maxbytes=50MB
|
|
stdout_logfile_backups=10
|
|
stderr_logfile_maxbytes=50MB
|
|
stderr_logfile_backups=10
|
|
environment=HF_HOME="/workspace/huggingface_cache",HF_TOKEN="%(ENV_HF_TOKEN)s"
|
|
priority=200
|
|
stopwaitsecs=30
|
|
|
|
# ComfyUI WebDAV Sync Service
|
|
[program:webdav-sync]
|
|
command=python3 /workspace/ai/scripts/comfyui_webdav_sync.py
|
|
directory=/workspace/ai
|
|
autostart=true
|
|
autorestart=true
|
|
startretries=3
|
|
stderr_logfile=/workspace/logs/webdav-sync.err.log
|
|
stdout_logfile=/workspace/logs/webdav-sync.out.log
|
|
stdout_logfile_maxbytes=50MB
|
|
stdout_logfile_backups=10
|
|
stderr_logfile_maxbytes=50MB
|
|
stderr_logfile_backups=10
|
|
environment=WEBDAV_URL="%(ENV_WEBDAV_URL)s",WEBDAV_USERNAME="%(ENV_WEBDAV_USERNAME)s",WEBDAV_PASSWORD="%(ENV_WEBDAV_PASSWORD)s",WEBDAV_REMOTE_PATH="%(ENV_WEBDAV_REMOTE_PATH)s",COMFYUI_OUTPUT_DIR="/workspace/ComfyUI/output"
|
|
priority=150
|
|
stopwaitsecs=10
|
|
|
|
[group:ai-services]
|
|
programs=comfyui,orchestrator,webdav-sync
|
|
priority=999
|