1
URLs & Access
| Service | URL |
|---|---|
| n8n Editor | https://n8n.esquireembroidery.com |
| n8n Webhook base | https://n8n.esquireembroidery.com/webhook/ |
| Tools Portal | https://tools.esquireembroidery.com |
| n8n Login | chi@esqembroidery.com (testing) |
Production switch reminder: When moving to production (Phase 4), change the Gmail trigger in n8n from
chi@esqembroidery.com to orders@esqembroidery.com.2
Config & Credentials
File locations
| What | Path |
|---|---|
| n8n PM2 config (host, port, webhook URL) | /home/ec2-user/n8n.config.js |
| FileMaker credentials (n8n-writer, n8n-reader) | /home/ec2-user/.n8n/.env |
| n8n database & workflows | /home/ec2-user/.n8n/database.sqlite |
| n8n encrypted credentials store | /home/ec2-user/.n8n/ |
| nginx config for n8n | /etc/nginx/conf.d/n8n.esquireembroidery.com.conf |
| nginx config for tools | /etc/nginx/conf.d/tools.esquireembroidery.com.conf |
| SSL certificates | /etc/letsencrypt/live/ |
FileMaker API accounts
| Account | Access | Databases |
|---|---|---|
n8n-writer | Create + Edit records (no delete) | Order_managementUI + Order_managementDB |
n8n-reader | View only | Order_managementUI + Order_managementDB |
chi | General access (testing) | Order_managementDB |
Passwords are stored in /home/ec2-user/.n8n/.env — never commit this file to Git.
View current n8n config
cat /home/ec2-user/n8n.config.js
View FM credentials
cat /home/ec2-user/.n8n/.env
Edit n8n config
# Edit the file, then restart n8n for changes to take effect
nano /home/ec2-user/n8n.config.js
pm2 delete n8n && pm2 start /home/ec2-user/n8n.config.js && pm2 save
3
Check Server Status
Check all PM2 processes
pm2 list
Check n8n is responding
curl -sI https://n8n.esquireembroidery.com | head -3
Watch n8n live logs
pm2 logs n8n
View last 30 lines of n8n logs
pm2 logs n8n --lines 30 --nostream
Check all services at a glance
# Check each service is responding curl -sI https://n8n.esquireembroidery.com | grep HTTP curl -sI https://tools.esquireembroidery.com | grep HTTP curl -s http://localhost:3000/test # Excel Upload curl -s http://localhost:3001/test # PDF Print (no /test route) curl -s http://localhost:3002/test # FM Order Upload
4
Reset n8n Password
This resets ALL user accounts in n8n. You will need to go through the setup screen again and re-enter your license key.
1
Stop n8n
pm2 stop n8n
2
Reset user database
n8n user-management:reset
3
Start n8n again
pm2 start /home/ec2-user/n8n.config.js && pm2 save
4
Open n8n and complete setupGo to https://n8n.esquireembroidery.com — enter your name, email (
chi@esqembroidery.com), and new password. Re-activate your license key.5
PM2 Commands
| Command | What it does |
|---|---|
pm2 list | Show all running processes and their status |
pm2 restart n8n | Restart n8n (keeps existing env vars) |
pm2 stop n8n | Stop n8n |
pm2 start /home/ec2-user/n8n.config.js | Start n8n from config file (use after editing config) |
pm2 delete n8n | Remove n8n from PM2 (use before re-adding with new config) |
pm2 save | Save process list so it survives server reboots |
pm2 logs n8n | Stream live logs for n8n |
pm2 logs n8n --lines 50 --nostream | Show last 50 log lines without streaming |
pm2 restart all | Restart every service (use after server reboot) |
After editing
n8n.config.js, always use pm2 delete n8n && pm2 start /home/ec2-user/n8n.config.js && pm2 save — a plain pm2 restart won't pick up config file changes.6
Nginx Commands
| Command | What it does |
|---|---|
sudo nginx -t | Test nginx config for errors (always run before reload) |
sudo systemctl reload nginx | Reload nginx config without downtime |
sudo systemctl restart nginx | Full restart (brief downtime) |
sudo systemctl status nginx | Check nginx service status |
sudo certbot renew --dry-run | Test SSL certificate auto-renewal |
7
Disk & Memory
# Check disk usage df -h # Check memory free -h # Find what's taking disk space du -sh /home/ec2-user/* 2>/dev/null | sort -rh | head -10 # Check n8n log size du -sh ~/.pm2/logs/ # Clear old PM2 logs (if they grow large) pm2 flush
EC2 instance: t3.medium — 4GB RAM, 20GB EBS disk. n8n uses ~250MB RAM at rest. Run
free -h if things feel slow.8
FileMaker API Test
Use these commands to verify FileMaker Data API access from the server.
Test n8n-writer login
curl -sk -X POST "https://esqserver.com/fmi/data/v1/databases/Order_managementUI/sessions" \
-H "Content-Type: application/json" \
-u "n8n-writer:PASSWORD" -d "{}" | python3 -m json.tool
Test n8n-reader login
curl -sk -X POST "https://esqserver.com/fmi/data/v1/databases/Order_managementDB/sessions" \
-H "Content-Type: application/json" \
-u "n8n-reader:PASSWORD" -d "{}" | python3 -m json.tool
List all hosted databases
curl -sk "https://esqserver.com/fmi/data/v1/databases" \ -u "n8n-writer:PASSWORD" | python3 -m json.tool
Quick test all 4 account/database combos
for db in "Order_managementUI" "Order_managementDB"; do
for user in "n8n-writer:WRITER_PASS" "n8n-reader:READER_PASS"; do
name=$(echo $user | cut -d: -f1)
pass=$(echo $user | cut -d: -f2)
result=$(curl -sk -X POST "https://esqserver.com/fmi/data/v1/databases/$db/sessions" \
-H "Content-Type: application/json" \
-u "$name:$pass" -d "{}" | python3 -c \
"import sys,json; d=json.load(sys.stdin); print(d['messages'][0]['code'], d['messages'][0]['message'])")
echo "$name → $db: $result"
done
done
Replace
PASSWORD, WRITER_PASS, READER_PASS with actual values from /home/ec2-user/.n8n/.env. Never paste real passwords into documentation.