{"id":31,"date":"2026-09-27T17:51:17","date_gmt":"2026-09-27T17:51:17","guid":{"rendered":"https:\/\/www.webdeckpanel.co.uk\/blog\/?p=31"},"modified":"2026-09-27T17:51:17","modified_gmt":"2026-09-27T17:51:17","slug":"webdeck-2-2-8-stable-available-now","status":"publish","type":"post","link":"https:\/\/www.webdeckpanel.co.uk\/blog\/2026\/09\/27\/webdeck-2-2-8-stable-available-now\/","title":{"rendered":"Webdeck 2.2.8 Stable Available now!!"},"content":{"rendered":"\n<!-- WebDeck blog \u2014 WebDeck 2.2.8 release post.\n     Paste into your editor's HTML\/code view. No classes or inline styles, so it\n     inherits your site's typography. Feature image: feature-webdeck-2.2.8.png -->\n\n<p><strong>WebDeck 2.2.8 is out.<\/strong> This release brings a new interface template, point-in-time backups you can restore a single file from, and a clearer way to set your backup schedule.<\/p>\n\n<h2>A new look, if you want one<\/h2>\n\n<p>WebDeck now ships two interface templates, and you choose which one your accounts see.<\/p>\n\n<ul>\n  <li><strong>v1 \u2014 Classic.<\/strong> Exactly what you have today. Nothing changes.<\/li>\n  <li><strong>v2 \u2014 Modern.<\/strong> A redesigned interface: softer surfaces, rounded cards, cleaner typography and a reworked sidebar.<\/li>\n<\/ul>\n\n<p>Both work in light and dark, and both carry your branding. Your logo, panel name and accent colour flow through the whole interface \u2014 in v2 that includes the highlights, gradients and focus states, so a custom accent looks intentional rather than bolted on.<\/p>\n\n<p>You&#8217;ll find it in <strong>Branding \u2192 Interface template<\/strong>. It previews live as you click, applies to accounts beneath you, and you can switch back at any time.<\/p>\n\n<h2>Backups you can pick apart<\/h2>\n\n<p>Until now, restoring meant restoring a whole site. That&#8217;s the right tool when a server dies, and the wrong one when a customer overwrites a single config file.<\/p>\n\n<p>2.2.8 adds <strong>incremental snapshots<\/strong> alongside your existing archives. Each snapshot is complete and restorable on its own, but only stores what changed since the last one \u2014 so they&#8217;re small and quick to upload, even nightly.<\/p>\n\n<p>From any snapshot you can:<\/p>\n\n<ul>\n  <li><strong>Browse it like a file manager.<\/strong> Open folders, drill in, filter by name. Folders load one level at a time, so a large site opens immediately rather than listing every file first.<\/li>\n  <li><strong>Restore individual files or whole folders<\/strong> straight back into place, leaving everything else untouched.<\/li>\n  <li><strong>Restore a single database<\/strong> from that day.<\/li>\n<\/ul>\n\n<h2>A schedule that reads like a schedule<\/h2>\n\n<p>Backup settings now live in one place \u2014 <strong>Settings \u2192 Backups<\/strong> \u2014 and are described in plain terms:<\/p>\n\n<ul>\n  <li><strong>Full backup:<\/strong> every day, or once a week on a day you pick. A full backup is a complete <code>.tar.gz<\/code> of the site, readable anywhere with plain tar.<\/li>\n  <li><strong>Incremental snapshots:<\/strong> off, or every night, keeping the last 7 to 90 days.<\/li>\n<\/ul>\n\n<p>The combination most people want is a <strong>full backup weekly, snapshots nightly<\/strong>. You keep a complete portable archive, plus the ability to recover one file from any day, without pushing the whole site to off-site storage every night.<\/p>\n\n<p>Snapshots are off by default. Your existing backups carry on unchanged until you turn them on.<\/p>\n\n<h2>Hide your web server&#8217;s version<\/h2>\n\n<p>By default, Apache and nginx announce their exact version in every HTTP response and on error pages. That hands anyone scanning your server a list of vulnerabilities to try.<\/p>\n\n<p>There&#8217;s now a switch for it in <strong>Settings \u2192 Server identity<\/strong>. The server still identifies itself by name \u2014 neither Apache nor nginx will drop the header entirely without extra modules \u2014 but the version disappears, and the version is the part that matters for targeting. We&#8217;d recommend turning it on.<\/p>\n\n<h2>Fixes<\/h2>\n\n<ul>\n  <li>Fixed the <strong>Restore<\/strong> button on the account Backups page, which could fail on some backups.<\/li>\n  <li>Fixed a case where the Settings page could appear blank after an update.<\/li>\n  <li>The panel no longer serves a stale page after an upgrade, so a forced browser refresh is no longer needed.<\/li>\n  <li>Licence responses from the update server are now cryptographically signed and verified by the panel.<\/li>\n  <li>Cleared a recurring harmless warning in the system log.<\/li>\n<\/ul>\n\n<h2>Upgrading<\/h2>\n\n<p>Standard upgrade \u2014 nothing to do by hand, and the installer is unchanged. If you&#8217;re coming from a version earlier than 2.2.7, read the 2.2.7 and 2.2.6 notes too; they include a couple of post-upgrade steps.<\/p>\n\n<p>Two things worth knowing before you enable snapshots:<\/p>\n\n<ul>\n  <li>They need <strong>restic<\/strong> installed on the server. If it isn&#8217;t, the option will tell you.<\/li>\n  <li>A snapshot covers a site&#8217;s files and its first database. Sites with several databases stay fully covered by the regular archive backups.<\/li>\n<\/ul>\n\n<p>And the advice we&#8217;d give about any backup feature, including ours: <strong>do a test restore of a single file<\/strong> on a site you control, before you need it in a hurry.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>WebDeck 2.2.8 is out. This release brings a new interface template, point-in-time backups you can restore a single file from, and a clearer way to set your backup schedule. A\u2026<\/p>\n","protected":false},"author":1,"featured_media":32,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-31","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\/31","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=31"}],"version-history":[{"count":1,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/posts\/31\/revisions"}],"predecessor-version":[{"id":33,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/posts\/31\/revisions\/33"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/media\/32"}],"wp:attachment":[{"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/media?parent=31"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/categories?post=31"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.webdeckpanel.co.uk\/blog\/wp-json\/wp\/v2\/tags?post=31"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}