{"id":3352,"date":"2026-10-07T15:03:23","date_gmt":"2026-10-07T13:03:23","guid":{"rendered":"https:\/\/www.panelalpha.com\/blog\/?p=3352"},"modified":"2026-10-07T16:57:19","modified_gmt":"2026-10-07T14:57:19","slug":"panelalpha-engine-2-1-1","status":"publish","type":"post","link":"https:\/\/www.panelalpha.com\/blog\/panelalpha-engine-2-1-1\/","title":{"rendered":"PanelAlpha Engine 2.1.1: From smoother redeploys to stronger daily operation"},"content":{"rendered":"<p style=\"margin-top:28px;margin-bottom:24px;text-align:justify;\">Making the new generation of <a href=\"https:\/\/engine.panelalpha.com\" target=\"_blank\" rel=\"noopener\"><strong style=\"color:#f26a2a;text-decoration:underline;text-decoration-color:#f26a2a;\">PanelAlpha Engine<\/strong><\/a> more reliable and secure for production use is one of our highest priorities right now. At the same time, we are working toward full compatibility between Engine and our Control Panel. These two efforts are closely connected: Engine has to be dependable enough to run real projects day after day, and the Control Panel has to be ready to build on that foundation.<\/p>\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"597\" src=\"https:\/\/www.panelalpha.com\/blog\/wp-content\/uploads\/2026\/10\/PanelAlpha-Engine-2.1.1-Release-1024x597.png\" alt=\"PanelAlpha Engine 2.1.1 Release\" class=\"wp-image-3353\" srcset=\"https:\/\/www.panelalpha.com\/blog\/wp-content\/uploads\/2026\/10\/PanelAlpha-Engine-2.1.1-Release-1024x597.png 1024w, https:\/\/www.panelalpha.com\/blog\/wp-content\/uploads\/2026\/10\/PanelAlpha-Engine-2.1.1-Release-300x175.png 300w, https:\/\/www.panelalpha.com\/blog\/wp-content\/uploads\/2026\/10\/PanelAlpha-Engine-2.1.1-Release-768x448.png 768w, https:\/\/www.panelalpha.com\/blog\/wp-content\/uploads\/2026\/10\/PanelAlpha-Engine-2.1.1-Release.png 1200w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n<p style=\"text-align:justify;margin-bottom:28px;\">After <a href=\"https:\/\/www.panelalpha.com\/blog\/panelalpha-engine-2-1-0\/\" target=\"_blank\" rel=\"noopener\"><span style=\"color:inherit;text-decoration:underline;text-decoration-color:inherit;\">2.1.0 release<\/span><\/a> made it possible to go from a fresh VPS to a hosted application in one command, <strong>PanelAlpha Engine 2.1.1<\/strong> focuses much more on what happens after the first deploy: how safely you can redeploy, how strongly projects are isolated, and how reliably the server handles everyday operation.<\/p>\n<div style=\"margin:0 0 52px 0;padding:22px 26px;background:#f7f7f6;border-left:4px solid #f26a2a;\">\n<p style=\"margin:0;text-align:justify;color:inherit;\"><strong>Already using PanelAlpha together with Engine?<\/strong> Please stay on your current Engine version for now. Full Control Panel compatibility with the 2.0 generation is still in progress, and getting it ready is the next major milestone on our list.<\/p>\n<\/div>\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#171a1a;margin-top:0;margin-bottom:30px;font-size:40px;font-weight:650;letter-spacing:-0.035em;line-height:1.12;\">What 2.1.1 changes in practice<\/h2>\n\n\n<p style=\"margin-bottom:34px;text-align:justify;\">This release touches several different parts of Engine, but they all move in the same direction. The goal is to make production use safer, give projects clearer boundaries and reduce how much manual work is still needed once the app is running.<\/p>\n<div style=\"margin:16px 0 56px 16px;padding-left:38px;border-left:2px solid #f26a2a;\">\n<div style=\"position:relative;margin-bottom:44px;\">\n<div style=\"position:absolute;left:-54px;top:0;width:30px;height:30px;border-radius:50%;background:#f26a2a;color:#ffffff;font-size:12px;font-weight:700;line-height:30px;text-align:center;\">01<\/div>\n<h3 style=\"margin:0 0 12px 0;font-size:24px;font-weight:650;line-height:1.25;letter-spacing:-0.02em;\">Move traffic only when the new version is ready<\/h3>\n<p style=\"margin:0;text-align:justify;color:inherit;\">For eligible projects, Engine now starts the new version beside the one that is already running and checks it before moving the site over. If the new version never becomes healthy, the previous version keeps serving. Rebuilds can also run as background tasks, conflicting deploys are refused, and important operations such as project deletion are blocked while a deploy, backup or restore is still running. The result is a much safer path from one version of an application to the next.<\/p>\n<\/div>\n<div style=\"position:relative;margin-bottom:44px;\">\n<div style=\"position:absolute;left:-54px;top:0;width:30px;height:30px;border-radius:50%;background:#f26a2a;color:#ffffff;font-size:12px;font-weight:700;line-height:30px;text-align:center;\">02<\/div>\n<h3 style=\"margin:0 0 12px 0;font-size:24px;font-weight:650;line-height:1.25;letter-spacing:-0.02em;\">Projects stay in their own lane<\/h3>\n<p style=\"margin:0;text-align:justify;color:inherit;\">Projects can still reach the internet and the shared services they need, but direct access to other projects, the Engine API and private addresses is blocked. Project proxy rules are limited to the project&#8217;s own application and domains, while repository Compose files and access to the shared image cache are checked more strictly. A project gets what it needs to run without getting an easy path into parts of the server it should not reach.<\/p>\n<\/div>\n<div style=\"position:relative;margin-bottom:44px;\">\n<div style=\"position:absolute;left:-54px;top:0;width:30px;height:30px;border-radius:50%;background:#f26a2a;color:#ffffff;font-size:12px;font-weight:700;line-height:30px;text-align:center;\">03<\/div>\n<h3 style=\"margin:0 0 12px 0;font-size:24px;font-weight:650;line-height:1.25;letter-spacing:-0.02em;\">Better protection around the server itself<\/h3>\n<p style=\"margin:0;text-align:justify;color:inherit;\">ufw now replaces CSF, while fail2ban watches SSH, SFTP, FTP and the Engine API for repeated failed logins. Existing CSF allow and deny rules are carried over during the update, so moving to the new setup does not mean rebuilding them from scratch. Custom ModSecurity rules also go through checks before they replace the live set, helping prevent a bad rule from weakening protection or blocking normal traffic.<\/p>\n<\/div>\n<div style=\"position:relative;margin-bottom:44px;\">\n<div style=\"position:absolute;left:-54px;top:0;width:30px;height:30px;border-radius:50%;background:#f26a2a;color:#ffffff;font-size:12px;font-weight:700;line-height:30px;text-align:center;\">04<\/div>\n<h3 style=\"margin:0 0 12px 0;font-size:24px;font-weight:650;line-height:1.25;letter-spacing:-0.02em;\">Catch problems before they become bigger ones<\/h3>\n<p style=\"margin:0;text-align:justify;color:inherit;\">A new disk guard checks the host regularly, keeps build cache under control and starts cleaning when free space gets too low. During a deploy, Engine watches storage more closely and stops before the project passes its disk limit or the server runs out of the space it needs. Engine also warns when stored secrets can no longer be decrypted, while update checks now confirm that Engine services actually started and have a working network before reporting success.<\/p>\n<\/div>\n<div style=\"position:relative;margin-bottom:0;\">\n<div style=\"position:absolute;left:-54px;top:0;width:30px;height:30px;border-radius:50%;background:#f26a2a;color:#ffffff;font-size:12px;font-weight:700;line-height:30px;text-align:center;\">05<\/div>\n<h3 style=\"margin:0 0 12px 0;font-size:24px;font-weight:650;line-height:1.25;letter-spacing:-0.02em;\">More real-world applications fit the normal flow<\/h3>\n<p style=\"margin:0 0 14px 0;text-align:justify;color:inherit;\">Procfile workers can now run beside the main application, release commands can run before a new version starts, and persistent paths can keep uploads or SQLite data across rebuilds and redeploys. Engine can also create read-only SSH deploy keys for private repositories, while private registry credentials are available only for the time a deploy needs them.<\/p>\n<p style=\"margin:0;text-align:justify;color:inherit;\">Automatic stack detection has also grown to cover more Go, Java, Rails, Rust, Angular, Yarn PnP, SvelteKit, .NET and Quarkus setups, with new recipes for Overleaf, DOMjudge, Anubis, Pomerium and Memos. This allows more projects to follow the standard Engine flow without extra manual setup.<\/p>\n<\/div>\n<\/div>\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#171a1a;margin-top:68px;margin-bottom:30px;font-size:40px;font-weight:650;letter-spacing:-0.035em;line-height:1.12;\">More of the everyday details covered<\/h2>\n\n\n<p style=\"text-align:justify;\">The update also brings a longer list of smaller improvements that make Engine easier to inspect and more dependable in everyday use. Container logs can now return more history, be filtered by time and followed live through the API. Engine can check the SPF, DKIM, DMARC and MX records needed for server mail, while visitor statistics can break traffic down by HTTP status code.<\/p>\n<p style=\"text-align:justify;margin-bottom:52px;\">The runtime gets broader support too. PHP services are supervised and can restart when they exit, gzip and Brotli are enabled for sites, and Engine handles more gRPC, TCP\/UDP, large-header and streamed-response cases correctly.<\/p>\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\" style=\"margin-top:52px;margin-bottom:56px;\"><div class=\"wp-block-group__inner-container\"><div style=\"position:relative;max-width:600px;margin:0 auto;padding-top:24px;padding-right:28px;\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/fa7c0c8e9f8c4372dfd5af6a22ebe640486d90e4abaa25360d6b7aed775d2b2d?s=128&#038;d=mm&#038;r=g\" alt=\"Joanna Byjo&#347; - PanelAlpha Marketing Team Leader\" width=\"100\" height=\"100\" style=\"position:absolute;top:0;right:0;z-index:2;width:100px;height:100px;border-radius:50%;object-fit:cover;border:4px solid #ffffff;box-shadow:0 6px 18px rgba(23,26,26,0.10);\" \/><div style=\"position:relative;background:#f6f7f6;border:1px solid #e9ecea;border-radius:16px;padding:32px 58px 28px 30px;box-shadow:0 10px 28px rgba(23,26,26,0.05);\"><h3 style=\"color:#171a1a;margin:0 0 10px 0;font-size:23px;font-weight:650;line-height:1.25;letter-spacing:-0.015em;\">Want to support what we&#8217;re building?<\/h3><p style=\"color:#414646;margin:0 0 22px 0;font-size:16px;line-height:1.65;\">GitHub is where the work behind each release happens in the open, and <strong>leaving a <strong style=\"color:#daaa3f;\">&#9733;<\/strong> goes a long way<\/strong> in helping more people to discover the project too<\/strong>. You can also open an issue, share a use case or jump into the code. We&#8217;d love to have you there!<\/p><a href=\"https:\/\/github.com\/panelalpha\/panelalpha-engine\" target=\"_blank\" rel=\"noopener\" style=\"display:inline-block;background:#171a1a;color:#ffffff;text-decoration:none;font-size:15px;font-weight:600;line-height:1;border-radius:10px;padding:13px 19px;\">Follow Engine on GitHub<\/a><\/div><\/div><\/div><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-color\" style=\"color:#171a1a;margin-top:68px;margin-bottom:30px;font-size:40px;font-weight:650;letter-spacing:-0.035em;line-height:1.12;\">Still heading the same way<\/h2>\n\n\n<p style=\"text-align:justify;\">We want each release to remove more of the server work you still have to handle yourself. Sometimes that means a new feature, sometimes stronger safeguards, and sometimes simply making everyday tasks easier to trust.<\/p>\n<p style=\"text-align:justify;\">We are going to keep releasing improvements this way: regularly, as soon as useful changes are ready, and with the same goal in front of us. We want PanelAlpha Engine to become <strong>the easiest way to host projects on your own server<\/strong>. The next step is already in motion. Let&#8217;s keep building!<\/p>\n<p style=\"text-align:center;\"><a style=\"display:inline-block;margin:10px 0px 20px;text-decoration:none;\" href=\"https:\/\/engine.panelalpha.com\/changelog\" target=\"_blank\" rel=\"noopener\"><span style=\"-webkit-border-radius:8px;-moz-border-radius:8px;border-radius:8px;background-color:#f26a2a;text-align:center;padding:20px 23px;display:block;font-size:20px;color:#fff;font-weight:bold;\">View full changelog<\/span><\/a><\/p>","protected":false},"excerpt":{"rendered":"<p>Making the new generation of PanelAlpha Engine more reliable and secure for production use is one of our highest priorities right now. At the same time, we are working toward full compatibility between Engine and our Control Panel. These two efforts are closely connected: Engine has to be dependable enough to run real projects day [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":3353,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts\/3352"}],"collection":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/comments?post=3352"}],"version-history":[{"count":25,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts\/3352\/revisions"}],"predecessor-version":[{"id":3378,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/posts\/3352\/revisions\/3378"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/media\/3353"}],"wp:attachment":[{"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/media?parent=3352"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/categories?post=3352"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.panelalpha.com\/blog\/wp-json\/wp\/v2\/tags?post=3352"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}