n8n Operations Guide

Commands, config locations, and maintenance procedures for the n8n automation server.

⚙ n8n.esquireembroidery.com  |  EC2 ec2-user@ip-172-31-9-82
1

URLs & Access

ServiceURL
n8n Editorhttps://n8n.esquireembroidery.com
n8n Webhook basehttps://n8n.esquireembroidery.com/webhook/
Tools Portalhttps://tools.esquireembroidery.com
n8n Loginchi@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

WhatPath
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

AccountAccessDatabases
n8n-writerCreate + Edit records (no delete)Order_managementUI + Order_managementDB
n8n-readerView onlyOrder_managementUI + Order_managementDB
chiGeneral 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

CommandWhat it does
pm2 listShow all running processes and their status
pm2 restart n8nRestart n8n (keeps existing env vars)
pm2 stop n8nStop n8n
pm2 start /home/ec2-user/n8n.config.jsStart n8n from config file (use after editing config)
pm2 delete n8nRemove n8n from PM2 (use before re-adding with new config)
pm2 saveSave process list so it survives server reboots
pm2 logs n8nStream live logs for n8n
pm2 logs n8n --lines 50 --nostreamShow last 50 log lines without streaming
pm2 restart allRestart 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

CommandWhat it does
sudo nginx -tTest nginx config for errors (always run before reload)
sudo systemctl reload nginxReload nginx config without downtime
sudo systemctl restart nginxFull restart (brief downtime)
sudo systemctl status nginxCheck nginx service status
sudo certbot renew --dry-runTest 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.