{"id":6252,"date":"2026-09-10T11:36:09","date_gmt":"2026-09-10T08:36:09","guid":{"rendered":"https:\/\/www.scalahosting.com\/kb\/?p=6252"},"modified":"2026-09-10T11:36:09","modified_gmt":"2026-09-10T08:36:09","slug":"client-login-own-domain-hosting","status":"publish","type":"post","link":"https:\/\/www.scalahosting.com\/kb\/client-login-own-domain-hosting\/","title":{"rendered":"Let Your Clients Log In at Their Own Domain &#8211; Not Yours"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">When you enable branding on an SPanel server, every site you host serves its own login page. A client whose website is client-site.com signs in at client-site.com\/hostpanel\/login &#8211; their domain, your logo, your company name, no shared server address to memorize.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SPanel is ScalaHosting&#8217;s control panel, included free on every managed VPS. This client-facing login experience is the default once branding is on, not something you assemble per account.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>A login URL the client actually recognizes<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Picture a 12-client design agency in Manchester. They build sites, host them, and handle the email. Every month, a client emails support asking, &#8220;What&#8217;s that login address again? And what is SPanel?&#8221; The agency has spent years being the client&#8217;s single point of contact, and a stray server hostname in the address bar quietly undoes that.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That awkward question has a precise cause: the login URL. On many setups, clients sign in at a shared panel hostname that belongs to the infrastructure provider, on a path that names the panel software. The brand the client sees at the door is not the agency&#8217;s. This article is about closing that one gap and why the login URL is the most underrated white-label detail there is.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>What &#8220;log in at your own domain&#8221; actually means<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">With branding enabled, every domain on the server receives its own login page at the client&#8217;s domain plus the neutral \/hostpanel path, so each client signs in somewhere they already recognize.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There&#8217;s no per-client setup behind this. Because SPanel is reachable through every hosted domain, the moment you create an account for <em>client-site.com<\/em>, that domain answers at <em>client-site.com\/hostpanel\/login<\/em> with your company name and logo. No shared <em>panel.youragency.net<\/em>, no IP address, no instructions that read like a server manual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The webmail entry point follows the same branded URL, so a client moving between the panel and their inbox never lands on a vendor address. So does the API endpoint, which matters if you automate account creation: your scripts and the panel speak to the same neutral path. That behavior is documented in the official <a href=\"https:\/\/www.spanel.io\/docs\">SPanel API documentation<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why the login URL is the sharpest differentiator<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Here&#8217;s the part most reseller guides skip.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On the most widely used legacy panel, the login page itself cannot be rebranded. Resellers can change logos inside the panel and on the webmail screen, but the main sign-in page stays the vendor&#8217;s, a limitation documented by cPanel-ecosystem hosts themselves, including InMotion Hosting&#8217;s support material.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Even worse, the &#8220;log in to your panel&#8221; button in many billing setups sends clients to the upstream provider&#8217;s domain. One curious client, one search, and they can easily find who really runs their hosting and what it costs.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">SPanel handles the login page the other way around: the client&#8217;s own domain is the front door, branded, by default. That single difference is what turns &#8220;I resell someone&#8217;s hosting&#8221; into &#8220;I run a hosting company.&#8221;<\/p>\n\n\n\n<figure class=\"wp-block-table is-style-regular green-rows\"><table class=\"has-fixed-layout\"><tbody><tr><td>What the client sees<\/td><td>Typical legacy-panel reseller setup<\/td><td>SPanel with branding enabled<\/td><\/tr><tr><td>Login URL<\/td><td>shared provider hostname or panel address<\/td><td>the client&#8217;s own domain + \/hostpanel\/login<\/td><\/tr><tr><td>Login page brand<\/td><td>the panel vendor&#8217;s name and logo<\/td><td>your company name and your logo<\/td><\/tr><tr><td>Login path<\/td><td>often names the panel software<\/td><td>neutral \/hostpanel, reveals nothing<\/td><\/tr><tr><td>New domains<\/td><td>branding re-applied each time<\/td><td>inherited automatically<\/td><\/tr><tr><td>Webmail entry<\/td><td>may bounce to a vendor URL<\/td><td>follows the branded URL<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">If you run client hosting and want the login page to carry your brand instead of a vendor&#8217;s, SPanel&#8217;s branding is included on every ScalaHosting managed VPS, with no separate white-label tier to buy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>It&#8217;s the default, not an assembly project<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The win is that it costs nothing to maintain. Set it once from the Admin Interface&#8217;s Branding screen: enter your brand name, upload your logo, and set the Login URL to the neutral \/hostpanel path. SPanel writes the branded login into the web configuration for every domain already on the server, and every domain you add afterward inherits it. New accounts, addon domains, subdomains, and main-domain changes all generate their configuration with your brand already in place.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That config also survives the upgrade cycle. SPanel&#8217;s updater reasserts the branded URL in the configuration it regenerates, webmail login and logout links included, so an update never resets you to the default \/spanel path.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Demo flow<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The Admin Interface steps that produce the screenshots, in order.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Log in to the <strong>SPanel Admin Interface<\/strong> as the server administrator. Under <strong>Accounts Management<\/strong>, create an account for the client with the needed username and password. <strong>Submit<\/strong> the form.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-create-client-account-1024x640.webp\" alt=\"Let Your Clients Log In at Their Own Domain &#8211; Not Yours, Demo flow\" class=\"wp-image-6255\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-create-client-account-1024x640.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-create-client-account-300x188.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-create-client-account-768x480.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/01-create-client-account.webp 1440w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li>In a fresh browser session, visit the client&#8217;s own domain at the branded path: <em>client-domain.com\/hostpanel\/login<\/em>. The page shows their company name and logo.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-branded-login-own-domain-1024x640.webp\" alt=\"Let Your Clients Log In at Their Own Domain &#8211; Not Yours, Demo flow 2\" class=\"wp-image-6256\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-branded-login-own-domain-1024x640.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-branded-login-own-domain-300x188.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-branded-login-own-domain-768x480.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/02-branded-login-own-domain.webp 1440w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<ol start=\"3\" class=\"wp-block-list\">\n<li><strong>Sign in as the client<\/strong> and land on the <strong>User Interface<\/strong> dashboard. Email, files, and databases all sit under the reseller&#8217;s brand, reached from the client&#8217;s own domain.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-client-dashboard-1024x640.webp\" alt=\"Let Your Clients Log In at Their Own Domain &#8211; Not Yours, Demo flow 3\" class=\"wp-image-6257\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-client-dashboard-1024x640.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-client-dashboard-300x188.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-client-dashboard-768x480.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/03-client-dashboard.webp 1440w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<ol start=\"4\" class=\"wp-block-list\">\n<li>From the dashboard, open the webmail entry point. The link stays on the branded URL rather than bouncing to a vendor address.<\/li>\n<\/ol>\n\n\n\n<figure class=\"wp-block-image size-large mpg-gallery\"><img decoding=\"async\" width=\"1024\" height=\"640\" src=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/04-webmail-entry-1024x640.webp\" alt=\"Let Your Clients Log In at Their Own Domain &#8211; Not Yours, Demo flow 4\" class=\"wp-image-6258\" srcset=\"https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/04-webmail-entry-1024x640.webp 1024w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/04-webmail-entry-300x188.webp 300w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/04-webmail-entry-768x480.webp 768w, https:\/\/www.scalahosting.com\/kb\/wp-content\/uploads\/2026\/09\/04-webmail-entry.webp 1440w\" sizes=\"(max-width: 361px) 660px, (max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 910px, 1140px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Where the brand still needs your help<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Honest scoping, because the login page is one touchpoint of several. The branded path is the neutral \/hostpanel. It reveals nothing about the panel software, but it is not a free-form custom string, and that neutrality is what lets every new domain inherit it automatically.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Two settings outside the login experience complete the picture: the <strong>server hostname<\/strong> (set one on your own domain, like server1.youragency.com, so mail and FTP settings carry your brand) and <strong>branded nameservers<\/strong> (ns1\/ns2 on your domain for client DNS). SPanel supports all three; together they leave no infrastructure vendor visible.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A few embedded tools, like the webmail client&#8217;s own interface, an application installer (like Sotaculous), or phpMyAdmin, keep their own product names, as they do in every hosting panel.&nbsp;<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>See it on a real server<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">If you run client hosting, the login URL is the first thing your clients see and the easiest brand leak to close. SPanel makes the client&#8217;s own domain the front door by default, free on every ScalaHosting managed VPS. ScalaHosting reports its platform powers <a href=\"https:\/\/www.scalahosting.com\/about-us.html\">over 700,000 sites across more than 120 countries<\/a>. Walk the agency-flavored version in our branded client tour, and if there&#8217;s a branding behavior you&#8217;d like to see next, the <a href=\"https:\/\/features.spanel.io\/\">Cloud Democracy<\/a> Project is where users ask and vote for new features.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>FAQ<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong> <strong>Where exactly do my clients log in after I enable branding?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> At their own domain plus the branded path &#8211; for example client-site.com\/hostpanel\/login. Every hosted domain serves the branded login page, so no shared server address appears in any client instruction.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong> <strong>Do I have to set this up for each client?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> No. Enable branding once from the Admin Interface. New accounts, addon domains, and subdomains all generate their web configuration with the branded login already applied.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong> <strong>Can clients of a legacy panel log in at their own domain like this?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> Generally not for the main login page. On the most common legacy panel the sign-in page cannot be rebranded, and billing integrations often route the login button to the provider&#8217;s domain.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong> <strong>Can I use a fully custom path like<\/strong> <strong>\/mypanel?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> No. The Login URL setting offers two choices, the default \/spanel and the branded \/hostpanel, not a free-form custom string. The neutral \/hostpanel reveals nothing about the panel software, is inherited by every new domain, and survives panel updates, webmail links included.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong> <strong>Does this cost extra?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> No. Branding is included free on every ScalaHosting managed VPS, like every SPanel feature. There&#8217;s no white-label surcharge and no per-account fee.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Q:<\/strong> <strong>Is hiding the panel name a security feature?<\/strong> <\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>A:<\/strong> Treat it as reduced fingerprinting, not security. The real security story is SShield and the hardening stack.<\/p>\n\n\n\n<script type=\"application\/ld+json\">\n    {\n      \"@context\": \"https:\/\/schema.org\",\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [{\n        \"@type\": \"Question\",\n        \"name\": \"Where exactly do my clients log in after I enable branding?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"At their own domain plus the branded path - for example client-site.com\/hostpanel\/login. Every hosted domain serves the branded login page, so no shared server address appears in any client instruction.\"\n        }\n      }, {\n        \"@type\": \"Question\",\n        \"name\": \"Do I have to set this up for each client?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"No. Enable branding once from the Admin Interface. New accounts, addon domains, and subdomains all generate their web configuration with the branded login already applied.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"Can clients of a legacy panel log in at their own domain like this?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"Generally not for the main login page. On the most common legacy panel the sign-in page cannot be rebranded, and billing integrations often route the login button to the provider's domain.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"Can I use a fully custom path like \/mypanel?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"No. The Login URL setting offers two choices, the default \/spanel and the branded \/hostpanel, not a free-form custom string. The neutral \/hostpanel reveals nothing about the panel software, is inherited by every new domain, and survives panel updates, webmail links included.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"Does this cost extra?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"No. Branding is included free on every ScalaHosting managed VPS, like every SPanel feature. There's no white-label surcharge and no per-account fee.\"\n        }\n      },{\n        \"@type\": \"Question\",\n        \"name\": \"Is hiding the panel name a security feature?\",\n        \"acceptedAnswer\": {\n          \"@type\": \"Answer\",\n          \"text\": \"Treat it as reduced fingerprinting, not security. The real security story is SShield and the hardening stack.\"\n        }\n      }]\n    }\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>When you enable branding on an SPanel server, every site you host serves its own login page. A client whose website is client-site.com signs in at client-site.com\/hostpanel\/login &#8211; their domain, your logo, your company name, no shared server address to memorize.&nbsp; SPanel is ScalaHosting&#8217;s control panel, included free on every managed VPS. This client-facing login [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_titles_title":"Let Clients Log In at Their Own Domain with SPanel | ScalaHosting KB","_seopress_titles_desc":"Strengthen your hosting brand by letting clients log in through their own domain. Learn how SPanel makes branded client access simple.","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"","_seopress_redirections_param":"","_seopress_redirections_type":0,"_seopress_analysis_target_kw":"","_seopress_news_disabled":"","_seopress_video_disabled":"","_seopress_video":[],"_seopress_pro_schemas_manual":[],"_seopress_pro_rich_snippets_disable_all":"","_seopress_pro_rich_snippets_disable":[],"_seopress_pro_schemas":[],"footnotes":""},"categories":[66],"tags":[],"class_list":["post-6252","post","type-post","status-publish","format-standard","hentry","category-tutorials"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/6252","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/comments?post=6252"}],"version-history":[{"count":4,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/6252\/revisions"}],"predecessor-version":[{"id":6262,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/posts\/6252\/revisions\/6262"}],"wp:attachment":[{"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/media?parent=6252"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/categories?post=6252"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.scalahosting.com\/kb\/wp-json\/wp\/v2\/tags?post=6252"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}