Website: add Linux management page (#40869)

Closes: https://github.com/fleetdm/confidential/issues/13312

Changes:
- Added /linux-management
- Updated the "Solutions" dropdown in the website's header navigation to
link to the new page.

---------

Co-authored-by: Ashish Kuthiala <53918208+akuthiala@users.noreply.github.com>
This commit is contained in:
Eric
2026-03-03 12:17:37 -06:00
committed by GitHub
co-authored by Ashish Kuthiala
parent 68617804b2
commit c6468b598d
10 changed files with 1268 additions and 93 deletions
@@ -0,0 +1,63 @@
module.exports = {
friendlyName: 'View linux management',
description: 'Display "Linux management" page.',
exits: {
success: {
viewTemplatePath: 'pages/landing-pages/linux-management'
},
badConfig: { responseType: 'badConfig' },
},
fn: async function () {
if (!_.isObject(sails.config.builtStaticContent) || !_.isArray(sails.config.builtStaticContent.testimonials) || !sails.config.builtStaticContent.compiledPagePartialsAppPath) {
throw {badConfig: 'builtStaticContent.testimonials'};
}
// Get testimonials for the <scrolalble-tweets> component.
let testimonialsForScrollableTweets = _.clone(sails.config.builtStaticContent.testimonials);
// Specify an order for the testimonials on this page using the last names of quote authors
let testimonialOrderForThisPage = [
'Erik Gomez',
'Nick Fohs',
'Dan Grzelak',
'matt carr',
'Justin LaBo',
'Bart Reardon',
'Dan Jackson',
'David Bodmer',
'Fiona Skelton',
'Roger Cantrell',
'u/Heteronymous',
];
// Filter the testimonials by product category
testimonialsForScrollableTweets = _.filter(testimonialsForScrollableTweets, (testimonial)=>{
return _.contains(testimonial.productCategories, 'Device management');
});
testimonialsForScrollableTweets.sort((a, b)=>{
if(testimonialOrderForThisPage.indexOf(a.quoteAuthorName) === -1){
return 1;
} else if(testimonialOrderForThisPage.indexOf(b.quoteAuthorName) === -1) {
return -1;
}
return testimonialOrderForThisPage.indexOf(a.quoteAuthorName) - testimonialOrderForThisPage.indexOf(b.quoteAuthorName);
});
// Respond with view.
return {
testimonialsForScrollableTweets
};
}
};
Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

@@ -0,0 +1,30 @@
parasails.registerPage('linux-management', {
// ╦╔╗╔╦╔╦╗╦╔═╗╦ ╔═╗╔╦╗╔═╗╔╦╗╔═╗
// ║║║║║ ║ ║╠═╣║ ╚═╗ ║ ╠═╣ ║ ║╣
// ╩╝╚╝╩ ╩ ╩╩ ╩╩═╝ ╚═╝ ╩ ╩ ╩ ╩ ╚═╝
data: {
modal: '',
},
// ╦ ╦╔═╗╔═╗╔═╗╦ ╦╔═╗╦ ╔═╗
// ║ ║╠╣ ║╣ ║ ╚╦╝║ ║ ║╣
// ╩═╝╩╚ ╚═╝╚═╝ ╩ ╚═╝╩═╝╚═╝
beforeMount: function() {
//…
},
mounted: async function() {
//…
},
// ╦╔╗╔╔╦╗╔═╗╦═╗╔═╗╔═╗╔╦╗╦╔═╗╔╗╔╔═╗
// ║║║║ ║ ║╣ ╠╦╝╠═╣║ ║ ║║ ║║║║╚═╗
// ╩╝╚╝ ╩ ╚═╝╩╚═╩ ╩╚═╝ ╩ ╩╚═╝╝╚╝╚═╝
methods: {
clickOpenVideoModal: function(modalName) {
this.modal = modalName;
},
closeModal: function() {
this.modal = undefined;
},
}
});
+1
View File
@@ -103,3 +103,4 @@
@import 'pages/landing-pages/deployment.less';
@import 'pages/fleet-gitops.less';
@import 'pages/admin/reset-trial.less';
@import 'pages/landing-pages/linux-management.less';
+16 -9
View File
@@ -594,11 +594,24 @@ html, body {
margin-right: 16px;
}
[purpose='header-dropdown'] {
&.solutions-dropdown {
left: -10px;
&.solutions-dropdown.show {
left: -90px;
width: 704px;
display: inline-grid;
padding: 8px;
row-gap: 8px;
column-gap: 8px;
grid-template-rows: repeat(4,fit-content(100%));
grid-template-columns: repeat(2,fit-content(100%));
[purpose='dropdown-item'] {
// width: 340px;
height: 100%;
justify-content: center;
white-space: normal;
}
}
&.more-dropdown {
left: -358px;
left: -439px;
flex-direction: row;
}
&.customers-dropdown {
@@ -638,12 +651,6 @@ html, body {
padding: 8px;
white-space: nowrap;
}
[purpose='dropdown-column'] {
display: flex;
flex-direction: column;
justify-content: center;
gap: 4px;
}
[purpose='dropdown-cta'] {
margin-right: 8px;
display: block;
@@ -0,0 +1,892 @@
#linux-management {
@heading-lineheight: 120%;
@text-lineheight: 150%;
p {
margin-bottom: 0px;
}
[purpose='landing-page-container'] {
padding-left: 64px;
padding-right: 64px;
}
[purpose='landing-page-content'] {
max-width: 1072px;
min-width: 0px;
display: flex;
flex-direction: column;
gap: 160px;
margin: auto;
}
[purpose='landing-page-hero'] {
padding-top: 64px;
// padding-bottom: 80px;
display: flex;
align-items: center;
align-content: center;
justify-content: center;
gap: 48px 16px;
align-self: stretch;
}
[purpose='page-hero-content'] {
display: flex;
flex-direction: column;
gap: 32px;
max-width: 700px;
text-align: center;
}
[purpose='page-hero-headings'], {
h4 {
color: #515774;
font-feature-settings: 'salt' on, 'ss01' on, 'ss02' on;
font-family: 'Roboto Mono';
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: @text-lineheight;
text-transform: uppercase;
margin-bottom: 0px;
}
h1 {
color: #192147;
text-align: center;
font-family: Inter;
font-size: 48px;
font-style: normal;
font-weight: 800;
line-height: 120%;
}
}
[purpose='page-hero-text'] {
p {
color: #515774;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 150%;
}
}
[purpose='video-button'] {
display: flex;
flex-direction: row;
align-items: center;
cursor: pointer;
color: #192147;
img {
height: 32px;
margin-right: 8px;
}
span {
margin-left: 4px;
display: inline-block;
color: #8B8FA2;
font-size: 12px;
margin-top: 2px;
font-weight: 400;
}
}
[purpose='landing-page-section'] {// For landing page sections.
display: flex;
// width: 1200px;
// max-width: 1200px;
// padding-top: 80px;
// padding-bottom: 80px;
flex-direction: column;
align-items: flex-start;
gap: 48px;
}
[purpose='landing-page-large-section'] {// For sections with more padding (64px) between elements.
display: flex;
// padding-top: 64px;
// padding-bottom: 64px;
flex-direction: column;
align-items: flex-start;
gap: 64px;
}
[purpose='section-heading'] {
display: flex;
flex-direction: column;
// align-items: flex-start;
gap: 16px;
max-width: 800px;
align-self: center;
text-align: center;
h2 {
color: #192147;
font-size: 32px;
font-style: normal;
font-weight: 800;
line-height: 120%;
margin-bottom: 0px;
}
h3 {
color: #192147;
font-size: 32px;
font-style: normal;
font-weight: 800;
line-height: 120%;
margin-bottom: 0px;
}
h4 {
color: #515774;
font-feature-settings: 'salt' on, 'ss01' on, 'ss02' on;
font-family: 'Roboto Mono';
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 150%;
text-transform: uppercase;
}
p {
color: #515774;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 150%;
margin-bottom: 0px;
// max-width: 800px;
}
}
[purpose='three-column-list'] {
display: flex;
align-items: flex-start;
flex-direction: row;
align-content: flex-start;
gap: 64px 32px;
align-self: stretch;
flex-wrap: wrap;
[purpose='feature'] {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
align-self: stretch;
min-width: 288px;
max-width: 336px;
flex: 1 0 0;
[purpose='feature-headline'] {
color: #192147;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: 120%;
}
[purpose='feature-text'] {
color: #515774;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 150%;
}
}
}
[purpose='checklist'] {
padding: 8px 0px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 24px;
align-self: stretch;
p {
font-size: 14px;
font-style: normal;
font-weight: 400;
padding-left: 37px;
text-indent: -37px;
margin-bottom: 0px;
}
p::before {
content: ' ';
background-image: url('/images/icon-checkmark-green-20x20@2x.png');
background-size: 20px 20px;
display: inline-block;
position: relative;
top: 5px;
margin-right: 16px;
width: 20px;
height: 20px;
}
}
[purpose='button-row'] {
display: flex;
flex-direction: row;
gap: 24px;
}
[ purpose='cta-button'] {
display: flex;
height: 36px;
min-width: 140px;
padding: 8px 16px;
justify-content: center;
align-items: center;
border-radius: 8px;
background: #009A7D;
color: #FFF;
text-align: center;
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: 150%;
&:hover {
color: #FFF;
}
gap: 4px;
}
[purpose='section-image'] {
background: #FFF;
// padding: 33px;
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
width: 100%;
img {
max-width: 797px;
width: 100%;
height: auto;
}
}
[purpose='two-column-list'] {
display: flex;
flex-direction: row;
justify-content: center;
gap: 64px;
[purpose='column-list'] {
max-width: 50%;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 32px;
flex: 1 0 0;
h3 {
color: #192147;
font-family: Inter;
font-size: 24px;
font-style: normal;
font-weight: 800;
line-height: 120%;
margin-bottom: 0px;
}
}
}
[purpose='four-column-feature-row'] {
display: flex;
flex-direction: row;
display: flex;
align-items: flex-start;
align-content: flex-start;
gap: 64px 32px;
align-self: stretch;
flex-wrap: wrap;
[purpose='feature-item'] {
display: flex;
flex-direction: column;
align-items: flex-start;
flex: 1 0 0;
width: 25%;
h5 {
color: #192147;
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: 120%;
margin-bottom: 16px;
}
p {
color: #515774;
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px;
}
}
}
[purpose='feature-with-image'] {
gap: 48px 64px;
h3 {
font-size: 24px;
font-weight: 800;
line-height: @heading-lineheight;
margin-bottom: 32px;
}
}
[purpose='feature-image'] {
max-width: 528px;
img {
max-width: 100%;
max-height: 100%;
width: 528px;
}
}
[purpose='feature-text'] {
width: 468px;
gap: 32px;
h3 {
margin-bottom: 0px;
color: #192147;
font-family: Inter;
font-size: 24px;
font-style: normal;
font-weight: 800;
line-height: 120%;
}
p {
color: #515774;
font-family: Inter;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 150%;
}
}
[purpose='feature-footnote'] {
max-width: 480px;
font-size: 12px;
padding-top: 80px;
line-height: 1.5;
}
[purpose='feature-link'] {
padding-top: 32px;
}
[purpose='section-quote'] {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 24px;
align-self: center;
max-width: 600px;
[purpose='quote-text'] {
color: #515774;
text-align: center;
font-family: Inter;
font-size: 22px;
font-style: italic;
font-weight: 400;
line-height: 150%;
}
[purpose='quote-attribution'] {
color: #515774;
font-family: Inter;
font-size: 12px;
font-style: normal;
font-weight: 400;
line-height: 150%;
}
[purpose='quote-author-info'] {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 4px;
align-self: center;
}
[purpose='quote-author-image'] {
img {
height: 48px;
}
}
[purpose='author-name'] {
color: #192147;
text-align: center;
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 700;
line-height: 150%;
}
[purpose='author-title'] {
color: #515774;
text-align: center;
font-family: Inter;
font-size: 14px;
font-style: normal;
font-weight: 400;
line-height: 20px;
}
}
[purpose='feature-row'] {
display: flex;
align-items: flex-start;
align-content: flex-start;
gap: 64px 32px;
align-self: stretch;
flex-wrap: wrap;
[purpose='feature-item'] {
display: flex;
flex-direction: column;
align-items: flex-start;
flex: 1 0 30%;
h5 {
font-weight: 800;
font-size: 16px;
line-height: 1.2;
margin-bottom: 16px;
}
p {
font-size: 14px;
font-weight: 400;
line-height: 21px;
}
}
}
[purpose='tweets-container'] {
padding-top: 160px;
max-width: 1072px;
padding-left: 64px;
padding-right: 64px;
}
[parasails-component='scrollable-tweets'] {
[purpose='tweets'] {
margin-top: 40px;
margin-bottom: 0px;
padding-bottom: 128px;
padding-left: 64px;
}
[purpose='tweet-card'] {
[purpose='quote'] {
margin-bottom: 24px;
}
}
}
[purpose='bottom-gradient'] {
background: linear-gradient(180deg, #FFFFFF 0%, #E9F4F4 100%);
}
[purpose='bottom-cloud-city-banner'] {
background: linear-gradient(180deg, #E9F4F4 0%, #FFFFFF 100%);
img {
width: 100%;
}
}
[purpose='bottom-cta'] {
text-align: center;
h1 {
color: #192147;
text-align: center;
font-family: Inter;
font-size: 32px;
font-style: normal;
font-weight: 800;
line-height: 120%;
}
h4 {
color: #515774;
font-feature-settings: 'salt' on, 'ss01' on, 'ss02' on;
font-family: 'Roboto Mono';
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 150%;
text-transform: uppercase;
margin-bottom: 0px;
}
[purpose='button-row'] {
margin-top: 40px;
[purpose='contact-button'] {
padding: 16px 32px;
text-decoration: none;
}
}
}
[purpose='video-modal'] {
[purpose='modal-dialog'] {
width: 100%;
max-width: 100%;
}
[purpose='modal-content'] {
max-width: 1140px;
height: 641px;
background-color: transparent;
box-shadow: none;
border: none;
padding: 0px;
margin-top: 150px;
margin-left: auto;
margin-right: auto;
[purpose='modal-close-button'] {
top: -40px;
right: 0px;
border-radius: 50%;
width: 32px;
height: 32px;
padding: 0px 0px 4px 0px;
background-color: #192147;
color: #FFF;
opacity: 1;
}
}
iframe {
border-radius: 16px;
width: 1140px;
height: 641px;
}
}
@media (max-width: 1200px) {
[purpose='video-modal'] {
[purpose='modal-dialog'] {
width: 100%;
max-width: 100%;
}
[purpose='modal-content'] {
max-width: 960px;
height: 540px;
}
iframe {
width: 960px;
height: 540px;
}
}
[purpose='landing-page-content'] {
gap: 120px;
}
[purpose='tweets-container'] {
padding-top: 120px;
}
[purpose='section-heading'] {
h3 {
font-size: 24px;
}
}
}
@media (max-width: 991px) {
[purpose='landing-page-container'] {
padding-left: 48px;
padding-right: 48px;
}
[purpose='landing-page-content'] {
gap: 80px;
}
[purpose='landing-page-hero'] {
padding-top: 48px;
padding-bottom: 40px;
display: flex;
align-items: center;
align-content: center;
gap: 48px 16px;
align-self: stretch;
flex-wrap: nowrap;
}
[purpose='tweets-container'] {
padding-top: 80px;
}
[parasails-component='scrollable-tweets'] {
[purpose='tweets'] {
padding-bottom: 96px;
}
}
[purpose='four-column-feature-row'] {
display: flex;
align-items: flex-start;
align-content: flex-start;
gap: 48px 32px;
align-self: stretch;
flex-wrap: wrap;
[purpose='feature-item'] {
flex: 1 0 45%;
}
}
[purpose='feature-row'] {
display: flex;
align-items: flex-start;
align-content: flex-start;
gap: 48px 32px;
align-self: stretch;
flex-wrap: wrap;
[purpose='feature-item'] {
display: flex;
max-width: unset;
min-width: unset;
flex-direction: column;
align-items: flex-start;
flex: 1 0 40%;
}
}
[purpose='video-modal'] {
[purpose='modal-dialog'] {
width: 100%;
max-width: 100%;
}
[purpose='modal-content'] {
max-width: 720px;
height: 405px;
}
iframe {
width: 720px;
height: 405px;
}
}
}
@media (max-width: 768px) {
[purpose='landing-page-container'] {
padding-left: 32px;
padding-right: 32px;
}
[purpose='landing-page-hero'] {
padding-top: 32px;
padding-bottom: 32px;
flex-direction: column;
flex-wrap: nowrap;
}
[purpose='page-hero-content'] {
max-width: 100%;
}
[purpose='feature-text'] {
width: 510px;
margin-left: auto;
margin-right: auto;
}
[purpose='feature-with-image'].flex-column {
[purpose='feature-text'] {
width: 100%;
margin-left: 0px;
margin-right: 0px;
}
}
[purpose='feature-with-image'].flex-column-reverse {
[purpose='feature-text'] {
width: 100%;
margin-left: 0px;
margin-right: 0px;
}
}
[purpose='feature-text'] {
width: 100%;
margin-left: auto;
margin-right: auto;
}
[purpose='feature-image'] {
img {
max-width: 100%;
}
}
[purpose='three-column-list'] {
display: flex;
align-items: flex-start;
flex-direction: column;
align-content: flex-start;
gap: 64px 32px;
align-self: stretch;
flex-wrap: wrap;
[purpose='feature'] {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
align-self: stretch;
max-width: 100%;
min-width: unset;
flex: 1 0 0;
[purpose='feature-headline'] {
color: #192147;
font-size: 16px;
font-style: normal;
font-weight: 700;
line-height: 120%;
}
[purpose='feature-text'] {
color: #515774;
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 150%;
}
}
}
[parasails-component='scrollable-tweets'] {
[purpose='tweets'] {
padding-bottom: 64px;
}
}
[purpose='feature-row'] {
display: flex;
align-items: flex-start;
align-content: flex-start;
gap: 32px 32px;
align-self: stretch;
flex-wrap: wrap;
[purpose='feature-item'] {
display: flex;
max-width: unset;
min-width: unset;
flex-direction: column;
align-items: flex-start;
flex: 1 0 40%;
}
}
[purpose='two-column-list'] {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 64px;
[purpose='column-list'] {
width: 100%;
max-width: unset;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 32px;
flex: 1 0 0;
}
}
[purpose='video-modal'] {
[purpose='modal-dialog'] {
max-width: 97vw;
}
[purpose='modal-content'] {
max-width: 540px;
height: 304px;
}
iframe {
width: 540px;
height: 304px;
}
}
}
@media (max-width: 575px) {
[purpose='landing-page-container'] {
padding-left: 24px;
padding-right: 24px;
}
[parasails-component='scrollable-tweets'] {
[purpose='tweets'] {
padding-left: 24px;
}
}
[purpose='video-modal'] {
[purpose='modal-content'] {
width: 95vw;
height: calc(~'9/16 * 95vw');
}
iframe {
width: 95vw;
height: calc(~'9/16 * 95vw');
}
}
[purpose='page-hero-headings'] {
h4 {
font-size: 16px;
}
h1 {
font-size: 32px;
}
}
[purpose='button-row'] {
display: flex;
flex-direction: column;
align-items: center;
gap: 16px;
[purpose='cta-button'] {
width: 100%;
}
}
[purpose='page-hero-headings'] {
h1 {
font-size: 32px;
}
}
[purpose='section-heading'] {
h2 {
font-size: 24px;
}
}
[purpose='feature-row'] {
[purpose='feature-item'] {
display: flex;
max-width: unset;
min-width: unset;
flex-direction: column;
align-items: flex-start;
flex: 1 0 80%;
}
}
}
@media (max-width: 375px) {
[purpose='tweets-container'] {
padding-left: 16px;
padding-right: 16px;
}
[parasails-component='scrollable-tweets'] {
[purpose='tweets'] {
margin-top: 32px;
margin-bottom: 0px;
padding-left: 16px;
padding-bottom: 32px;
}
}
}
}
+11 -1
View File
@@ -590,7 +590,17 @@ module.exports.routes = {
action: 'landing-pages/view-deployment',
locals: {
pageTitleForMeta: 'Deploy Fleet anywhere',
pageDescriptionForMeta: ' Run Fleet on-premise, in your private cloud (AWS, Azure, GCP), or air-gapped environments. Or let us handle it with Fleet Cloud. The only MDM with zero infrastructure lock-in.',
pageDescriptionForMeta: 'Run Fleet on-premise, in your private cloud (AWS, Azure, GCP), or air-gapped environments. Or let us handle it with Fleet Cloud. The only MDM with zero infrastructure lock-in.',
currentSection: 'platform'
}
},
'GET /linux-management': {
action: 'landing-pages/view-linux-management',
locals: {
pageTitleForMeta: 'Linux device management',
pageDescriptionForMeta: 'Manage Linux devices with full visibility and control. Automate patching, monitor compliance, and unify Linux, macOS, and Windows in one place.',
currentSection: 'platform',
}
},
+117 -83
View File
@@ -215,6 +215,21 @@
</div>
</div>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="linux-management" href="/linux-management">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-linux-management-40x40@2x.png" alt="Linux management">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Linux device management
</p>
<p purpose="nav-item-body">
Manage Linux devices with full visibility and control.
</p>
</div>
</div>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="Fleet GitOps" href="/fleet-gitops">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
@@ -406,97 +421,115 @@
<a purpose="header-nav-btn" class="dropdown-toggle align-items-center <%= typeof currentSection !== 'undefined' && currentSection === 'platform' ? 'current-section' : '' %>">
Solutions <img purpose="chevron" src="/images/icon-chevron-fleet-black-50-12x12@2x.png" alt="A small chevron">
</a>
<div purpose="header-dropdown" class="dropdown-menu solutions-dropdown">
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="device-management" href="/device-management">
<div purpose="header-dropdown" class="dropdown-menu solutions-dropdown flex-row">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-device-management-40x40@2x.png" alt="Device management">
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="device-management" href="/device-management">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-device-management-40x40@2x.png" alt="Device management">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Device management</p>
<p purpose="nav-item-body">
Remotely manage, and protect laptops and mobile devices.
</p>
</div>
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Device management</p>
<p purpose="nav-item-body">
Remotely manage, and protect laptops and mobile devices.
</p>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="Fleet GitOps" href="/fleet-gitops">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-gitops-40x40@2x.png" alt="GitOps">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Infrastructure as code
</p>
<p purpose="nav-item-body">
See every change, undo any error, repeat every success.
</p>
</div>
</div>
</div>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="orchestration" href="/orchestration">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-orchestration-40x40@2x.png" alt="Orchestration">
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="orchestration" href="/orchestration">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-orchestration-40x40@2x.png" alt="Orchestration">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Orchestration
</p>
<p purpose="nav-item-body">
Automate tasks across devices, from app installs to scripts.
</p>
</div>
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Orchestration
</p>
<p purpose="nav-item-body">
Automate tasks across devices, from app installs to scripts.
</p>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="Deployment" href="/deployment">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-deployment-40x40@2x.png" alt="Deployment">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Deployment
</p>
<p purpose="nav-item-body">
Run Fleet the way that fits your team.
</p>
</div>
</div>
</div>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="software-management" href="/software-management">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-software-40x40@2x.png" alt="Software management">
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="software-management" href="/software-management">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-software-40x40@2x.png" alt="Software management">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Software management
</p>
<p purpose="nav-item-body">
Inventory, patch, and manage installed software.
</p>
</div>
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Software management
</p>
<p purpose="nav-item-body">
Inventory, patch, and manage installed software.
</p>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="integrations" href="/integrations">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-integrations-40x40@2x.png" alt="Extend Fleet">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Extend Fleet
</p>
<p purpose="nav-item-body">
Integrate your favorite tools with Fleet.
</p>
</div>
</div>
</div>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="Fleet GitOps" href="/fleet-gitops">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-gitops-40x40@2x.png" alt="GitOps">
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="linux-management" href="/linux-management">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-linux-management-40x40@2x.png" alt="Linux management">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Linux device management
</p>
<p purpose="nav-item-body">
Manage Linux devices with full visibility and control.
</p>
</div>
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Infrastructure as code
</p>
<p purpose="nav-item-body">
See every change, undo any error, repeat every success.
</p>
</div>
</div>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="Deployment" href="/deployment">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-deployment-40x40@2x.png" alt="Deployment">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Deployment
</p>
<p purpose="nav-item-body">
Run Fleet the way that fits your team.
</p>
</div>
</div>
</a>
<a class="dropdown-item" purpose="dropdown-item" data-dropdown-option="integrations" href="/integrations">
<div purpose="dropdown-item-link">
<div purpose="dropdown-item-icon">
<img src="/images/nav-icon-integrations-40x40@2x.png" alt="Extend Fleet">
</div>
<div purpose="dropdown-item-text">
<p purpose="nav-item-heading">
Extend Fleet
</p>
<p purpose="nav-item-body">
Integrate your favorite tools with Fleet.
</p>
</div>
</div>
</a>
</a>
</div>
</div>
@@ -863,6 +896,7 @@
<script src="/js/pages/landing-pages/basic-comparison.page.js"></script>
<script src="/js/pages/landing-pages/deployment.page.js"></script>
<script src="/js/pages/landing-pages/gitops-workshop.page.js"></script>
<script src="/js/pages/landing-pages/linux-management.page.js"></script>
<script src="/js/pages/legal/privacy.page.js"></script>
<script src="/js/pages/legal/terms.page.js"></script>
<script src="/js/pages/mdm-commands.page.js"></script>
+138
View File
@@ -0,0 +1,138 @@
<div id="linux-management" v-cloak>
<div purpose="landing-page-container">
<div purpose="landing-page-content">
<div purpose="landing-page-hero">
<div purpose="page-hero-content">
<div purpose="page-hero-headings">
<h4>Linux Device Management</h4>
<h1>Linux device management for modern IT teams</h1>
</div>
<div purpose="page-hero-text">
<p>Support developers choice of Linux without losing visibility or control.<br>Manage Linux, macOS, and Windows in one place.</p>
</div>
<div purpose="button-row" class="d-flex justify-content-center align-items-center">
<a purpose="cta-button" href="/contact" no-underline>Talk to us</a>
<a purpose="video-button" @click="clickOpenVideoModal('fleet-in-three-minutes')"><img alt="Play" class="d-inline" src="/images/icon-play-video-32x32@2x.png">See Fleet in action <span>3 mins</span></a>
</div>
</div>
</div><%/* landing-page-hero */%>
<div purpose="landing-page-section">
<div purpose="section-heading">
<h3>Linux devices create blind spots for IT</h3>
<p>Linux is popular with developers and engineers. Most device management tools werent built for it. That gap creates risk.</p>
</div>
<div purpose="four-column-feature-row">
<div purpose="feature-item">
<h5>Distribution sprawl</h5>
<p>Different package managers and update paths across distributions.</p>
</div>
<div purpose="feature-item">
<h5>Inconsistent patching</h5>
<p>Without automation, updates vary by device and by team.</p>
</div>
<div purpose="feature-item">
<h5>Limited visibility</h5>
<p>IT cant easily see whats installed or how devices are configured.</p>
</div>
<div purpose="feature-item">
<h5>Fragmented workflows</h5>
<p>Linus often sits outside your macOS and Windows management process.</p>
</div>
</div>
</div>
<div purpose="landing-page-section">
<div purpose="feature-with-image" class="d-flex flex-md-row flex-column justify-content-between mx-auto align-items-center">
<div purpose="feature-image">
<img alt="A screenshot of Fleet showing scripts that can be run on a Linux device." src="/images/linux-management-feature-image-scripts-504x378@2x.png">
</div>
<div purpose="feature-text" class="d-flex flex-column">
<h3>Manage Linux with the same visibility and control as other devices</h3>
<p>Use Fleet to manage Linux devices at scale. Apply the same workflows you use for macOS and Windows.</p>
<div purpose="checklist" class="flex-column d-flex">
<p>Run scripts remotely to automate installs, updates, and configuration</p>
<p>Manage software across Debian-based and RPM-based distributions</p>
<p>Monitor hardware, software, and compliance in real time</p>
<p>Enforce security policies and track vulnerabilities across your fleet</p>
</div>
</div>
</div>
</div>
<div purpose="landing-page-section">
<div purpose="section-quote">
<p purpose="quote-text">“We chose Fleet because they take Linux desktop management seriously. It was smooth as butter to set up and start deploying. Fleet gives me the peace of mind knowing that our Linux Fleet is properly managed, monitored, and secure.”</p>
<div purpose="quote-author-info">
<div purpose="quote-author-image">
<img alt="Roger Cantrell" src="/images/testimonial-author-roger-cantrell-100x100@2x.png">
</div>
<p purpose="author-name">Roger Cantrell</p>
<p purpose="author-title">IT Operations Engineer, Nutanix</p>
</div>
</div>
</div>
<div purpose="landing-page-section">
<div purpose="section-heading">
<h2>Built for Linux-first teams</h2>
</div>
<div purpose="feature-row">
<div purpose="feature-item">
<h5>Open source foundation</h5>
<p>Fleet is open source. Review how devices are managed and adapt them to your needs.</p>
</div>
<div purpose="feature-item">
<h5>GitOps workflows</h5>
<p>Version-control configuration. Propose changes with pull requests.</p>
</div>
<div purpose="feature-item">
<h5>Unified device view</h5>
<p>See Linux, macOS, and Windows devices in one interface.</p>
</div>
<div purpose="feature-item">
<h5>Software inventory</h5>
<p>Know exactly whats installed across all distributions.</p>
</div>
<div purpose="feature-item">
<h5>Policy enforcement</h5>
<p>Define queries and policies to monitor compliance.</p>
</div>
<div purpose="feature-item">
<h5>Works across environments</h5>
<p>Manage cloud, on-prem, and mixed fleets with the same tools.</p>
</div>
</div>
</div>
</div>
</div>
<div purpose="tweets-container" class="container-fluid px-md-0 pb-0 d-flex flex-column justify-content-center">
<div purpose="section-heading" class="mx-auto text-center">
<h2 class="mb-3">What people are saying</h2>
</div>
</div>
<scrollable-tweets :testimonials="testimonialsForScrollableTweets"></scrollable-tweets>
<div purpose="bottom-gradient">
<div purpose="page-container" class="container">
<div purpose="bottom-cta" class="text-center">
<h4>Linux Device Management</h4>
<h1>Support Linux without adding complexity</h1>
<div purpose="button-row" style="margin-top: 32px;" class="d-flex justify-content-center align-items-center mx-auto">
<a purpose="cta-button" class="mr-0" href="/contact" no-underline>Get a demo</a>
</div>
</div>
</div>
</div>
<%/* Cloud city banner */%>
<parallax-city></parallax-city>
<modal purpose="video-modal" v-if="modal === 'fleet-in-three-minutes'" @close="closeModal()">
<iframe width="560" height="315" src="https://www.youtube.com/embed/q1Tm3IBcx24?rel=0&autoplay=1" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
</modal>
</div>
<%- /* Expose server-rendered data as window.SAILS_LOCALS :: */ exposeLocalsToBrowser() %>