Deploy a Background Worker | Queue & Cron Workers on seenode

Deploy a Worker service

Deploy a background worker on seenode for queue consumers, scheduled jobs, and long-running processes, with no public URL required.

New to seenode? Start free: 7-day trial, no credit card. Workers run on credit-based pricing from $3/mo.

A Worker service runs a long-lived process in the background with no public URL. Use it for queue consumers (Celery, RQ, BullMQ, Sidekiq, Oban), scheduled jobs, data pipelines, bots, and model training.

How a worker differs from a web service

A worker is deployed exactly like a web service, with two differences:

  • No Port field: a worker doesn’t listen for HTTP requests, so there’s nothing to expose.
  • No public URL and no Domains tab: a worker isn’t reachable from the internet. It can still reach your other services over the private network, and connect to a database.

Everything else is the same: Git-based deploys, the runtime Image, build and start commands, environment variables, logs and metrics, replicas, and persistent storage.

Warning (Your start command must stay running)

A worker’s start command must launch a long-lived process: a queue consumer, a scheduler, or a loop that blocks. If the command runs once and exits, seenode treats the worker as stopped and restarts it. Don’t use a one-off script as the start command.

Deploy a worker

  1. Create a worker

    In the dashboard sidebar, select Worker, then click Create worker (or use Create new…Worker).

  2. Connect your Git repository

    Choose your Git provider (GitHub or GitLab) and select the repository and branch to deploy.

  3. Configure the worker

    seenode auto-detects your runtime. Set:

    • Image: the language runtime (change the version if needed).
    • Build command: install dependencies, e.g. pip install -r requirements.txt or npm ci.
    • Start command: the long-lived process, for example:
      • Python (Celery): celery -A your_project worker --loglevel=info
      • Python (RQ): rq worker
      • Node (BullMQ): node worker.js
      • Elixir (Oban): runs inside your Phoenix/OTP release
    • Environment variables: e.g. your broker/queue and database URLs.

    There is no Port field.

  4. Deploy

    Click Create instance and watch the build logs. Once the build succeeds and your process starts, the worker is live and processing.

Managing a worker

A worker has the same tabs as a web service except Domains: Logs (Runtime/Build), Envs, Storage, Usage (CPU/memory), and Settings (upgrade the instance, set replicas, enable auto-deploy). See Managing a service and Scaling.

Workers are billed on the same instance sizes as web services. See Pricing.