Automation has always fascinated me. The idea that I could connect apps, schedule tasks, and let workflows run while I focused on bigger things was too good to pass up. That’s why I set my sights on n8n, an open-source automation platform that rivals Zapier and Integromat — but self-hosted.
The mission sounded simple:
👉 Deploy 5–10 workflows (a couple running daily, others triggered on demand)
👉 Keep it running reliably for a year
👉 Stay within the Azure for Students free credit, or at most, spend an extra $100
What I didn’t realize was that this “simple” idea would turn into a journey of choices, errors, and late-night debugging with ChatGPT as my co-pilot.
🤔 Decision Stage: Where to Run n8n?
Before writing a single command, I had to answer the question: Where should I host this thing?
1️⃣ Run it locally (Free, but fragile)
Pros: 100% free, no cloud bills, full control.
Cons: My laptop would need to stay on 24/7. The moment I shut the lid or lost Wi-Fi, my workflows would break.
Result: Not practical. Great for testing, terrible for reliability.
2️⃣ Use Elestio (Managed, but costly)
Pros: Everything is pre-configured — SSL, backups, monitoring.
Cons: Starts at $12–15/month (~$150/year). Too expensive for a student project.
Result: Too costly.
3️⃣ Go with Azure VM (Free tier)
Pros: Practically free with credits, flexible.
Cons: I’d have to manage updates, SSL (Nginx + Let’s Encrypt), and persistence manually. Lots of DevOps babysitting.
Result: Tempting, but I didn’t want the hassle.
4️⃣ Use Azure App Service (Containers)
Pros: Managed hosting, automatic SSL for *.azurewebsites.net, auto-restarts, scaling, persistence via Azure File Share.
Cons: Needed the Basic B1 plan (~$13/month). After free credits, that’s ~$100/year out of pocket.
Result: This was the sweet spot. With $100 credit + $100 personal budget, I could run n8n smoothly for a year.
👉 Decision made: Azure App Service (B1) with $100 top-up.
🛠 Step 1: Storage Account & File Share
Created a Storage Account and File Share (n8ndata) for persistence.
Difficulty #1: Region restrictions
My Student subscription wouldn’t let me use East US.
“Resource disallowed by policy: region not available.”
Fix: Registered policies in Cloud Shell and deployed in West US 3.
Lesson: Free tiers come with invisible fences.
🛠 Step 2: App Service with Docker
Deployed an App Service (Linux, Docker Container) with the official image:
n8nio/n8n:latest
Difficulty #2: Mount path issue
Azure wouldn’t accept /home/node/.n8n.
“Invalid characters in mount path.”
Fix: Mounted to /home/node/n8n and added:
N8N_USER_FOLDER=/home/node/n8n
This made workflows survive restarts.
🛠 Step 3: Environment Variables
Added critical settings:
N8N_HOST = n8n-automationapp.azurewebsites.net
WEBHOOK_URL = https://n8n-automationapp.azurewebsites.net/
N8N_PROTOCOL = https
N8N_PORT = 5678
WEBSITES_PORT = 5678
PORT = 5678
N8N_PROXY_HOPS = 1
N8N_SECURE_COOKIE = true
N8N_USER_FOLDER = /home/node/n8n
N8N_BASIC_AUTH_ACTIVE = true
N8N_BASIC_AUTH_USER = admin
N8N_BASIC_AUTH_PASSWORD = <strong-password>
N8N_ENCRYPTION_KEY = <openssl rand -hex 32>
TZ = America/Chicago
❌ Difficulty #3: SSL & the “Dangerous” Chrome Warning
When I used the secure unique hostname, Chrome flagged it:
n8n-automationapp-bybrhagxhyahhabu.westus3-01.azurewebsites.net
Fix: Switched to the clean hostname:
https://n8n-automationapp.azurewebsites.net
Covered by Microsoft’s wildcard SSL → problem solved.
❌ Difficulty #4: Endless “Please Wait”
n8n sometimes sat forever at “Please wait…”.
Fix: Added:
WEBSITES_CONTAINER_START_TIME_LIMIT=600
This gave the container more time to boot.
✅ The Final Setup
Platform: Azure App Service (Linux, Docker Container)
Persistence: Azure File Share (/home/node/n8n)
Security: Basic Auth + Encryption Key
SSL: Built-in (Azure wildcard cert)
Reliability: Always On enabled
Final result:
https://n8n-automationapp.azurewebsites.net
A secure, persistent, production-ready n8n editor 🎉
🤖 Reflection: The Journey
This wasn’t just deployment — it was a crash course in decision-making and problem-solving.
Tried local setup → free but fragile.
Considered Elestio → too expensive.
Looked at Azure VM → too much manual work.
Chose Azure App Service → reliable with a $100 top-up.
With ChatGPT as my “cloud buddy,” I overcame region policies, mount quirks, SSL warnings, and endless spinners.
The end result: a reliable automation hub, and a valuable lesson — learning by doing beats theory every time.