Local development tool that spins up an n8n instance with Docker, imports workflows and credentials organized by module, and auto-logs into the browser.
Note: This tool is designed for local development and testing only. It uses HTTP, default credentials, and SQLite — not suitable for production.
- Docker and Docker Compose
- curl
- python3 (for browser auto-login)
# 1. Set environment variables (optional)
cp .env.example .env
# 2. Create a fresh instance
./manager.sh initFull setup from scratch. Destroys the previous instance, creates a new one, imports everything, and opens the browser already authenticated.
Imports workflows and credentials into a running instance. Does NOT destroy data or restart the container.
# Add a new module or update an existing one
./manager.sh updateEach workflow is a self-contained module inside workflows/:
workflows/
└── my_workflow/
├── workflow.json # Workflow definition
└── credentials/ # Credentials it needs
└── my_credential.json
mkdir -p workflows/my_new_workflow/credentials
# Drop workflow.json and credentials inside
./manager.sh updateThe workflows/ directory is mounted as a read-only volume in the container. The script iterates each subfolder, imports root .json files as workflows and credentials/*.json as credentials.
Edit .env to change:
| Variable | Default | Description |
|---|---|---|
N8N_IMAGE |
n8nio/n8n:latest |
n8n Docker image |
N8N_PORT |
5678 |
Exposed port |
N8N_OWNER_EMAIL |
admin@example.com |
Owner user email |
N8N_OWNER_PASSWORD |
Changeme123 |
Owner user password |
N8N_OWNER_FIRST_NAME |
Admin |
Owner first name |
N8N_OWNER_LAST_NAME |
User |
Owner last name |
initdestroys the previous volume and creates a clean instance.updateonly imports — safe to run multiple times (idempotent by ID).- Shared credentials can exist in multiple modules — n8n deduplicates by ID.
- Imports read directly from the mounted volume, no
docker cpneeded.