{"id":3619,"date":"2025-09-29T13:50:16","date_gmt":"2025-09-29T13:50:16","guid":{"rendered":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/?p=3619"},"modified":"2026-05-11T10:26:37","modified_gmt":"2026-05-11T10:26:37","slug":"set-custom-domain-for-n8n-on-vps","status":"publish","type":"post","link":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html","title":{"rendered":"How to Set a Custom Domain for n8n on VPS?"},"content":{"rendered":"\n<p>Running automation workflows with n8n on a VPS is powerful, but accessing it via an IP address isn\u2019t very user-friendly.&nbsp;<\/p>\n\n\n\n<p>Imagine typing a long string of numbers every time you want to open your dashboard! By connecting a custom domain to your n8n instance, you gain a simple, professional, and secure URL, such as <strong>https:\/\/n8n.yourdomain.com.<\/strong><\/p>\n\n\n\n<p>This guide is for users who already have n8n running on their VPS using an IP address <strong>(e.g., http:\/\/IP:5678) <\/strong>and looking to access it via a custom domain with HTTPS.<\/p>\n\n\n\n<p>Whether you are a beginner or an advanced user, this tutorial ensures you will understand each step clearly.<\/p>\n\n\n\n<p>Let\u2019s get started!<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Steps to Set Up a Custom Domain for n8n on Your VPS<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u27a2 <strong>Step 1: Point Your Domain to Your VPS<\/strong><\/h3>\n\n\n\n<p>\u2794 Firstly, log in to your domain registrar\u2019s control panel &amp; Navigate to the DNS management section.<\/p>\n\n\n\n<p>\u2794 Create an A Record for your subdomain.<\/p>\n\n\n\n<p><strong>For example:<\/strong><\/p>\n\n\n\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n    <tbody>\n        <tr style=\"height: 18px;\">\n            <td style=\"padding: 5px 10px; width: 33%; height: 46px; text-align: center;\"><p><span style=\"font-family: verdana, geneva, sans-serif;\"><strong>Name<\/strong><\/span><\/p><\/td>\n            <td style=\"padding: 5px 10px; width: 33%; height: 46px; text-align: center;\"><p><span style=\"font-family: verdana, geneva, sans-serif;\"><strong>Name<\/strong><\/span><\/p><\/td>\n            <td style=\"padding: 5px 10px; width: 33%; height: 46px; text-align: center;\"><p><span style=\"font-family: verdana, geneva, sans-serif;\"><strong>Value<\/strong><\/span><\/p><\/td>\n        <\/tr>\n        <tr style=\"height: 18px;\">\n            <td style=\"padding: 5px 10px; width: 33%; height: 46px; text-align: center;\"><p><span style=\"font-family: verdana, geneva, sans-serif;\">A<\/span><\/p><\/td>\n            <td style=\"padding: 5px 10px; width: 33%; height: 46px; text-align: center;\"><p><span style=\"font-family: verdana, geneva, sans-serif;\">n8n.yourdomain.com<\/span><\/p><\/td>\n            <td style=\"padding: 5px 10px; width: 33%; height: 46px; text-align: center;\"><p><span style=\"font-family: verdana, geneva, sans-serif;\">&lt;your-server-ip><\/span><\/p><\/td>\n        <\/tr>\n    <\/tbody>\n<\/table>\n\n\n\n<p>\u2794 Save the changes and wait for the DNS propagation to complete. This can take anywhere from a few minutes to a few hours.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u27a2 <strong>Step 2: Install Nginx and Certbot<\/strong><\/h3>\n\n\n\n<p>Nginx will act as a reverse proxy to forward traffic from your domain to n8n, while Certbot will help you enable HTTPS with Let\u2019s Encrypt certificates.<\/p>\n\n\n\n<p>\u2794 Connect to your VPS via SSH.<\/p>\n\n\n\n<p>\u2794 Update your package list and install Nginx and Certbot:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><strong>sudo apt update<\/strong><br><strong>sudo apt install nginx certbot python3-certbot-nginx -y<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u2794 Enable and start Nginx so it runs automatically on server boot:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><strong>sudo systemctl enable nginx<\/strong><br><strong>sudo systemctl start nginx<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">\u27a2 <strong>Step 3: Configure Nginx as a Reverse Proxy<\/strong><\/h3>\n\n\n\n<p>Nginx will forward requests from your custom domain to the n8n service running on localhost:5678.<\/p>\n\n\n\n<p>Create a new Nginx configuration file for n8n:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><strong>sudo vi \/etc\/nginx\/sites-available\/n8n<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u2794 You have to paste the following configuration:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n    \ud83d\udccb\n<\/button>\n<span class=\"copy-msg\">Copied!<\/span>\n \n  <table class=\"has-fixed-layout\">\n<tbody>\n<tr>\n<td class=\"kb_firewall\">\n<pre style=\"color:#ffffff;padding:12px; font-family: Consolas, Monaco, 'Courier New', monospace; font-size:14px; line-height:1.6;\">\nserver {\n    listen 80;\n    server_name n8n.yourdomain.com;\n \n    location \/ {\n        proxy_pass http:\/\/127.0.0.1:5678;\n        proxy_http_version 1.1;\n \n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection \"upgrade\";\n \n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n \n        proxy_cache_bypass $http_upgrade;\n    }\n}\n<\/pre>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n\n\n\n<p>\u2794 Save the file and exit the editor.<\/p>\n\n\n\n<p>\u2794 Now, you have to enable the new configuration by creating a symbolic link:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><strong>sudo ln -s \/etc\/nginx\/sites-available\/n8n \/etc\/nginx\/sites-enabled\/<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u2794 Test the configuration for syntax errors:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><strong>sudo nginx -t<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u2794 Restart Nginx to apply the changes:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><strong>sudo systemctl restart nginx<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>At this point, your domain should forward traffic to your n8n instance, but it will still use HTTP.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u27a2 <strong>Step 4: Update n8n Container for Your Domain<\/strong><\/h3>\n\n\n\n<p>Now comes the important part: telling your n8n setup to actually use your domain instead of localhost.<\/p>\n\n\n\n<p>As right now, n8n is running\u2026 but it doesn\u2019t know your domain name yet. We will fix that by restarting it with the right settings.<\/p>\n\n\n\n<p>First, stop and remove your existing container:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n  <button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n    \ud83d\udccb\n  <\/button><span class=\"copy-msg\">Copied!<\/span>\n  <table class=\"has-fixed-layout\">\n    <tbody>\n      <tr>\n        <td class=\"kb_firewall\">\n          <strong>docker stop n8n<\/strong><br>\n          <strong>docker rm n8n<\/strong>\n        <\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n<\/figure>\n\n\n\n<p>Now, run n8n again with your domain details added:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n  <button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n    \ud83d\udccb\n  <\/button><span class=\"copy-msg\">Copied!<\/span>\n  <table class=\"has-fixed-layout\">\n    <tbody>\n      <tr>\n        <td class=\"kb_firewall\">\n<strong>docker run -d &#8211;name n8n \\<\/strong><br>\n<strong>-p 127.0.0.1:5678:5678 \\<\/strong><br>\n<strong>-v \/root\/n8n_data:\/home\/node\/.n8n \\<\/strong><br>\n<strong>-e N8N_HOST=n8n.yourdomain.com \\<\/strong><br>\n<strong>-e N8N_PROTOCOL=https \\<\/strong><br>\n<strong>-e WEBHOOK_URL=https:\/\/n8n.yourdomain.com\/ \\<\/strong><br>\n<strong>-e N8N_EDITOR_BASE_URL=https:\/\/n8n.yourdomain.com \\<\/strong><br>\n<strong>-e N8N_TRUST_PROXY=true \\<\/strong><br>\n<strong>-e N8N_SECURE_COOKIE=false \\<\/strong><br>\n<strong>&#8211;restart always \\<\/strong><br>\n<strong>n8nio\/n8n:latest<\/strong>\n        <\/td>\n      <\/tr>\n    <\/tbody>\n  <\/table>\n<\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u27a2 <strong>Step 5: Enable HTTPS with Let\u2019s Encrypt<\/strong><\/h3>\n\n\n\n<p>\u2794 Now, you have to use Certbot to automatically obtain and configure an SSL certificate:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><code class=\"cmd-code\"><strong>sudo certbot --nginx -d n8n.yourdomain.com<\/strong><\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>That\u2019s it! Your n8n dashboard is now accessible via your custom domain:<\/p>\n\n\n\n<figure class=\"wp-block-table\">\n\t<button class=\"copy-btn\" onclick=\"copyCommand(this)\">\n            \ud83d\udccb\n          <\/button><span class=\"copy-msg\">Copied!<\/span>\n          <table class=\"has-fixed-layout\"><tbody><tr><td class=\"kb_firewall\"><strong>https:\/\/n8n.yourdomain.com<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>You now have a secure, easy-to-remember URL for accessing n8n, and your setup will automatically maintain HTTPS certificates. You can continue building automation workflows while maintaining a secure and professional instance.<\/p>\n\n\n    <div class=\"blg-advrt-main blg-prm-bx\">\n        <div class=\"row\" style=\"display: flex; justify-content: space-evenly; align-items: center;\">\n            <div class=\"col-md-5\">\n                <div class=\"blg-advrt-first blg-advrt-right\">\n                    <img decoding=\"async\" src=\"https:\/\/www.hostitsmart.com\/assets\/images\/blog\/maintenance.png\" alt=\"n8n self-hosting\" \/>\n                <\/div>\n            <\/div>\n            <div class=\"col-md-7\">\n                <div class=\"blg-advrt-first blg-advrt-left\">\n                    <div class=\"blg_advrt_cnt\">\n                        Automate Faster Now                    <\/div>\n                    <p>\n                        Try our ready-to-go n8n self-hosting and start automating in minutes!                    <\/p>\n                    <div class=\"blg-advrt-first-btn affl-blg-btn\">\n                        <a href=\"https:\/\/www.hostitsmart.com\/servers\/self-hosted-n8n\">\n                            Explore n8n Self-Hosting                        <\/a>\n                    <\/div>\n                <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n    \n<h2 class=\"wp-block-heading\">\n  <strong>Quick Troubleshooting (If Something Feels Off)<\/strong><br \/>\n<\/h2>\n<p>Sometimes things don\u2019t work perfectly on the first try.<\/p>\n<p>It\u2019s totally normal!<\/p>\n<p><strong>Here\u2019s how to quickly spot and fix common issues:<\/strong><\/p>\n<ul style=\"list-style: none; padding-left: 20px;\">\n<li style=\"margin-bottom: 12px;\">\n    \u27a4 <strong>Seeing a 502 error?<\/strong><br \/>\n    <span style=\"margin-left: 18px; display: inline-block;\"><br \/>\n      This usually means n8n isn\u2019t running properly. Just check if your container is up and running.<br \/>\n    <\/span>\n  <\/li>\n<\/ul>\n<ul style=\"list-style: none; padding-left: 20px;\">\n<li style=\"margin-bottom: 12px;\">\n    \u27a4 <strong>Page not loading at all?<\/strong><br \/>\n    <span style=\"margin-left: 18px; display: inline-block;\"><br \/>\n      It is most likely a config issue. Double-check your Nginx setup. A small mistake there can block everything.<br \/>\n    <\/span>\n  <\/li>\n<\/ul>\n<ul style=\"list-style: none; padding-left: 20px;\">\n<li style=\"margin-bottom: 12px;\">\n    \u27a4 <strong>Webhook not receiving any data?<\/strong><br \/>\n    <span style=\"margin-left: 18px; display: inline-block;\"><br \/>\n      Make sure your workflow is active in n8n. If it\u2019s not active, it simply won\u2019t listen.<br \/>\n    <\/span>\n  <\/li>\n<\/ul>\n<h2>\u2605 Important Points to Remember<\/h2>\n<p><strong>Basic Points<\/strong><\/p>\n<p style=\"margin-left: 24px; text-indent: -16px; padding-left: 16px;\">\n  \u2794 Before anything else, make sure your domain is pointing to your server\u2019s IP address. Otherwise, things won\u2019t load (and you will just be staring at a blank page)\n<\/p>\n<p style=\"margin-left: 24px; text-indent: -16px; padding-left: 16px;\">\n  \u2794 Once you switch to your domain, forget the old habit of using IP:5678 \u2014 it\u2019s no longer needed\n<\/p>\n<p style=\"margin-left: 24px; text-indent: -16px; padding-left: 16px;\">\n  \u2794 From now on, always access n8n using your domain with HTTPS: https:\/\/yourdomain\n<\/p>\n<p><strong>Most Necessary Points<\/strong><\/p>\n<p style=\"margin-left: 24px;\">\n  After switching to your domain, there\u2019s one small (but important) thing to take care of:\n<\/p>\n<p style=\"margin-left: 24px; text-indent: -16px; padding-left: 16px;\">\n  \u2794 After changing to the domain, you must: Go back to n8n and activate your workflow again. This refreshes everything with your new domain setup\n<\/p>\n<p style=\"margin-left: 24px; text-indent: -16px; padding-left: 16px;\">\n  \u2794 Always use the Production Webhook URL (\/webhook) for real usage, as the Test URL (\/webhook-test) is only for testing inside n8n &#038; it won\u2019t work once you go live with your domain.\n<\/p>\n\n\n<h2 class=\"wp-block-heading\"><strong>Conclusion<\/strong><\/h2>\n\n\n\n<p>And that\u2019s it! Your n8n is no longer stuck behind an IP address.<\/p>\n\n\n\n<p>You now have a clean, secure, and professional setup that\u2019s easier to access and share, and ready for real-world automation. From setting up your domain to enabling HTTPS and fixing common issues, you\u2019ve covered everything that actually matters.<\/p>\n\n\n\n<p>Now, the only thing left?<\/p>\n\n\n\n<p>Start building workflows and let n8n do the heavy lifting!<\/p>\n\n\n\n<script>\nfunction copyCommand(btn) {\n  const td = btn.parentElement.querySelector(\"td.kb_firewall\");\n  const text = td.innerText.trim();\n\n  navigator.clipboard.writeText(text).then(() => {\n    const msg = btn.parentElement.querySelector(\".copy-msg\");\n    msg.style.display = \"inline-block\";\n    setTimeout(() => msg.style.display = \"none\", 1000);\n  });\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>Running automation workflows with n8n on a VPS is powerful, but accessing it via an IP address isn\u2019t very user-friendly.&nbsp; Imagine typing a long string of numbers every time you want to open your dashboard! By connecting a custom domain to your n8n instance, you gain a simple, professional, and secure URL, such as https:\/\/n8n.yourdomain.com. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64],"tags":[],"class_list":["post-3619","post","type-post","status-publish","format-standard","hentry","category-n8n"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.2 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Set a Custom Domain for n8n on VPS?<\/title>\n<meta name=\"description\" content=\"Learn to set a custom domain for your n8n automation tool on a VPS with our step-by-step guide to point your domain and secure your n8n instance with SSL.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Set a Custom Domain for n8n on VPS?\" \/>\n<meta property=\"og:description\" content=\"Learn to set a custom domain for your n8n automation tool on a VPS with our step-by-step guide to point your domain and secure your n8n instance with SSL.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html\" \/>\n<meta property=\"og:site_name\" content=\"Host IT Smart Knowledge base\" \/>\n<meta property=\"article:published_time\" content=\"2025-09-29T13:50:16+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-11T10:26:37+00:00\" \/>\n<meta name=\"author\" content=\"Admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html\",\"url\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html\",\"name\":\"How to Set a Custom Domain for n8n on VPS?\",\"isPartOf\":{\"@id\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#website\"},\"datePublished\":\"2025-09-29T13:50:16+00:00\",\"dateModified\":\"2026-05-11T10:26:37+00:00\",\"author\":{\"@id\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#\/schema\/person\/317c14a877385667f19d3b7496bd5108\"},\"description\":\"Learn to set a custom domain for your n8n automation tool on a VPS with our step-by-step guide to point your domain and secure your n8n instance with SSL.\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#website\",\"url\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/\",\"name\":\"Host IT Smart Knowledge base\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#\/schema\/person\/317c14a877385667f19d3b7496bd5108\",\"name\":\"Admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d4827c56a6721070dde339640d47ff44ba0d0e515c7e577cf29305ab72383fe3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d4827c56a6721070dde339640d47ff44ba0d0e515c7e577cf29305ab72383fe3?s=96&d=mm&r=g\",\"caption\":\"Admin\"},\"sameAs\":[\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/\"],\"url\":\"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Set a Custom Domain for n8n on VPS?","description":"Learn to set a custom domain for your n8n automation tool on a VPS with our step-by-step guide to point your domain and secure your n8n instance with SSL.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html","og_locale":"en_US","og_type":"article","og_title":"How to Set a Custom Domain for n8n on VPS?","og_description":"Learn to set a custom domain for your n8n automation tool on a VPS with our step-by-step guide to point your domain and secure your n8n instance with SSL.","og_url":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html","og_site_name":"Host IT Smart Knowledge base","article_published_time":"2025-09-29T13:50:16+00:00","article_modified_time":"2026-05-11T10:26:37+00:00","author":"Admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Admin","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html","url":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html","name":"How to Set a Custom Domain for n8n on VPS?","isPartOf":{"@id":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#website"},"datePublished":"2025-09-29T13:50:16+00:00","dateModified":"2026-05-11T10:26:37+00:00","author":{"@id":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#\/schema\/person\/317c14a877385667f19d3b7496bd5108"},"description":"Learn to set a custom domain for your n8n automation tool on a VPS with our step-by-step guide to point your domain and secure your n8n instance with SSL.","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/470\/set-custom-domain-for-n8n-on-vps.html"]}]},{"@type":"WebSite","@id":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#website","url":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/","name":"Host IT Smart Knowledge base","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#\/schema\/person\/317c14a877385667f19d3b7496bd5108","name":"Admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d4827c56a6721070dde339640d47ff44ba0d0e515c7e577cf29305ab72383fe3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d4827c56a6721070dde339640d47ff44ba0d0e515c7e577cf29305ab72383fe3?s=96&d=mm&r=g","caption":"Admin"},"sameAs":["https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/"],"url":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/posts\/3619","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/comments?post=3619"}],"version-history":[{"count":79,"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/posts\/3619\/revisions"}],"predecessor-version":[{"id":5305,"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/posts\/3619\/revisions\/5305"}],"wp:attachment":[{"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/media?parent=3619"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/categories?post=3619"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostitsmart.com\/manage\/knowledgebase\/wp-json\/wp\/v2\/tags?post=3619"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}