n8n - Getting Started Guide
n8n is an open-source workflow automation tool that lets you connect apps, APIs, and services using a visual drag-and-drop editor. It works like Zapier or Make, but runs entirely on your own server. With over 400 integrations and support for custom code, it suits both simple automations and complex multi-step workflows. Your owner account is created automatically during provisioning using the domain, email and password you provided when ordering.
Step 1 – Verify n8n Works
Your server’s IP address and root password are shown in the Server Information section on the Overview tab of your server in the client portal. The application settings you entered when ordering, passwords included, are shown in the n8n Credentials card on the same tab. Open your browser and navigate to:
https://your.server.ip
HTTPS without a domain. Since January 2026 Let’s Encrypt issues certificates for IP addresses (official announcement), so your server gets a real, browser-trusted certificate on first boot – before you connect any domain. Certificates of this kind are short-lived (about six days) and renew automatically. If your server is not reachable from the internet on port 80 (for example, it sits behind a router), the certificate cannot be issued – in that case use http:// instead.
Log in with the email and password you provided when ordering. Your owner account was created automatically during setup.
If the login page loads and you can sign in, n8n is working correctly.
For the first minute after the server is created n8n answers 403 Forbidden: it stays closed to visitors until your owner account is set up, so nobody else can claim the instance. Wait a minute and reload.
If you placed the server behind a VyOS router on a private network, the server has only a private address, so it does not get the IP certificate, and n8n is set up for that private address. You can open n8n over http:// on the private address through a VPN on the router (WireGuard or OpenVPN, on the router’s Configuration tab). To make n8n reachable from the internet, forward ports 80 and 443 to the server on the router’s Configuration tab (Port forwarding), point your domain to the router’s public address and connect the domain (Steps 2-3): until then, n8n’s links point to the private address. Webhooks from external services need n8n on the internet, through the domain. Forward port 22 as well if you need SSH from the internet.
Firewall. If you turn on the Firewall for this server in the client portal, allow incoming TCP port 80 in its rules, along with 443 (HTTPS). Certificates renew over port 80 – the IP certificate every few days – and without that rule the certificate expires and the browser starts showing a warning.
Step 2 – Configure Custom Domain (Optional)
n8n works by IP address right away. To use your domain (the one you entered when ordering or another one), point it to your server by creating a DNS A record:
your-domain.com -> your.server.ip
DNS changes usually take a few minutes, but can take up to 24 hours. You can check the status at dnschecker.org.
Step 3 – Enable SSL with Let’s Encrypt
Once your domain resolves to the server IP, connect via SSH and run:
ssh root@your.server.ip
/opt/setup/get-ssl.sh your-domain.com you@example.com
The email is optional (Let’s Encrypt uses it for expiry notices). The domain you entered when ordering is already saved on the server, so you can run the script without arguments. The script will automatically configure Nginx with your domain, obtain a free Let’s Encrypt certificate, and update n8n to use HTTPS. After completion, n8n will be available at https://your-domain.com. Automatic renewal is already configured.
Post-Installation
Fail2Ban – Brute-Force Protection
Your server comes with Fail2Ban pre-configured to protect SSH from brute-force attacks.
| Rule | Max Attempts | Ban Duration |
|---|---|---|
| SSH | 5 failed logins | 10 minutes |
Useful commands:
# Check banned IPs
fail2ban-client status sshd
# Unban an IP
fail2ban-client set sshd unbanip 1.2.3.4
If you accidentally lock yourself out, open the Console on your server’s Overview tab in the client portal and unban your IP.
Service Management
# Check n8n service status
systemctl status n8n
# View n8n logs
journalctl -u n8n -f
# Restart n8n
systemctl restart n8n
# View setup log
cat /opt/setup/setup.log
Backups
n8n stores all data (workflows, credentials, execution history) in an SQLite database:
# Back up n8n data
cp -r /root/.n8n /root/n8n-backup-$(date +%Y%m%d)
# Or export workflows via CLI
n8n export:workflow --all --output=/root/workflows-backup.json
Updates
# Update n8n
npm install -g n8n
systemctl restart n8n
# Update OS packages
apt update && apt upgrade -y
Software Included
| Component | Version |
|---|---|
| Ubuntu | 24.04 LTS |
| n8n | 2.35 |
| Node.js | 22.x LTS |
| Nginx | 1.24 |
| Certbot | 2.9 |
| Fail2Ban | 1.0.2 |
Troubleshooting
| Problem | Solution |
|---|---|
| 403 Forbidden right after the server is created | n8n stays closed to visitors until your owner account is set up – wait a minute and reload. If the page still shows 403 after five minutes, setup did not complete (for example, n8n rejected the password: at least 8 characters with a digit and a capital letter): check /opt/setup/setup.log over SSH and reinstall the server with the Rebuild button on its Overview tab in the client portal |
| Cannot access n8n web interface | Check that n8n is running: systemctl status n8n. Also verify Nginx: systemctl status nginx |
| n8n shows “Not Found” or blank page | Restart n8n: systemctl restart n8n. Wait 10-15 seconds and refresh the page |
| SSL script fails with DNS error | Ensure your domain A record points to the server IP. Check with: dig +short your-domain.com |
| Login page says “wrong credentials” | Use the email and password you entered when ordering. If forgotten, see the n8n Credentials card on the Overview tab of your server in the client portal |
| Workflows not executing | Check n8n logs: journalctl -u n8n --since "1 hour ago". Ensure the workflow is set to Active |
| Webhooks not reachable from outside | Set up a domain and enable SSL. Webhook URLs update automatically when SSL is configured |
| Blocked by Fail2Ban | Use the Console on your server’s Overview tab in the client portal to unban your IP |
| Forgot root password | Use the Console on your server’s Overview tab in the client portal to reset it |