Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

RunPod Worker Template


This repository serves as a starting point for creating your own custom RunPod Serverless worker. It provides a basic structure and configuration that you can build upon.


RunPod


Getting Started

  1. Use this template: Create a new repository based on this template or clone it directly.
  2. Customize: Modify the code and configuration files to implement your specific task.
  3. Test: Run your worker locally to ensure it functions correctly.
  4. Deploy: Connect your repository to RunPod or build and push the Docker image manually.

Customizing Your Worker

  • handler.py: This is the core of your worker.
    • The handler(event) function is the entry point executed for each job.
    • The event dictionary contains the job input under the "input" key.
    • Modify this function to load your models, process the input and return the desired output.
    • Consider implementing model loading outside the handler (e.g., globally or in an initialization function) if models are large and reused across jobs.
  • requirements.txt: Add any Python libraries your worker needs to this file. These will be installed via uv when the Docker image is built.
  • Dockerfile:
    • This file defines the Docker image for your worker.
    • It starts from a RunPod base image (runpod/base) which includes CUDA, mulitple versions of python, uv, jupyter notebook and common dependencies.
    • It installs dependencies from requirements.txt using uv.
    • It copies your src directory into the image.
    • You might need to add system dependencies (apt-get install ...), environment variables (ENV), or other setup steps here if required by your specific application.
  • test_input.json: Modify this file to provide relevant sample input for local testing.

Testing Locally

You can test your handler logic locally using the RunPod Python SDK. For detailed steps on setting up your local environment (creating a virtual environment, installing dependencies) and running the handler, please refer to the RunPod Serverless Get Started Guide.

  1. Prepare Input: Modify test_input.json with relevant sample input for your handler.
  2. Run the Handler:
    python handler.py
    This will execute your handler function with the contents of test_input.json as input.

Deploying to RunPod

There are two main ways to deploy your worker:

  1. GitHub Integration (Recommended):

    • Connect your GitHub repository to RunPod Serverless. RunPod will automatically build and deploy your worker whenever you push changes to your specified branch.
    • For detailed instructions on setting up the GitHub integration, authorizing RunPod, and configuring your deployment, please refer to the RunPod Deploy with GitHub Guide.
  2. Manual Docker Build & Push:

    • For detailed instructions on building the Docker image locally and pushing it to a container registry, please see the RunPod Serverless Get Started Guide.
    • Once pushed, create a new Template or Endpoint in the RunPod Serverless UI and point it to the image in your container registry.

Further Information

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages