CINXE.COM
Managing WHM Packages - Krystal Hosting Knowledge Base
<!DOCTYPE html> <html lang="en"> <head> <title>Managing WHM Packages - Krystal Hosting Knowledge Base</title> <meta name="description" content="WebHost Manager (WHM) is the central control panel from which you manage your reseller hosting services with us. WHM allows you to manage your client cPanel accounts and control all elements of your…"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="shortcut icon" href="https://files.helpdocs.io/8nzbvyta9f/favicon.svg"> <meta property="og:title" content="Managing WHM Packages"> <meta property="twitter:title" content="Managing WHM Packages"> <meta property="og:type" content="article"> <meta property="twitter:card" content="summary_large_image"> <meta property="og:image" content="https://files.helpdocs.io/8nzbvyta9f/articles/220o9ny7ar/1654691896998/whm-package-manager-image-1.png"> <meta property="twitter:image:src" content="https://files.helpdocs.io/8nzbvyta9f/articles/220o9ny7ar/1654691896998/whm-package-manager-image-1.png"> <meta property="og:url" content="https://help.krystal.io/reseller-guides/managing-whm-packages"> <meta property="twitter:site" content="https://help.krystal.io"> <meta property="article:published_time" content="2022-04-27T13:40:34Z"> <meta property="article:modified_time" content="2023-06-30T16:21:12Z"> <meta property="og:site_name" content="Krystal Hosting"> <script type="application/ld+json">{"@context":"http://schema.org","@type":"TechArticle","articleBody":"WebHost Manager (WHM) is the central control panel from which you manage your reseller hosting services with us. WHM allows you to manage your client cPanel accounts and control all elements of your hosting service. Your WHM login details are issued in your Welcome e-mail when your new reseller account is setup. After you’ve created any feature lists you require, the second step in setting up your new hosting service is to create a package. A package is a list of permissions and resources that your clients can have access to once they order your hosting services. You can set-up as many packages as you like. These can also be edited at a later stage if you decide to change your service offering. Creating a Package. WHM \u003e\u003e Packages \u003e\u003e Add a Package In WHM, under the Packages section, click Add a Package. You will see a new screen which initially asks for a Package Name. You can name your packages anything you like, for example if you have three levels of hosting with different limits you might name them bronze, silver and gold.. Next, you can define a list of resources to suit the package you are offering. You must set a limit for disk space and bandwidth - see details below for over-selling and explanation of the plan limits. Select the feature list you've previously configured, and assign this to your respective package. This will only permit access to those features you had enabled specifically in your chosen feature list. For the purpose of this example, all other selections should remain as default. Editing or deleting a package. WHM \u003e\u003e Packages \u003e\u003e Edit a Package Select the package and click Edit. WHM \u003e\u003e Packages \u003e\u003e Delete a Package Select the package and click Delete - the package will be deleted, there is no confirmation. Creating an SSH Package for Resellers to allow Secure Shell access. It may be that you'd like to offer SSH (Secure Shell) access to some of your clients. We now provide the functionality to enable you to create accounts within WHM with SSH access enabled for your customers, to save you time when creating accounts for customers who may require it! Prior to creating WHM packages with SSH enabled you will need to enable it for your reseller hosting package. We have a separate guide detailing how to enable SSH on your hosting package. We'd suggest handling this on an individual basis by creating additional matching WHM packages with the Shell Access option ticked. So, for example, if you have three packages - Bronze, Silver and Gold. You would replicate them exactly to three new packages - Bronze-SSH, Silver-SSH and Gold-SSH. And in these new packages, you would ensure the Shell Access option is ticked. You would then simply change the package applied to an individual client to the SSH version to permit access - by following the instructions in the following section. Modifying a client's Package. WHM \u003e\u003e Multi-Account Functions \u003e\u003e Modify/Upgrade Multiple Accounts Select the account(s) for which you'd like to change the package - you can see the accounts current package detailed in the Package column. Select the package you'd like to change them to from the drop-down. Click the Change button. It's also possible to change just one account from Account Functions \u003e\u003e Upgrade/Downgrade an Account - but using this option doesn't show the existing package assigned to an account in the initial list. Over-selling. Your reseller plan will have a disk limit defined by the plan you're on. Your bandwidth is technically unlimited (More information on this below!). For example, on a Unity reseller plan, you are assigned 25Gb of disk space and 25 cPanel accounts. So you could create a 1Gb package and assign this to 25 resellers (or 24 if you are using one of the accounts) and under these circumstances, you'd be unlikely to have any issues - other than individual clients hitting their 1Gb limit. However, you could create a package with a 10Gb limit - and assign it to those same 25 cPanel accounts. Now you've effectively assigned 250Gb of space - but your plan has a 25Gb limit. In this situation, if your clients tried to use more than 25Gb in total you'd be over you plan limit and that would impact all clients. You would need to clear some space or upgrade to a hosting plan with a higher disk allowance. Bandwidth Limits Explained. cPanel requires that a bandwidth limit be set when any other resource is limited. As we limit resellers by disk space, cPanel also requires a bandwidth limit to be set. If you wish to offer your clients 'unlimited' bandwidth (as we offer you) then simply set their bandwidth limit to a very high number e.g. 999999999","articleSection":"Reseller Guides","author":{"@type":"Person","image":"https://www.gravatar.com/avatar/c7d18870382596718fcad368bbae3ecd?d=mm\u0026s=150","name":"Ben Oates"},"dateCreated":"2022-04-27T13:40:34Z","dateModified":"2023-06-30T16:21:12Z","datePublished":"2022-04-27T13:40:34Z","headline":"Managing WHM Packages","image":"https://files.helpdocs.io/8nzbvyta9f/articles/220o9ny7ar/1654691896998/whm-package-manager-image-1.png","mainEntityOfPage":"https://help.krystal.io/reseller-guides/managing-whm-packages","publisher":{"@type":"Organization","logo":"https://files.helpdocs.io/8nzbvyta9f/logo.png?t=1669998786961","name":"krystal"},"thumbnailUrl":"https://files.helpdocs.io/8nzbvyta9f/articles/220o9ny7ar/1654691896998/whm-package-manager-image-1.png","url":"https://help.krystal.io/reseller-guides/managing-whm-packages","version":8,"wordCount":798}</script> <link rel="canonical" href="https://help.krystal.io/reseller-guides/managing-whm-packages"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/highlightjs-github-gist.min.css?v=1732636207"> <!-- [Begin] HelpDocs Required Additions --> <script src="https://cdn.helpdocs.io/js/jquery.min.js?v=1565690126"></script> <script src="https://cdn.helpdocs.io/js/tether.min.js?v=1565690126"></script> <script src="https://cdn.helpdocs.io/js/bootstrap.min.js?v=1565690126"></script> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/bootstrap.min.css?v=1565690126"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/font-awesome.min.css?v=1565690126"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/tether.min.css?v=1565690126"> <link rel="stylesheet" href="https://cdn.helpdocs.io/css/glyphicons.css?v=1565690126"> <!-- [End] HelpDocs Required Additions --> <link href="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/magnific-popup.min.css" type="text/css" rel="stylesheet"><script src="https://cdnjs.cloudflare.com/ajax/libs/magnific-popup.js/1.1.0/jquery.magnific-popup.min.js" type="text/javascript"></script><script type="text/javascript"> (function() { $(function() { $('#article img').each(function() { $(this).wrap('<a></a>'); $(this).parent().addClass('lightbox').attr('href', $(this).attr('src')); }); $('.lightbox').magnificPopup({ type: 'image', closeOnContentClick: true, mainClass: 'mfp-img-mobile', image: { verticalFit: true } }); }); })();</script> <!-- Google tag manager --> <script> (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-T6LWQLRB'); </script> <script> /* Method to remove potential duplicated articles */ (function() { $(function() { var seenURLs = []; var removeEls = []; $('.article-title-link').each(function(i, el) { var url = $(this).attr('href'); if (seenURLs.indexOf(url) > -1) { removeEls.push(el); return; } seenURLs.push(url); }); for (var i = 0; i < removeEls.length; i++) { $(removeEls[i]).remove(); } }); })(); /* * @name DoubleScroll * @desc displays scroll bar on top and on the bottom of the div * @requires jQuery * * @author Pawel Suwala - http://suwala.eu/ * @author Antoine Vianey - http://www.astek.fr/ * @version 0.5 (11-11-2015) * * Dual licensed under the MIT and GPL licenses: * http://www.opensource.org/licenses/mit-license.php * http://www.gnu.org/licenses/gpl.html * * Usage: * https://github.com/avianey/jqDoubleScroll */ (function( $ ) { jQuery.fn.doubleScroll = function(userOptions) { // Default options var options = { contentElement: undefined, // Widest element, if not specified first child element will be used scrollCss: { 'overflow-x': 'auto', 'overflow-y': 'hidden', 'height': '20px' }, contentCss: { 'overflow-x': 'auto', 'overflow-y': 'hidden' }, onlyIfScroll: true, // top scrollbar is not shown if the bottom one is not present resetOnWindowResize: false, // recompute the top ScrollBar requirements when the window is resized timeToWaitForResize: 30 // wait for the last update event (usefull when browser fire resize event constantly during ressing) }; $.extend(true, options, userOptions); // do not modify // internal stuff $.extend(options, { topScrollBarMarkup: '<div class="doubleScroll-scroll-wrapper"><div class="doubleScroll-scroll"></div></div>', topScrollBarWrapperSelector: '.doubleScroll-scroll-wrapper', topScrollBarInnerSelector: '.doubleScroll-scroll' }); var _showScrollBar = function($self, options) { if (options.onlyIfScroll && $self.get(0).scrollWidth <= $self.width()) { // content doesn't scroll // remove any existing occurrence... $self.prev(options.topScrollBarWrapperSelector).remove(); return; } // add div that will act as an upper scroll only if not already added to the DOM var $topScrollBar = $self.prev(options.topScrollBarWrapperSelector); if ($topScrollBar.length == 0) { // creating the scrollbar // added before in the DOM $topScrollBar = $(options.topScrollBarMarkup); $self.before($topScrollBar); // apply the css $topScrollBar.css(options.scrollCss); $(options.topScrollBarInnerSelector).css("height", "20px"); $self.css(options.contentCss); // bind upper scroll to bottom scroll $topScrollBar.bind('scroll.doubleScroll', function() { $self.scrollLeft($topScrollBar.scrollLeft()); }); // bind bottom scroll to upper scroll var selfScrollHandler = function() { $topScrollBar.scrollLeft($self.scrollLeft()); }; $self.bind('scroll.doubleScroll', selfScrollHandler); } // find the content element (should be the widest one) var $contentElement; if (options.contentElement !== undefined && $self.find(options.contentElement).length !== 0) { $contentElement = $self.find(options.contentElement); } else { $contentElement = $self.find('>:first-child'); } // set the width of the wrappers $(options.topScrollBarInnerSelector, $topScrollBar).width($contentElement.outerWidth()); $topScrollBar.width($self.width()); $topScrollBar.scrollLeft($self.scrollLeft()); } return this.each(function() { var $self = $(this); _showScrollBar($self, options); // bind the resize handler // do it once if (options.resetOnWindowResize) { var id; var handler = function(e) { _showScrollBar($self, options); }; $(window).bind('resize.doubleScroll', function() { // adding/removing/replacing the scrollbar might resize the window // so the resizing flag will avoid the infinite loop here... clearTimeout(id); id = setTimeout(handler, options.timeToWaitForResize); }); } }); } }( jQuery )); $(document).ready(function() { $('.double-scroll').doubleScroll(); }); </script> <style> @import url('https://cdn.krystal.io/fonts/email-fonts.css'); /* General */ details { background-color: #e398ea; border-radius: 25px; padding: 10px;. } body { background: #F6F7F9; min-height: 100%; overflow-x: hidden; font-family: 'Borna', sans-serif; font-weight: 400; font-style: normal; -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; -webkit-font-feature-settings: "pnum"; font-feature-settings: "pnum"; font-variant-numeric: proportional-nums; color: #4D5A6D; } .category-title { color: #FFFFFF; background: #182229; padding: 1px 5px; font-size: 0.8em; display: inline-block; border-radius: 3px; font-weight: normal; } header>.container-fluid { margin: 0; padding: 0; } .large-heading-text { font-weight: 600; margin-bottom: 1em; } .hvr-card { box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; overflow-x: hidden; transition: box-shadow 0.5s ease; margin-bottom: 2rem; } .hvr-card:hover { box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.10) } .card-block { padding: 1em 1em 0em 1em; min-height: 270px; } a.card-link > .card-block { display: flex; flex-direction: column; } a.card-link .card-description { flex-grow: 1; } #article a { color: #3E4856 !important; } #home .card-block { min-height: 435px; } #related .card-block, #search-articles .card-block { min-height: 0px !important; } .card-title { font-size: 20px; color: #182229; /* CHANGE TO DYNAMIC */ } .card-link:hover { text-decoration: none; } .card-link:focus { text-decoration: none; } .card-description { color: #4D5A6D; line-height: 20px; font-size: 14px; } .small-capital-text { font-size: 0.9rem; font-weight: 600; color: #4D5A6D; text-transform: uppercase; } .small-capital-text a { color: #4D5A6D; /* CHANGE TO DYNAMIC */ text-decoration: none; } .author-text span:first-of-type { padding-left: 0.5em; } .author-text { border-top: 1px solid rgba(0, 0, 0, 0.06); padding-top: 1em; } .card-link p.author-text { margin-bottom: 0; } .author-image { max-height: 30px; display: inline-block; border-radius: 4px; border: 2px solid white; } .author-image:not(:first-of-type) { margin-left: -10px; } /* Header Navigation Bar */ .top-bar{ background: #1e1b3d; color: #fff; padding-bottom: 8px; padding-top: 8px; font-size: 0.8em; } .top-bar-title{ color: hsla(0,0%,100%,.5); font-weight: bold; } /* Header */ @media only screen and (min-device-width: 320px) { .navbar { margin-left: -15px; margin-right: -15px; } } @media only screen and (min-width: 481px) { .navbar { margin-left: -30px; margin-right: -30px; } } .bg-faded { height: 170px; background-color: #FF519E; /* CHANGE TO DYNAMIC */ padding: 30px 45px; } .navbar-brand>span { color: white; /* CHANGE TO DYNAMIC */ font-weight: 600; } .nav-items { float: right; } @media only screen and (min-device-width: 0px) and (max-device-width: 480px) { li.custom-link, li.statuspage { display: none; } } .navbar-light .navbar-nav .nav-link { color: rgba(255, 255, 255, .7); /* CHANGE TO DYNAMIC */ transition: color 0.25s ease; } .navbar-light .navbar-nav .nav-link:hover { color: rgba(255, 255, 255); /* CHANGE TO DYNAMIC */ } .btn.btn-primary.btn-contact { background-color: white; border: none; color: #3E4856; /* CHANGE TO DYNAMIC */ box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16); top: 0px; transition: box-shadow 0.5s ease; } .btn.btn-primary.btn-contact:hover { box-shadow: 0 7px 20px 0 rgba(0, 0, 0, 0.10); } #lang-dropdown { text-transform: uppercase; background-color: white; color: #ff519e; /* CHANGE TO DYNAMIC */ padding: 0.3em 1em 0.3em 1em; border-radius: 4px; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16); transition: box-shadow 0.5s ease; } #lang-dropdown:hover { box-shadow: 0 7px 20px 0 rgba(0, 0, 0, 0.10); } #lang-dropdown:before { width: 20px; content: ""; background-image: url('https://files.helpdocs.io/C40DJRPqlj/articles/uTwGKeIXki/1526803942629/world-icon-svg'); /* CHANGE TO DYNAMIC */ background-repeat: none; height: 20px; margin: 0.2em 0.5em 0 0; float: left; } .dropdown-menu { box-shadow: 0 7px 20px 0 rgba(0, 0, 0, 0.10); border: none; } /* Search */ #instant-search input { margin-top: -2em; border-radius: 4px; padding: 1em; background-color: rgb(255, 255, 255); border: none; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.16); -webkit-appearance: none; width: 100%; display: block; transition-property: box-shadow; transition-duration: .5s; transition-timing-function: ease; font-size: 1.3rem; } #instant-search input::placeholder { color: #111; } #instant-search input:focus { box-shadow: 0 2px 30px 0 rgba(0, 0, 0, 0.20); -webkit-appearance: none; outline: none; caret-color: #FF519E; /* CHANGE TO DYNAMIC */ } #searchresults { margin-top: -0.2em; } #search-container .fa { float: right; margin-right: 1em; margin-top: -2em; font-size: 1.15em; position: relative; z-index: 2; color: grey; } #hits { background-color: white; padding: 0 1em; box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.16); border-radius: 0 0 4px 4px; } .search-article-title { font-size: 20px; color: #3E4856; /* CHANGE TO DYNAMIC */ } .search-article-link:hover { text-decoration: none; } .search-article-link:focus { text-decoration: none; } .search-article-description { color: #4D5A6D; line-height: 20px; font-size: 14px; } .search-article-row:last-of-type hr { display: none; } /* Content */ #content { max-width: 1500px; display: block; margin: 0 auto; padding: 4em 0 0 0; } /* Categories */ #categories { margin-top: 2em; } #breadcrumbs { font-size: 14px; } #breadcrumbs a { margin-left: 3px; margin-right: 3px; } #breadcrumbs a:first-of-type { margin-left: 0; } .category-icon { max-height: 70px; color: #4D5A6D; /* CHANGE TO DYNAMIC */ padding-bottom: 1.15em; } /* Category page */ #subcategories { margin: 0em -12em 2em -12em; background-color: rgba(0, 0, 0, 0.02); border-radius: 4px; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding: 1em 11em; } #subcategories .card { margin-bottom: 1em; } /* Article */ .full-article-card { border: 0px solid rgba(0, 0, 0, 0); border-radius: 4px; padding: 1.5em 2em; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); background-color: white; width: 100%; max-width: 1000px; margin: 0 auto; /* Center align the element horizontally */ } .full-article-author-meta { background-color: rgba(0, 0, 0, 0.02); padding: 1em 2em; margin: 2em -2em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); } .full-article-author-image { border-radius: 4px; max-height: 40px; display: inline-block; } #article .p:not(.meta), #article .card-block #htmlWithToc p:not(.meta) { font-size: 17px; } #article h3, h4, h5 { margin: 1.1em 0 0.5em 0; } #article table { margin: 2em -3em; display: block; overflow-x: auto; } #article thead { background-color: rgba(0, 0, 0, 0.03); border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); } #article th { padding: 1em; text-align: left; font-weight: 600; } #article tr:nth-child(even) { background-color: rgba(0, 0, 0, 0.02); } #article td { padding: 1em; border-right: 1px solid rgba(0, 0, 0, 0.06); font-size: 14px; min-width: 15em; } #article table>tbody>tr>td>pre { border-top: none; border-bottom: none; border-radius: 4px; margin: 0; padding: 1em; } #article ol { counter-reset: li; margin-left: 0; padding-left: 0; margin-top: 0; margin-bottom: 1rem; } #article ol>li { position: relative; margin: 0 0 6px 2em; padding: 0.3em 8px; list-style: none; } #article ol>li:before { /* color: #e80074; border-color: #ec0e79; background-color: #ffeaf4; */ color: #4D5A6D; border-color: #4D5A6D; background-color: #F6F7F9; content: counter(li); counter-increment: li; position: absolute; top: 0.1em; left: -2em; box-sizing: border-box; width: 1.5em; height: 1.5em; margin-right: 0.2em; margin-top: 0.4em; border-style: none; border-radius: 50%; line-height: 1.4em; text-align: center; } #article ol ol>li:before { content: counter(li, lower-latin); } #article ol ol ol>li:before { content: counter(li, lower-roman); } #article ul { list-style: none; padding: 0; font-size: 17px; margin: 1em 0; } #article ul>li { padding-left: 1em; text-indent: -.7em; } #article ul>li::before { content: "•"; padding-right: 0.25em; position: relative; top: 0.10em; font-size: 1.5em; /* color: #FF519E; */ color: #4D5A6D; } #article ul ul { margin: 0; } #article img { max-width: 100%; } #article pre { background-color: rgba(0, 0, 0, 0.03); padding: 2em 2em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); display: block; overflow-x: auto; } #article pre:before { content: attr(data-content); display: table; clear: both; text-transform: uppercase; font-size: 10px; padding-bottom: 1em; font-weight: 700; color: rgba(0, 0, 0, 0.20); } #article .tip-callout { background-color: #ddf5ff; margin: 2em 0; padding: 1em 1em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding-left: 3em; text-indent: -3em; } #article .tip-callout:before { content: '\f075'; margin-right: .75em; font-family: FontAwesome; color: white; padding: 0.5em; background-color: #36c6fe; border-radius: 4px; display: initial; margin-left: 0.3em; } #article .tip-callout a { color: #0a769e; font-weight: bold; text-decoration: none; text-indent: initial; } #article .tip-callout a:hover { cursor: pointer; } #article .note-callout { background-color: #fff5dd; margin: 2em 0; padding: 1em 1em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding-left: 3em; text-indent: -3em; } #article .note-callout:before { content: '\f05a'; margin-right: .75em; font-family: FontAwesome; color: white; padding: 0.5em; background-color: #ffbc00; border-radius: 4px; display: initial; margin-left: 0.3em; } #article .note-callout a { color: #c1961d; font-weight: bold; text-decoration: none; text-indent: initial; } #article .note-callout a:hover { cursor: pointer; text-decoration: underline; } #article .warning-callout { background-color: #ffd8d8; margin: 2em 0; padding: 1em 1em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); padding-left: 3em; text-indent: -3em; } #article .warning-callout:before { content: '\f071'; margin-right: .75em; font-family: FontAwesome; color: white; padding: 0.5em; background-color: #ff0000; border-radius: 4px; display: initial; margin-left: 0.3em; } #article .warning-callout a { color: #b51212; font-weight: bold; text-decoration: none; text-indent: initial; } #article .warning-callout a:hover { cursor: pointer; } #article .inline-code { color: #383a3c; } #article blockquote { background-color: rgba(0, 0, 0, 0.03); margin: 2em -3em; padding: 2em 3em; border-top: 1px solid rgba(0, 0, 0, 0.06); border-bottom: 1px solid rgba(0, 0, 0, 0.06); display: block; overflow-x: auto; font-style: italic; } #article a { color: #3E4856; font-weight: 600; } #article a:after { content: '\00a0 \f08e'; font-family: FontAwesome; font-size: .75em; } #article #feedback { background-color: rgba(0, 0, 0, 0.02); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; padding: 0em 1em 1em 1em; width: 100%; } #article a.lightbox:after, #breadcrumbs a:after { content: ''; } #article #feedback h3 { text-align: center; font-weight: 500; } #article #feedback .btn-group { width: 100%; } #article #feedback .btn-group .btn { width: 33%; opacity: 0.6; transition: opacity 0.5s ease; } #article #feedback .btn-group .btn:hover { opacity: 1; } #article #feedback .thanks { text-align: center; } #article #feedback i { display: block; } #article #related { text-align: center; background-color: rgba(0, 0, 0, 0.02); border-radius: 4px; border: 1px solid rgba(0, 0, 0, 0.06); padding: 0em 1em 1em 1em; } #article #related>ul { list-style: none; } #article #related>ul>li { padding-left: 0; } #article #related ul>li::before { display: none; } @media only screen and (min-width: 70em) #article #toc { position: fixed !important; width: 300px; top: 200px; left: 30px; max-height: 500px; overflow-y: scroll; } @media only screen and (min-width: 95em) { #article #toc { position: fixed !important; width: 300px !important; top: 200px !important; left: 30px !important; max-height: 500px !important; overflow-y: scroll !important; } } #article #toc { padding: 20px; margin-bottom: 1em; background-color: rgba(0, 0, 0, 0.03); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; } #article #toc .card.responsive-toc { padding: 20px; margin-bottom: 1em; background-color: rgba(0, 0, 0, 0.03); border: 1px solid rgba(0, 0, 0, 0.06); border-radius: 4px; } #article #toc::before { font-size: 20px; font-weight: 600; } #article #toc ul { margin: 0; } #article #toc>ul li { margin-top: 0; list-style: none; /* color: #FF519E; */ color: #4D5A6D; } /* Contact Form */ #contact-modal .modal-content { border: none; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); } #contact-modal .btn-primary { background-color: #182229; /* CHANGE TO DYNAMIC */ border: none; box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12); } #contact-modal ul.ticket-deflection-results { list-style: none; padding-left: 5px; text-transform: uppercase; font-size: 0.8em; } /* Krystal Overrides */ #article ol > li br { display: block; width: 10px; height: 1px; content: ' '; margin-top: 10px; } body { font-size: 1.1em } a, a:hover { transition: all .3s; } /*#content { max-width: 1200px; }*/ /*#main {border-bottom:50px solid #333} #main:after {content: "© Krystal Hosting Ltd 2003–2019";position: absolute;color: #fff;font-size: 15px;left: 40px;margin-top: 12px;}*/ #header { height: 240px; /* Old styles background: #3a50b3; background: -moz-linear-gradient(45deg, #3a50b3 0%, #7c1d83 99%); background: -webkit-linear-gradient(45deg, #3a50b3 0%, #7c1d83 99%); background: linear-gradient(45deg, #3a50b3 0%, #7c1d83 99%); filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3a50b3', endColorstr='#7c1d83', GradientType=1); */ background: #182229; position: relative; z-index: 10; } #header .nav-items { float: none; text-align: center; margin-top: 15px; font-size: 16px; } #header .navbar-nav .nav-item { float: none; display: inline } #header .navbar-nav .nav-item:last-child { display: none } .bg-faded { /* background-image: url(https://krystal.io/images/generic/tile_fragments_lg.png); */ background-color: transparent!important; height: 240px; } .logo { height: 335px; width: 41px; } .navbar-brand>span { display: none } .navbar-brand { float: none; display: block; margin: 0px auto 35px; background-image: url(https://cdn.krystal.io/img/helpdocs-logotype.svg); /* background-image: url(https://cdn.krystal.io/img/krystal_support_logo.svg); background-image: url(https://krystal.io/assets/images/support/logo_lrg_support.svg); */ max-width: 335px; height: 41px; background-repeat: no-repeat; transition: all .3s; } .navbar-brand:hover { opacity: .5; transition: all .3s; } .navbar-light .navbar-nav .nav-link { float: none; display: inline } .nav-link { background: rgba(0, 0, 0, .2); padding: 8px 15px; border-radius: 5px; color: #fff; font-size: 1.2rem; white-space: nowrap; } .nav-link:hover, .nav-link:focus { color: rgba(255, 255, 255); background: rgba(0, 0, 0, .5); transition: all .3s; } .navbar-light .navbar-nav .nav-link:focus, .navbar-light .navbar-nav .nav-link:hover { color: rgba(255, 255, 255); background: rgba(0, 0, 0, .5); transition: all .5s ease; } #instant-search input { border: 5px solid rgba(0, 0, 0, .05); border-radius: 50px; padding: 1em 1em 1em 2em; } #search-container .fa { margin-right: 1.4em; margin-top: -2.1em; } #hits { border-radius: 4px } .search-article { padding-top: 1em; } .search-article hr { margin-bottom: 0 } .card-link { transition: all .3s; } .card-link:hover { transition: all .3s; opacity: .5 } .card-block { padding: 1.5em; } .card-title { font-size: 22px; font-weight: 600; /* color: #5750A8; */ color: #182229; } #article a, .search-article-title { /* color: #5750A8; */ color: #182229; } body #footer>a { display: none!important } body { /* background-image: url("https://krystal.io/images/generic/tile_fragments_lg.png"); background-color: #fbfcfe; */ background-color: #F7F6F9; } b, strong { font-weight: 600; } .h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6, #article #feedback h3 { font-weight: 600; color: #182229; } .full-article-title { margin-bottom: 1em; } @media only screen and (max-width:768px) {} @media only screen and (max-width:576px) { .nav-link { padding: 5px 8px; font-size: 11px } .navbar-nav .nav-item+.nav-item { margin-left: 5px } .navbar-nav .nav-item+.nav-item:last-child { margin-left: 0 } } /*Lightbox CSS*/ .mfp-bg { z-index: 9999 !important; } .mfp-wrap { z-index: 10000 !important; } .lightbox:focus { outline: none !important; } html, body { height: 100% } footer { position: fixed; bottom: 0; left: 0; width: 100%; color: rgba(255, 255, 255, .5); padding: 10px 50px; background: rgba(0, 0, 0, .9); font-size: .8em; text-align: center; } #home .card-block .article-title-link:nth-child(n+6) { display: none; } .fa { font-size: 1rem; padding-right: 0.5rem; } .fa-circle { font-size: 0.8rem; } a.article-title-link { color: #444; } .small-capital-text a { /* color: #5750A8; */ color: #3E4856; } .category-label { display: inline-block; /* Keeps the box sized to the text */ background-color: #e0e0e0; /* Light grey background */ color: #333; /* Dark text color for contrast */ padding: 4px 8px; /* Space around the text */ border-radius: 4px; /* Rounded corners */ font-size: 0.9em; /* Slightly smaller font */ margin-top: 8px; /* Adds space above the label */ } #toc { margin-top: 2.25em; } #article div[*="callout"] a:hover { text-decoration: underline; !important } #article .card-block p:not(.meta), #article .card-block #htmlWithToc p:not(.meta), #article pre, #article td, #article ul { font-size: 1.1rem; } #article #feedback { min-height: max-content; } #article figure { margin: 2rem 0; } #article .full-article-author-meta a:after { content: ''; } #subcategory .card-block { min-height: 135px; } #article-card .card-block { display: flex; flex-direction: column; min-height: 250px; height: auto; } #search-container .fa { margin-right: 1em; margin-top: -2em; position: absolute; top: 30px; right: 20px; } footer { position: absolute; bottom: auto; } /* Columns Mobile responsive */ @media only screen and (max-width:840px) { .card-block { min-height: 465px; } #main { position: relative; } footer { position: absolute; bottom: 32px; } } @media only screen and (max-width:770px) { .card-block { min-height: 470px; } } @media only screen and (max-width:640px) { .card-block { min-height: 393px; } } @media only screen and (max-width:595px) { .card-block { min-height: 478px; } } @media only screen and (max-width:540px) { .card-block { min-height: 345px; } } table.doubleScroll-scroll-wrapper { margin:0 -3em !important; } /* Print CCS copied from Helpdiocs guide added by Mark West 200413 */ @media print { * { overflow: visible !important; } #content, #page { width: 100%; margin: 0; float: none; } @page { margin: 2cm } body { font: 13pt Georgia, "Times New Roman", Times, serif; line-height: 1.3; background: #fff !important; color: #000; } h1 { font-size: 24pt; } h2, h3, h4 { font-size: 14pt; margin-top: 25px; } a { page-break-inside:avoid } blockquote { page-break-inside: avoid; } h1, h2, h3, h4, h5, h6 { page-break-after:avoid; page-break-inside:avoid } img { page-break-inside:avoid; page-break-after:avoid; } table, pre { page-break-inside:avoid; } ul, ol, dl { page-break-before:avoid; } a:link, a:visited, a { background: transparent; color: #520; font-weight: bold; text-decoration: underline; text-align: left; } a { page-break-inside:avoid } a[href^=http]:after { content:" <" attr(href) "> "; } $a:after > img { content: ""; } article a[href^="#"]:after { content: ""; } a:not(:local-link):after { content:" <" attr(href) "> "; } #footer a:after { content: ""; } = .entry iframe, ins { display: none; width: 0 !important; height: 0 !important; overflow: hidden !important; line-height: 0pt !important; white-space: nowrap; } .embed-youtube, .embed-responsive { position: absolute; height: 0; overflow: hidden; } #header, #related, #feedback, #breadcrumbs, #disqus_thread, .hd-admin-bar, hr { display: none; } p, address, li, dt, dd, blockquote { font-size: 100% } code, pre { font-family: "Courier New", Courier, mono; } ul, ol { list-style: square; margin-left: 18pt; margin-bottom: 20pt; } li { line-height: 1.6em; } } </style> <meta property="hd-render" content="hbs"> </head> <body data-article-id="220o9ny7ar" data-category-id="ky96taii6d" data-search-term="undefined" data-original-search-term="undefined" data-search-result-count="undefined" data-language-code="" data-default-language-code="en" data-account-id="8nzbvyta9f" data-domain="help.krystal.io" data-home-path="/" data-search-placeholder="Help me with..." data-see-more-results-string="See more results" data-all-categories-string="All categories" data-category-title="Reseller Guides" data-no-articles-found-string="No articles found" > <div id="main" data-hd-template="customhbs"> <!--<div class="top-bar"> <div class="container"> <span class="top-bar-title">Sales:</span> 0208 050 1337 </div> </div>--> <div id="header"> <div class="container-fluid"> <nav class="navbar navbar-light bg-faded"> <a class="navbar-brand" href="/" aria-label="Back to home"> <span> <img class="img-responsive logo" src="https://files.helpdocs.io/8nzbvyta9f/logo.png?t=1669998786961"> Krystal Hosting </span> </a> <div class="spacer"></div> <div class="nav-items"> <ul class="nav navbar-nav"> <li class="nav-item custom-link"> <a class="nav-link" href="https://krystal.io/client/" target="_blank" rel="noopener"> Client Login </a> </li> <li class="nav-item custom-link"> <a class="nav-link" href="https://krystal.io/contact" target="_blank" rel="noopener"> Contact Us </a> </li> <li class="nav-item custom-link"> <a class="nav-link" href="https://krystal.io/" target="_blank" rel="noopener"> Back to Krystal </a> </li> <li class="nav-item"> <a id="contact-modal-trigger" class="btn btn-primary btn-contact nav-link" href="#" data-toggle="modal" data-target="#contact-modal" data-popup-trigger="contact-modal" >Contact</a> </li> </ul> </div> </nav> </div> <div id="search-container" class="container-fluid search-responsive"> <div class="row"> <div class="col-xs-12 col-md-6 offset-md-3"> <div id="instant-search"> <form action="/search" method="GET"> <input id="hd-query" name="query" placeholder="Help me with..." aria-label="Help me with"> </form> </div> <span class="fa fa-search"></span> </div> </div> </div> <div id="searchresults" class="container-fluid"> <div id="articles" class="row"> <div class="col-xs-12 col-md-6 offset-md-3 col-lg-6 offset-lg-3"> <div id="hits"></div> </div> </div> </div> </div> <div class="container-fluid"> <div id="content"> <style> #toc::before { content: 'Table of Contents' !important; } </style> <div id="article"> <div id="meta" class="row"> <div class="col-xs-12 col-md-10 offset-md-1 col-lg-10 offset-lg-1"> <p id="breadcrumbs" class="small-capital-text"> <a href="/"> All Categories </a> > <a href="/reseller-guides" aria-label="Reseller Guides"> <span property="name">​Reseller Guides</span> </a> </li> > Managing WHM Packages </p> </div> </div> <div id="body" class="row"> <div class="col-xs-12 col-md-10 offset-md-1 col-lg-10 offset-lg-1"> <div class="full-article-card"> <div class="card-block"> <h1 class="full-article-title">Managing WHM Packages</h1> <p class="meta small-capital-text full-article-author-meta author-text"> <img class="img-fluid full-article-author-image" src="https://www.gravatar.com/avatar/c7d18870382596718fcad368bbae3ecd?d=mm&s=150"> <span class="text-muted"> Updated 1 year ago by Ben Oates </span> </p> <p>WebHost Manager (WHM) is the central control panel from which you manage your reseller hosting services with us.</p><p>WHM allows you to manage your client cPanel accounts and control all elements of your hosting service. Your WHM login details are issued in your Welcome e-mail when your new reseller account is setup.</p><p>After you’ve <a href="/article/9wamws5txa-creating-a-whm-feature-list">created any feature lists</a> you require, the second step in setting up your new hosting service is to create a package. A package is a list of permissions and resources that your clients can have access to once they order your hosting services.</p><p>You can set-up as many packages as you like. These can also be edited at a later stage if you decide to change your service offering.</p><h3 id="creating_a_package">Creating a Package</h3><p><strong>WHM >> Packages >> Add a Package</strong></p><ol><li>In WHM, under the Packages section, click Add a Package</li><li>You will see a new screen which initially asks for a Package Name. You can name your packages anything you like, for example if you have three levels of hosting with different limits you might name them bronze, silver and gold.<figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/220o9ny7ar/1654691896998/whm-package-manager-image-1.png"/></figure></li><li>Next, you can define a list of resources to suit the package you are offering.<br/>You must set a limit for disk space and bandwidth - see details below for over-selling and explanation of the plan limits.</li><li>Select the feature list you've previously configured, and assign this to your respective package. This will only permit access to those features you had enabled specifically in your chosen feature list.</li><li>For the purpose of this example, all other selections should remain as default.</li></ol><h3 id="editing_or_deleting_a_package">Editing or deleting a package</h3><p><strong>WHM >> Packages >> Edit a Package</strong></p><p>Select the package and click <strong>Edit</strong>.</p><p><strong>WHM >> Packages >> Delete a Package</strong></p><p>Select the package and click <strong>Delete</strong> - the package will be deleted, there is no confirmation.</p><h3 id="creating_an_ssh_package_for_resellers_to_allow_secure_shell_access">Creating an SSH Package for Resellers to allow Secure Shell access</h3><p>It may be that you'd like to offer SSH (Secure Shell) access to some of your clients.</p><p>We now provide the functionality to enable you to create accounts within WHM with SSH access enabled for your customers, to save you time when creating accounts for customers who may require it!</p><div class="note-callout">Prior to creating WHM packages with SSH enabled you will need to enable it for your reseller hosting package. We have a separate guide detailing <a href="/cpanel-advanced-topics/how-do-i-get-ssh-secure-shell-access">how to enable SSH on your hosting package</a>.</div><p>We'd suggest handling this on an individual basis by creating additional matching WHM packages with the <strong>Shell Access</strong> option ticked.</p><p>So, for example, if you have three packages - Bronze, Silver and Gold. You would replicate them exactly to three new packages - Bronze-SSH, Silver-SSH and Gold-SSH. And in these new packages, you would ensure the <strong>Shell Access</strong> option is ticked.</p><figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/220o9ny7ar/1654691925696/whm-package-manager-image-2.png"/></figure><p>You would then simply change the package applied to an individual client to the SSH version to permit access - by following the instructions in the following section.</p><h3 id="modifying_a_client_s_package">Modifying a client's Package</h3><p><strong>WHM >> Multi-Account Functions >> Modify/Upgrade Multiple Accounts</strong></p><figure><img src="https://files.helpdocs.io/8nzbvyta9f/articles/220o9ny7ar/1654691936793/whm-package-manager-image-3.png"/></figure><p>Select the account(s) for which you'd like to change the package - you can see the accounts current package detailed in the Package column.</p><p>Select the package you'd like to change them to from the drop-down.</p><p>Click the <strong>Change</strong> button.</p><div class="note-callout">It's also possible to change just one account from <strong>Account Functions >> Upgrade/Downgrade an Account</strong> - but using this option doesn't show the existing package assigned to an account in the initial list.</div><h3 id="over_selling">Over-selling</h3><p>Your reseller plan will have a disk limit defined by the plan you're on. Your bandwidth is technically unlimited (More information on this below!).</p><p>For example, on a Unity reseller plan, you are assigned 25Gb of disk space and 25 cPanel accounts. So you could create a 1Gb package and assign this to 25 resellers (or 24 if you are using one of the accounts) and under these circumstances, you'd be unlikely to have any issues - other than individual clients hitting their 1Gb limit.</p><p>However, you could create a package with a 10Gb limit - and assign it to those same 25 cPanel accounts. Now you've effectively assigned 250Gb of space - but your plan has a 25Gb limit. In this situation, if your clients tried to use more than 25Gb in total you'd be over you plan limit and that would impact all clients. You would need to clear some space or upgrade to a hosting plan with a higher disk allowance.</p><h5 id="bandwidth_limits_explained">Bandwidth Limits Explained</h5><p>cPanel requires that a bandwidth limit be set when any other resource is limited. As we limit resellers by disk space, cPanel also requires a bandwidth limit to be set.</p><p>If you wish to offer your clients 'unlimited' bandwidth (as we offer you) then simply set their bandwidth limit to a very high number e.g. 999999999</p> </div> <hr/> <div id="feedback" class="card-block" data-thanks="Got it!"> <h3>How did we do?</h3> <div class="btn-group" role='group' aria-label='Feedback'> <button class="feedback-positive btn btn-link" type='button'> <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg"> <g fill="none" fill-rule="evenodd"> <circle fill="#FFDF86" cx="25" cy="25" r="25"/> <path d="M13.6 18.8a79.3 79.3 0 0 1-6.3-7.3 5.4 5.4 0 0 1 .6-7.6 4 4 0 0 1 4.4-.4c.9.5 1.4 1.2 1.8 2 .2.3.6.3.8 0 .4-.9 1-1.6 2-2a4 4 0 0 1 3.7 0c2.8 1.7 3.1 5.8 1 8a83.7 83.7 0 0 1-6.1 7.3c-.6.5-1.4.5-2 0zm21 .6c-2.5-2.7-4.5-5-6.3-7.6a5.8 5.8 0 0 1 .6-7.9c1.3-1 3-1.2 4.4-.3.9.4 1.4 1.1 1.8 2 .2.3.6.3.8 0 .4-1 1-1.7 2-2.1 1.2-.7 2.6-.7 3.7 0 2.8 1.7 3.1 6 1 8.4a86 86 0 0 1-6.1 7.5c-.6.6-1.4.6-2 0z" fill="#F71272"/> <path d="M10 28c0-1.6 5.9 4.7 15 4.7S40 26 40 28s-5.3 14.8-15 14.8S10 29.6 10 28z" fill="#866B21"/> </g> </svg> </button> <button class="feedback-neutral btn btn-link" type='button'> <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg"> <g fill="none" fill-rule="evenodd"> <circle fill="#FFDF86" cx="25" cy="25" r="25"/> <path d="M16.6 20.7c2.5 0 4.6-3.5 4.6-6 0-2.6-2-5.7-4.6-5.7-2.5 0-4.6 3.1-4.6 5.7 0 2.5 2 6 4.6 6zm17 0c2.5 0 4.6-3.5 4.6-6 0-2.6-2-5.7-4.6-5.7-2.5 0-4.6 3.1-4.6 5.7 0 2.5 2 6 4.6 6z" fill="#866B21"/> <path d="M13.7 35.9h24" stroke="#866B21" stroke-width="4" stroke-linecap="round"/> </g> </svg> </button> <button class="feedback-negative btn btn-link" type='button'> <svg width="50" height="50" xmlns="http://www.w3.org/2000/svg"> <g fill="none" fill-rule="evenodd"> <circle fill="#FFDF86" cx="25" cy="25" r="25"/> <path d="M17.7 27.4c3-.8 6.1-4.3 5.3-7.3-.8-3-1.5 1.3-6.5 2.7-5 1.3-8-2-7.2 1 .8 3 5.4 4.4 8.4 3.6zM25 35c-3.1 0-7 2.5-7 5.6 0 3 1.8-.8 7-.8s7.2 3.9 7.2.8c0-3-4.1-5.6-7.2-5.6zm7.8-7.6c-3-.8-6.2-4.3-5.4-7.3.8-3 1.6 1.3 6.6 2.7 5 1.3 8-2 7.2 1-.8 3-5.5 4.4-8.4 3.6z" fill="#866B21"/> </g> </svg> </button> </div> </div> <hr/> <div id="related" class="card-block"> <h3>Related Articles</h3> <ul> <li> <a href="/reseller-guides/managing-whm-feature-lists">Managing WHM Feature Lists</a> </li> <li> <a href="/whmcs/connecting-whmcs-to-whm-for-c-panel-provisioning-and-management">Connecting WHMCS to WHM for cPanel provisioning and management</a> </li> <li> <a href="/reseller-guides/reseller-hosting-start-here">Reseller Hosting - Start Here</a> </li> </ul> </div> </div> </div> </div> </div> <script> (function() { $(function() { $('#article pre').each(function(i, el) { $el = $(el); $el.html($el.html().replace(/\n\s{10}/gi, '\n')); }); }); })(); </script> <div style="position: relative !important; bottom: 0 !important; text-align: center !important; margin: 2em !important; padding: initial !important; padding-bottom: 2em !important; display: block !important; visibility: visible !important;"> <a href="https://www.helpdocs.io?ref=hd" target="_blank" title="Powered by HelpDocs" style="display: initial !important; visibility: visible !important; position: initial !important; margin: 0 !important; padding: 0 !important; color: #ccc !important; text-decoration: none !important;" > <img src="https://cdn.helpdocs.io/img/logo_grey.png?v=1732636207" alt="Powered by HelpDocs" style="height: 2em !important; width: 2em !important; display: initial !important; visibility: visible !important; position: initial !important; margin: 0 !important; padding: 0 !important;" /> <span style="position: absolute;width: 1px;clip: rect(0 0 0 0);overflow: hidden;white-space: nowrap;">(opens in a new tab)</span> </a> </div> <script> window.hd_util_params = { disable_legacy_search_timers: true, search_article_template: ` <div class="row search-article-row"> <div class="col-xs"> <div id="search-article" class="search-article"> <a class="search-article-link" data-article-id="\{\{article_id\}\}" href="\{\{relative_url\}\}"> <h3 class="search-article-title">\{\{title\}\}</h3> <p class="category-title">\{\{category_title\}\}</p> <p class="search-article-description">\{\{description\}\}</p> </a> <hr> </div> </div> </div> ` }; </script> <footer>© Krystal Hosting Ltd 2002–<script>document.write(new Date().getFullYear())</script></footer> <script> (function() { $(function() { setTimeout(function() { $('pre').each(function(i, el) { $(el).attr('data-content', ($(el).attr('class') || '').replace('hljs ', '')); }); }, 1000); }); })(); </script> <div id="contact-modal" class="modal fade"> <div class="modal-dialog" role='document'> <div class="modal-content"> <div class="modal-header"> <button class="close" type='button' data-dismiss='modal' aria-label='Close'> <span aria-hidden='true'>×</span> </button> <h4 class="modal-title">Contact</h4> </div> <div class="modal-body"> <form id="contact-form" action="/contact" method="POST" data-article-id="220o9ny7ar" data-category-id="ky96taii6d" data-search-term="" > <fieldset class="form-group"> <input id="name" class="form-control" type="text" placeholder="Jane Doe"> </fieldset> <fieldset class="form-group"> <input id="email" class="form-control" type="email" placeholder="my.email@example.com"> </fieldset> <fieldset class="form-group"> <textarea id="question" class="form-control" type="text" placeholder="Help Me With..." rows="5"></textarea> </fieldset> <input id="noop" type="text" name="noop" style="display: none !important"> </form> <button id="contact-form-submit" class="btn btn-primary btn-block" type='button'>Send</button> </div> </div> </div> </div> </div> </div> </div> <script src="https://cdn.helpdocs.io/js/js.cookie.min.js?v=1732636207"></script> <script src="https://cdn.helpdocs.io/js/highlight.min.js?v=1732636207"></script> <!-- Doorbell --> <script type="text/javascript"> (function() { function ready(fn) { if (document.readyState != 'loading'){ fn(); } else if (document.addEventListener) { document.addEventListener('DOMContentLoaded', fn); } else { document.attachEvent('onreadystatechange', function() { if (document.readyState != 'loading') fn(); }); } } ready(function() { var fb = document.querySelector("#feedback"); if (fb) { fb.insertAdjacentHTML('afterend', '<div id="doorbell-custom-inline" style="display: none"></div>'); } var doorbellInline = document.querySelector("#doorbell-custom-inline"); function showFeedback() { doorbell.show(); doorbellInline.style.display = ''; } function hideFeedback() { setTimeout(function() { doorbell.hide(); doorbellInline.style.display = 'none'; doorbellInline.parentNode.removeChild(doorbellInline); }, 1); } function init(count) { // Wait until required libs are loaded if (!count) count = 1; if (count > 10) return; if (!window.HDAnalytics) return setTimeout(function() { init(count+1) }, 500); // Overwrite feedback function to call doorbell var orig = HDAnalytics.leaveFeedback; HDAnalytics.leaveFeedback = function(sentiment) { if (["neutral", "negative"].indexOf(sentiment) > -1) showFeedback(); return orig(sentiment); } } window.doorbellOptions = { id: '10177', appKey: 'MA1nqqnj2jl16QewOyXSpdxGigHrnYT8GAtDcFPvdwYAsCwM0kvbz17kYdQ9sUEg', container: document.getElementById('doorbell-custom-inline'), tags: [ "helpdocs", "helpdocs-article-feedback", "helpdocs-article-feedback:article-220o9ny7ar", ], properties: { "HelpDocs Article ID": "220o9ny7ar", "HelpDocs Edit URL": window.location.protocol + "//" + window.location.hostname + "/app/content/article/220o9ny7ar", }, onSuccess: function() { hideFeedback(); }, }; (function(w, d, t) { var hasLoaded = false; function l() { if (hasLoaded) { return; } hasLoaded = true; window.doorbellOptions.windowLoaded = true; var g = d.createElement(t);g.id = 'doorbellScript';g.type = 'text/javascript';g.async = true;g.src = 'https://embed.doorbell.io/button/'+window.doorbellOptions['id']+'?t='+(new Date().getTime());(d.getElementsByTagName('head')[0]||d.getElementsByTagName('body')[0]).appendChild(g); } if (w.attachEvent) { w.attachEvent('onload', l); } else if (w.addEventListener) { w.addEventListener('load', l, false); } else { l(); } if (d.readyState == 'complete') { l(); } }(window, document, 'script')); init(); }) })(); </script> <script src="https://cdn.helpdocs.io/js/libs/hdanalytics.js?v=1732636207" type="text/javascript"></script> <script src="https://cdn.helpdocs.io/js/libs/instantsearch.js?v=1732636207" type="text/javascript"></script> <script src="https://cdn.helpdocs.io/js/libs/hdthemeutils.js?v=1732636207" type="text/javascript"></script> <script> // ** Resize videos ** (function() { function ready(fn) { if (document.readyState != 'loading'){ fn(); } else if (document.addEventListener) { document.addEventListener('DOMContentLoaded', fn); } else { document.attachEvent('onreadystatechange', function() { if (document.readyState != 'loading') fn(); }); } } ready(function () { var allVideos = document.querySelectorAll('iframe[src*="//www.youtube.com"], iframe[src*="//player.vimeo.com"], .hd--embed iframe, .hd--embed span[id^="vidyard_span_"]'); if (allVideos.length < 1) return; var isBackup = false; var fluidEl = document.querySelector('#article .card-block'); // Might be V4+ style of template if (!fluidEl) fluidEl = document.querySelector('#articleBody'); if (!fluidEl) { isBackup = true; fluidEl = document.querySelector('#article #body'); } Array.prototype.forEach.call(allVideos, function(video) { window.addEventListener('resize', function() { // Only set aspect ratio on resize of window video.setAttribute('aspectratio', (video.height / video.width) || 0.5625); if (video.getAttribute('aspectratio')) { video.removeAttribute('width'); video.removeAttribute('height'); } var newWidth = fluidEl.offsetWidth - (isBackup ? 200 : 0); if (!newWidth) return; Array.prototype.forEach.call(allVideos, function(video) { var ar = video.getAttribute('aspectratio'); video.setAttribute('width', newWidth); video.setAttribute('height', newWidth * ar); }); }); }); }); })(); </script> </body> </html>