ZeroQueue alternatives and similar software solutions
Based on the "Automation" category.
Alternatively, view ZeroQueue alternatives based on common mentions on social networks and blogs.
-
Home Assistant
:house_with_garden: Open source home automation that puts local control and privacy first. -
n8n
Free and source-available fair-code licensed workflow automation tool. Easily automate tasks across different services. -
Huginn
Create agents that monitor and act on your behalf. Your agents are standing by! -
Gekko
Gekko is a Bitcoin TA trading and backtesting bot which support multiple exchanges and cryptocurrencies. -
Zenbot 3
Zenbot is a command-line cryptocurrency trading bot using Node.js and MongoDB. -
WebUI-aria2
The aim for this project is to create the worlds best and hottest interface to interact with aria2. Very simple to use, just download and open index.html in any web browser. -
Healthchecks
Open-source cron job and background task monitoring service, written in Python & Django -
StackStorm
StackStorm (aka "IFTTT for Ops") is event-driven automation for auto-remediation, incident responses, troubleshooting, deployments, and more for DevOps and SREs. Includes rules engine, workflow, 160 integration packs with 6000+ actions (see https://exchange.stackstorm.org) and ChatOps. Installer at https://docs.stackstorm.com/install/index.html -
pyLoad
The free and open-source Download Manager written in pure Python -
Automatisch
The open source Zapier alternative. Build workflow automation without spending time and money. -
Actionsflow
The free Zapier/IFTTT alternative for developers to automate your workflows based on Github actions -
YoutubeDL-Material
Self-hosted YouTube downloader built on Material Design -
TriggerHappy
An opensource clone of IFTTT, a bridge between your internet services. -
Medusa
Automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. -
Podgrab
A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player. -
µTask
µTask is an automation engine that models and executes business processes declared in yaml. ✏️📋 -
Klaxon
Klaxon enables reporters and editors to monitor scores of sites on the web for newsworthy changes. -
ActiveWorkflow
Polyglot workflows without leaving the comfort of your technology stack. -
Accelerated Text
Accelerated Text is a no-code natural language generation platform. It will help you construct document plans which define how your data is converted to textual descriptions varying in wording and structure. -
HRConvert2
A self-hosted, drag-and-drop & nosql file conversion server & share tool that supports 86 file formats in 13 languages. -
Patrowl
PatrOwl - Open Source, Smart and Scalable Security Operations Orchestration Platform -
FHEM
Branch 'master' is an unofficial read-only-mirror of https://svn.fhem.de/fhem/trunk which is updated once a day. (branch sf_old a mirror of the old repo: svn://svn.code.sf.net/p/fhem/code/trunk) -
SiteInspector
A tool for catching spelling errors, grammatical errors, broken links, and other errors on websites. -
Episodes
Self Hosted TV show Episode tracker and recommender built using django, bootstrap4. -
feedmixer
A self-hosted API to fetch and mix entries from Atom and RSS feeds (returns Atom, RSS, or JSON) -
homebank-converter
A web app to convert an export bank file to compatible Homebank csv file. -
LazyLibrarian
LazyLibrarian is a program to follow authors and grab metadata for all your digital reading needs. It uses a combination of Goodreads Librarything and optionally GoogleBooks as sources for author info and book info. -
feed2toot
Feed2toot parses a RSS feed, extracts the last entries and sends them to Mastodon.
Static code analysis for 29 languages.
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of ZeroQueue or a related project?
README
ZeroQueue
⏰ A low-code queue management system ⏰
Powered by BullMQ - the fastest, most reliable, Redis-based queue for Node.
Installation • Usage • Contribute • License
Installation
A containerised version of ZeroQueue can be easily setup using docker with the following environment variables:
Env Var | Description |
---|---|
DATABASE_URL | Connection string for a sequelize supported database. |
REDIS_URL | Connection string for a Redis database. |
SESSION_SECRET | A string of atleast 32 characters to encrypt user sessions. |
A built image of ZeroQueue is currently hosted on Docker Hub. This will allow you to run the app in most environments and platforms such as docker-compose, Heroku, or Kubernetes.
Running using the Docker CLI
- First pull the image down from the registry.
docker pull zeroqueue/zeroqueue:latest
- You will then need to run migrations on your database. ZeroQueue uses sequelize ORM. This will assume you have a supported database already created with the connection string assinged to the envinronment variable
DATABASE_URL
.
docker run --rm -e DATABASE_URL zeroqueue/zeroqueue:latest npm run db:sync
If the database is running on localhost
you will also need to set the --network="host"
argument.
docker run --rm -e DATABASE_URL --network="host" zeroqueue/zeroqueue:latest npm run db:sync
- Once the above step finishes successfully, you can start ZeroQueue using the followng command. This will assume you have correctly assigned the environment variables for
DATABASE_URL
,REDIS_URL
, andSESSION_SECRET
. See the above table for details.
docker run --rm -d -e DATABASE_URL -e REDIS_URL -e SESSION_SECRET -p 9376:9376 --name zeroqueue zeroqueue/zeroqueue:latest
Note that the above command will map port 9376
to the ZeroQueue app. If running locally this will be available on http://localhost:9376.
If you are running the database and redis on localhost too, you will need to make sure the ZeroQueue container has access to the host network. On mac and windows this can be achieved by replacing localhost
or 127.0.0.1
with host.docker.internal
.
Environment specific examples
Feel free to open an issue if you would like to see instructions for setting up ZeroQueue in certain environments or platforms.
Usage
Each zeroqueue instance has many queues
and each queue has many jobs
with a different status
.
Credentials
When you first login to ZeroQueue the credentials will be set to the following default values:
- username:
admin
- password:
password
It is recommended that you change this immediately via the settings, especially if running in production.
Queues
New queues can be spun up by providing a name and an optional schedule. Schedules are currently set using a crontab (you can use crontab.guru as a reference).
If no schedule is specified, then jobs will be processed as soon as they enter the queue.
Jobs
Jobs can be bulk added to the queue using a JSON file. The system expects the JSON file to be an array
of objects
with each object representing a single job.
Each job in the array has the following fields.
Field | Description |
---|---|
name | A string to identify the job. This will default to a random id if left blank. |
data | This is the data that will be made available to workers. |
opts | These are custom job options and will have the same interface as specified by the BullMQ docs. |
The schema to validate a JSON file is:
{
"type": "array",
"items": {
"$ref": "#/definitions/jobs"
},
"definitions": {
"jobs": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"data": {
"type": "object"
},
"opts": {
"type": "object"
}
}
}
}
}
Workers
The worker is the only piece of code you'll need to worry about in this system.
Start by installing BullMQ:
npm install bull
To spin up a worker you can either follow the BullMQ quick start guide or use the following template:
const Queue = require('bull');
const queue = new Queue('YOUR QUEUE NAME', process.env.REDIS_URL);
queue.process('*', async (job) => {
const { data } = job;
// worker code here...
job.log(JSON.stringify(data));
// capture job progress...
job.progress(100);
// returns a promise...
return data;
});
Contribute
Pull requests on this project are welcome, or feel free to open an issue if you would like to see a feature added or bug fixed. You can also support this project by donating.
Running from source in development mode
ZeroQueue is built using NextJS so this will assume you have node.js and npm installed locally. You will also need docker for any backing services.
- Install dependencies
npm install
- Setup backing services (i.e. postgreSQL and Redis)
npm run dev:services:up
npm run db:sync
- Start the dev server
npm run dev
When you are done you can stop the server and tear down the backing services using:
npm run dev:services:down
Running tests
TBA
Running Lint
ZeroQueue uses both ESLint and Prettier for code linting and formatting.
npm run lint
License
This project is licensed under the GNU GPLv3 License - see the LICENSE.md file for details.
*Note that all licence references and agreements mentioned in the ZeroQueue README section above
are relevant to that project's source code only.