N8n-autoscaling: Major update - Interactive setup wizard, security hardening, backup system, and more

Hey everyone! Big update to n8n-autoscaling, the Docker-based autoscaling solution for n8n 2.0.

For those unfamiliar - this project dynamically scales n8n worker containers based on Redis queue length. No Kubernetes needed, just Docker Compose. Tested with hundreds of simultaneous executions on an 8-core 16GB VPS.

Prerequisites: a domain configured on Cloudflare, Docker

Here’s what’s new:

Interactive Setup Wizard

This is the biggest quality-of-life improvement. Instead of manually editing .env files and figuring out the config, just navigate to a folder in your terminal and run:

git clone https://github.com/conor-is-my-name/n8n-autoscaling.git
cd n8n-autoscaling
./n8n-setup.sh

The wizard walks you through everything - generating secure secrets, configuring your domain/Cloudflare tunnel, setting autoscaling parameters, backup config, and detecting your container runtime (Docker or Podman, rootless or rootful). It even creates the external network and starts all services with health checks. Re-running it after initial setup gives you options to reconfigure or reset.

Security Hardening

  • PostgreSQL user separation - app connects with a limited-privilege user, not the superuser

  • Redis authentication

  • All ports bound to localhost by default

  • Non-root containers

  • .dockerignore to keep secrets out of images

Scheduled Backups

New backup service using rclone with multi-cloud support. PostgreSQL dumps + Redis snapshots + volume data, with GPG encryption. Configurable schedule and notification support.

Systemd Service Generator

./generate-systemd.sh creates a proper systemd service file so the stack starts on boot and can be managed with systemctl. Auto-detects Docker vs Podman and rootless vs rootful setups.

Podman Rootless Support

Full support for running the entire stack under Podman in rootless mode via a compose override file. The autoscaler also works with rootless Docker.

Faster Worker Scaling

Task runner sidecars now start alongside workers instead of waiting for the worker health check to pass first. Tightened health check timings too. Cuts the time from scale-up decision to worker ready to ~5-15 seconds.

This is a step backwards from near instant in n8n v1.X, but it is what it is with v2.0 now having both workers and runners.

Other Improvements

  • Removed redundant task runner from the main n8n instance (workers handle all executions)

  • Cloudflare tunnel compose override

  • Better documentation and architecture diagrams

  • Multi-architecture support (amd64, arm64, armhf)

If you’re self-hosting n8n and need to handle serious workloads without Kubernetes, give it a try. Happy to answer questions.

1 Like