Make n8n Public FREE Docker + ngrok Setup — No Domain Needed

3 min read 6 days ago
Published on Aug 31, 2025 This response is partially generated with the help of AI. It may contain inaccuracies.

Table of Contents

Introduction

This tutorial will guide you through the process of making your local n8n instance public using Docker and ngrok, without the need for a domain or paid hosting. This setup allows you to utilize n8n for automation tasks that require external webhooks and API integrations. By following these steps, you'll be able to expose your local n8n environment to the internet securely and for free.

Step 1: Set Up Docker and Run n8n

  1. Install Docker: If you haven't already, download and install Docker from the Docker website.

  2. Pull the n8n Docker Image:

    • Open your terminal or command prompt.
    • Run the following command to pull the n8n image:
      docker pull n8nio/n8n
      
  3. Run n8n in Docker:

    • Execute the following command to start n8n:
      docker run -d --name n8n -p 5678:5678 n8nio/n8n
      
    • This command runs n8n in detached mode and maps port 5678 on your local machine to port 5678 in the container.
  4. Access n8n: Open your web browser and go to http://localhost:5678 to access the n8n interface.

Step 2: Install and Configure ngrok

  1. Sign Up for ngrok:

    • Go to the ngrok website and create a free account.
    • After signing up, you'll receive an authentication token.
  2. Download and Install ngrok:

    • Follow the instructions on the ngrok website to download and install ngrok for your operating system.
  3. Authenticate ngrok:

    • Open your terminal or command prompt.
    • Run the following command with your authentication token:
      ngrok authtoken YOUR_AUTH_TOKEN
      
  4. Start ngrok:

    • To expose your n8n instance, run:
      ngrok http 5678
      
    • This command starts a tunnel to port 5678, making n8n accessible over the internet.
  5. Copy the Public URL:

    • After starting ngrok, you’ll see a forwarding URL (e.g., https://1234abcd.ngrok.io). Copy this URL as you will use it to access n8n from anywhere.

Step 3: Connect Webhooks and External Services

  1. Set Up Webhooks:

    • In n8n, create a new workflow and use the Webhook node to set up your webhook.
    • Use the public URL from ngrok followed by the webhook path you want (e.g., https://1234abcd.ngrok.io/webhook/my-webhook).
  2. Integrate External Services:

    • You can now connect n8n to various services like Telegram, Gmail, YouTube, etc., using the available nodes in n8n.
    • For services that require a secure HTTPS endpoint, use the ngrok URL.

Step 4: Test and Share Your Automation Flows

  1. Test Your Webhooks:

    • Trigger your webhook from an external service or tool to ensure it's working correctly.
    • Check the n8n interface to see if the execution is successful.
  2. Share the ngrok URL:

    • Share the ngrok URL with others for testing or collaboration. Remember, the URL will change every time you restart ngrok unless you have a paid plan.

Conclusion

You have successfully set up n8n in Docker and made it publicly accessible using ngrok, allowing you to test webhooks and integrate with external services. This setup is ideal for experimentation and development purposes. For production use, consider securing your endpoints and exploring paid options for ngrok. Happy automating!