New to n8n, wanted to get the execute node working

Hi guys,
I’m new to n8n, recently found out that the execute node has been disabled, went through a few posts that mentioned i need to change my docker-compose.yml file and add a few lines

EXCLUDE_NODES=

Points to be noted,

  1. I didn’t originally have a .yml file in my self hosted n8n on hostinger
  2. I created the file myself with the help of n8n documentation
  3. added all the required fields
  4. restarted
  5. Still don’t see the execute node (appears as a ?)

can someone help with this

1 Like

The Execute Code node (the old “Execute Command” shell node) was intentionally disabled by n8n in cloud and restricted in self-hosted environments as a security measure. The EXCLUDE_NODES env var approach can re-enable it, but there are a few things to check.

Why the node still shows as “?” after setting EXCLUDE_NODES=:

The EXCLUDE_NODES variable tells n8n which nodes to hide. Setting it to empty just means “exclude nothing” — it does NOT override the security lock on the Execute Command node itself.

For self-hosted Docker, you need to explicitly allow it with:

N8N_BLOCK_ENV_ACCESS_IN_NODE=false

And if you’re on a newer version, the node type changed. Look for “Execute Command” not “Execute Node” in the node search — the internal name is n8n-nodes-base.executeCommand.

Steps to verify it’s working:

  1. Make sure your docker-compose.yml environment section has:
    - N8N_BLOCK_ENV_ACCESS_IN_NODE=false
    
  2. Restart the container completely (docker compose down && docker compose up -d)
  3. In the n8n editor, search for “Execute Command” — it should appear without a “?” icon
  4. If it still shows “?”, check your n8n logs on startup for any node registration errors: docker logs <container_name> | grep -i execute

Also double-check your docker-compose.yml is actually being picked up. Common issue: the file exists but Docker is using the container’s built-in config rather than mounting your compose file properly.

Hi @pelezs Welcome!
The env variable name seems wrong, it should be NODES_EXCLUDE , not EXCLUDE_NODES, your compose file should be like this:

environment:

  • NODES_EXCLUDE=“

and then re create the container with
docker compose down
docker compose up -d

fixing the names and then giving it a restart should solve this.