{"id":22,"date":"2026-07-13T16:46:38","date_gmt":"2026-07-13T16:46:38","guid":{"rendered":"https:\/\/www.webdeckpanel.co.uk\/blog\/?p=22"},"modified":"2026-07-13T16:46:38","modified_gmt":"2026-07-13T16:46:38","slug":"webdeck-2-0-stable-now-available","status":"publish","type":"post","link":"https:\/\/www.webdeckpanel.co.uk\/blog\/2026\/07\/13\/webdeck-2-0-stable-now-available\/","title":{"rendered":"WebDeck 2.0 Stable &#8211; Now Available!"},"content":{"rendered":"\n<!-- WebDeck 2.0.0 release announcement \u2014 blog post.\n     Paste into a Custom HTML block. Theme-adaptive (uses currentColor), no\n     hardcoded colours. Replace any [SCREENSHOT] with an Image block. -->\n\n<style>\n.wdg{--soft:color-mix(in srgb,currentColor 6%,transparent);--line:color-mix(in srgb,currentColor 16%,transparent)}\n.wdg .lead{font-size:1.2em;line-height:1.55;opacity:.85;margin:0 0 1.4em}\n.wdg .chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0 0 1.8em}\n.wdg .chips li{border:1px solid var(--line);border-radius:100px;padding:5px 14px;font-size:.85em;font-weight:600}\n.wdg .feat{border:1px solid var(--line);background:var(--soft);border-radius:12px;padding:18px 20px;margin:1.2em 0}\n.wdg .feat h3{margin:0 0 .5em}\n.wdg .feat p:last-child{margin-bottom:0}\n.wdg .tick{list-style:none;padding:0;margin:1em 0}\n.wdg .tick li{padding:8px 0 8px 28px;position:relative;border-bottom:1px solid var(--line)}\n.wdg .tick li:before{content:\"\u2713\";position:absolute;left:0;top:8px;font-weight:800}\n.wdg .note{border-left:3px solid currentColor;background:var(--soft);border-radius:0 8px 8px 0;padding:14px 18px;margin:1.2em 0;font-size:.96em}\n.wdg .cta{border:1px solid var(--line);border-radius:12px;padding:26px;text-align:center;margin-top:2em}\n.wdg .cta h2{margin-top:0}\n<\/style>\n\n<div class=\"wdg\">\n\n  <p class=\"lead\">WebDeck 2.0.0 is here \u2014 and it&#8217;s the biggest release we&#8217;ve\n  shipped. Per-account isolation, in-panel service logs, a stack of\n  cross-platform reliability fixes, and security hardening throughout. Tested on\n  Debian, Ubuntu, Rocky and AlmaLinux. Still free.<\/p>\n\n  <ul class=\"chips\">\n    <li>\ud83d\udd12 Account isolation<\/li>\n    <li>\ud83d\udccb Service logs<\/li>\n    <li>\ud83d\udee1 Security hardening<\/li>\n    <li>\ud83d\udc27 4 distros<\/li>\n  <\/ul>\n\n  <h2>The headline: Account Isolation<\/h2>\n\n  <p>This is the big one. Every new SFTP\/SSH account created in WebDeck is now\n  <strong>automatically isolated<\/strong> \u2014 confined to its own website&#8217;s files,\n  unable to see other customers on the server. No configuration, no toggle to\n  remember; it&#8217;s on by default.<\/p>\n\n  <div class=\"feat\">\n    <h3>What isolation gives you<\/h3>\n    <ul class=\"tick\">\n      <li>Accounts confined to their own site&#8217;s files \u2014 can&#8217;t read other tenants&#8217;<\/li>\n      <li>Resource limits, so one customer can&#8217;t exhaust the server&#8217;s CPU, memory or processes<\/li>\n      <li>An optional process cage (bubblewrap) that also hides other tenants&#8217; processes, where the kernel supports it<\/li>\n      <li>A server-wide <strong>Isolation page<\/strong> showing every account&#8217;s status, with one-click controls<\/li>\n      <li>Self-healing \u2014 if a mount or config is ever lost, the panel repairs it, and shows you on the dashboard<\/li>\n    <\/ul>\n  <\/div>\n\n  <!-- [SCREENSHOT 1] The Isolation page -->\n\n  <div class=\"note\"><strong>The honest bit:<\/strong> this isn&#8217;t a full replacement\n  for CloudLinux&#8217;s CageFS, and we won&#8217;t pretend it is. But it covers what actually\n  matters for most shared hosting \u2014 tenants can&#8217;t snoop on each other&#8217;s files or\n  hog the box \u2014 and it&#8217;s included, not a paid add-on. More on that in a separate\n  post.<\/div>\n\n  <h2>See what&#8217;s happening: service logs in the panel<\/h2>\n\n  <p>No more SSH-and-grep. The Logs page now shows <strong>live logs for Apache,\n  MariaDB, PHP, mail, DNS and FTP<\/strong>, straight from the browser. There&#8217;s\n  also a self-heal activity feed on the Server dashboard, so you can see exactly\n  what the panel repaired and when.<\/p>\n\n  <!-- [SCREENSHOT 2] The service logs page -->\n\n  <h2>Rock-solid across distros<\/h2>\n\n  <p>A big chunk of 2.0.0 was hunting down and fixing the differences between\n  Debian-family and RHEL-family systems so everything behaves the same\n  everywhere:<\/p>\n\n  <ul class=\"tick\">\n    <li>Websites now configure correctly on Rocky and AlmaLinux<\/li>\n    <li>PowerDNS starts reliably on SELinux-enforcing systems<\/li>\n    <li>PHP version selection only offers versions actually installed, and switches instantly<\/li>\n    <li>ionCube Loader installs correctly on all supported distributions<\/li>\n    <li>The installer retries transient mirror failures instead of giving up, and sets up the FTP server and isolation tools for you<\/li>\n  <\/ul>\n\n  <h2>Security hardening<\/h2>\n\n  <ul class=\"tick\">\n    <li>Every server is guaranteed a strong, unique signing key \u2014 the panel will never run with an insecure default<\/li>\n    <li>Rate-limiting on login, credential and expensive operations, without getting in the way of normal use<\/li>\n    <li>Safer installs \u2014 no piping remote scripts straight to the shell; downloads are verified before they run<\/li>\n    <li>Defense-in-depth validation on account names and isolation paths<\/li>\n  <\/ul>\n\n  <h2>Everyday improvements<\/h2>\n\n  <ul class=\"tick\">\n    <li>Clear login errors (&#8220;incorrect username or password&#8221;, not a confusing &#8220;session expired&#8221;)<\/li>\n    <li>No forced password change right after you set your admin password<\/li>\n    <li>Longer sessions \u2014 no getting logged out mid-task<\/li>\n    <li>SFTP\/FTP now home to the domain folder, so users can keep private files outside their web root<\/li>\n    <li>PHP module toggles that respond instantly, and follow the selected PHP version<\/li>\n  <\/ul>\n\n  <h2>Upgrading<\/h2>\n\n  <p>Existing installs update in place from the panel \u2014 your websites, accounts\n  and settings are untouched. Isolation applies to <strong>new<\/strong> accounts\n  going forward; existing accounts can be isolated individually whenever you\n  choose. The updater backs up first and rolls back automatically if the new\n  version won&#8217;t start, so upgrading is safe.<\/p>\n\n  <p><strong>Supported systems:<\/strong> Debian, Ubuntu, Rocky Linux, AlmaLinux.<\/p>\n\n  <div class=\"cta\">\n    <h2>Get WebDeck 2.0.0<\/h2>\n    <p>A free hosting control panel with per-account isolation, one-click apps,\n    free SSL and a built-in WordPress manager.<\/p>\n    <p><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/www.webdeckpanel.co.uk\/\">Download WebDeck free<\/a><\/p>\n  <\/div>\n\n<\/div>\n\n\n<!-- ===== SEO structured data \u2014 keep at the bottom ===== -->\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"SoftwareApplication\",\n  \"name\": \"WebDeck\",\n  \"applicationCategory\": \"Hosting Control Panel\",\n  \"operatingSystem\": \"Debian, Ubuntu, Rocky Linux, AlmaLinux\",\n  \"softwareVersion\": \"2.0.0\",\n  \"offers\": { \"@type\": \"Offer\", \"price\": \"0\", \"priceCurrency\": \"GBP\" },\n  \"featureList\": [\n    \"Per-account isolation with resource limits\",\n    \"In-panel service logs\",\n    \"One-click applications\",\n    \"Free SSL\",\n    \"Built-in WordPress manager\",\n    \"cPanel account importer\"\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>WebDeck 2.0.0 is here \u2014 and it&#8217;s the biggest release we&#8217;ve shipped. Per-account isolation, in-panel service logs, a stack of cross-platform reliability fixes, and security hardening throughout. Tested on Debian,\u2026<\/p>\n","protected":false},"author":1,"featured_media":23,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-22","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/posts\/22","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":1,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":24,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/posts\/22\/revisions\/24"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/media\/23"}],"wp:attachment":[{"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}