Skip to main content


Deploying Quirrel is straight-forward.

There are three main environment variables you need to specify in your deployment settings:

VariableMeaningWhere to get
QUIRREL_TOKENaccess token for the Quirrel server.Create a new Project + Client in the Dashboard.
QUIRREL_BASE_URLThe base URL of your deployment.You probably know this. Something like
QUIRREL_ENCRYPTION_SECRETA 32-character-long secret used for end-to-end encryption of your jobs.Can be generated using openssl rand -hex 16 or

After setting these variables, you can deploy your application and Quirrel should be working. If it doesn't, feel free to reach out.

Cron Jobs

If you're using CronJobs(), make sure to run quirrel ci during the deploy process.

"scripts": { "vercel-build": "npm run build && quirrel ci" }

If you're on Vercel, you can connect QUIRREL_BASE_URL to your VERCEL_URL. Only do this for preview environments, not for production! QUIRREL_BASE_URL is used to determine the deployment that your jobs should be executed on. If you set it to VERCEL_URL, that means all jobs will be executed on the exact deployment that they were created on, excluding them from future bugfixes.

Hosted vs On-Prem#

For most people, the hosted version of Quirrel is the easiest, and probably also cheapest way of using Quirrel (there's a free tier if your project is just starting out, and OSS and side projects can apply for discounts).

If you still want to host Quirrel yourself, you can do so using the Docker Image. REDIS_URL should be set to a Redis connection string. Make sure your Redis instance is persistent. For production deployments, PASSPHRASES should be set to a :-separated list of passphrases used for securing the token endpoints. Additionally, the deployment should be secured using HTTPS.

Here's a rough guideline on how to acquire tokens:

  1. Think of a good password and supply it via the PASSPHRASES env var.
  2. Start up your instance and run curl --user ignored:put_password_here -X PUT localhost:9181/tokens/local
  3. Use the obtained token for setting your application's QUIRREL_TOKEN env var.

Using self-hosted Quirrel requires you to set the QUIRREL_API_URL variable to the location of your deployment (it defaults to The QUIRREL_TOKEN can be obtained using the server's REST API. If a passphrase was set, it must be passed in using basic authentication.