Files
Dorod-Sky/skyvern/forge/__main__.py
2025-09-24 13:45:02 -04:00

43 lines
1.2 KiB
Python

import os
import structlog
import uvicorn
from dotenv import load_dotenv
from skyvern import analytics
from skyvern.config import settings
LOG = structlog.stdlib.get_logger()
if __name__ == "__main__":
analytics.capture("skyvern-oss-run-server")
port = settings.PORT
LOG.info("Agent server starting.", host="0.0.0.0", port=port)
load_dotenv()
reload = settings.ENV == "local"
# Configure reload settings
# Convert TEMP_PATH to relative path if it's absolute to avoid pathlib.glob() issues
temp_path_for_excludes = (
os.path.relpath(settings.TEMP_PATH) if os.path.isabs(settings.TEMP_PATH) else settings.TEMP_PATH
)
artifact_path_for_excludes = (
os.path.relpath(settings.ARTIFACT_STORAGE_PATH)
if os.path.isabs(settings.ARTIFACT_STORAGE_PATH)
else settings.ARTIFACT_STORAGE_PATH
)
uvicorn.run(
"skyvern.forge.api_app:app",
host="0.0.0.0",
port=port,
log_level="info",
reload=reload,
reload_excludes=[
f"{temp_path_for_excludes}/**/*.py",
f"{artifact_path_for_excludes}/{settings.ENV}/**/scripts/**/**/*.py",
],
)