Rebrand landing for security practitioners, redesign, drop toolchain

- Reposition Arcline OS as the OS for people who defend infrastructure
- Add Security Stack section (Wazuh, Suricata, ClamAV, OpenSCAP, Falco,
  gitleaks/trufflehog, syft/grype, Lynis) plus compliance-ready callout
- Reframe editions for SOC/blue-team/cloud-security audiences; add Kali
  and Security Onion comparisons; update meta/OG tags for security intent
- Remove the custom Arcline Toolchain (11 Go tools) and all references
- Redesign CSS: tactical near-black + amber palette, HUD details
  (hero grid, terminal caret + sigil, card corner brackets, status dot),
  sharpened nav/buttons, responsive fixups; both dark and light themes
This commit is contained in:
Blake Ridgway
2026-08-22 21:45:10 -05:00
parent 21b2cd7e88
commit 8ba41f7e3c
5 changed files with 475 additions and 203 deletions

View File

@@ -163,7 +163,7 @@ func handleIndex(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "text/html; charset=utf-8") w.Header().Set("Content-Type", "text/html; charset=utf-8")
data := map[string]interface{}{ data := map[string]interface{}{
"Title": "Arcline Project", "Title": "Arcline OS — Hardened Linux for Security Practitioners",
} }
if err := templates["index"].ExecuteTemplate(w, "base", data); err != nil { if err := templates["index"].ExecuteTemplate(w, "base", data); err != nil {
log.Printf("render error: %v", err) log.Printf("render error: %v", err)

View File

@@ -14,31 +14,34 @@
/* ── Design Tokens ── */ /* ── Design Tokens ── */
/* Dark mode is the default */ /* Dark mode is the default */
:root { :root {
/* Colors */ /* Colors — tactical near-black, cool cast */
--color-bg: #0d1117; --color-bg: #08090d;
--color-bg-alt: #161b22; --color-bg-alt: #0d1016;
--color-bg-card: #161b22; --color-bg-card: #0f1219;
--color-bg-card-hover: #1c2333; --color-bg-card-hover: #151b26;
--color-bg-dark: #0b0c0e; --color-bg-dark: #05060a;
--color-border: #30363d; --color-border: #202634;
--color-border-hover: #484f58; --color-border-hover: #2e3748;
--color-border-light: #21262d; --color-border-light: #141923;
--color-text: #e6edf3; --color-text: #e8ecf2;
--color-text-soft: #8b949e; --color-text-soft: #8b93a4;
--color-text-faint: #6e7681; --color-text-faint: #5e6879;
--color-text-inverse: #e6edf3; --color-text-inverse: #e8ecf2;
--color-accent: #0acf97; /* Amber / alert accent */
--color-accent-dim: hsl(162 88% 43%); --color-accent: #fbbf24;
--color-accent-bg: hsla(162 88% 43% / 0.10); --color-accent-dim: #f59e0b;
--color-accent-border: hsla(162 88% 43% / 0.22); --color-accent-bg: hsla(48 97% 55% / 0.09);
--color-accent-border: hsla(48 97% 55% / 0.26);
--color-cta-text: #0b0c0e; --color-cta-text: #191204;
--color-nav-bg: rgba(13, 17, 23, 0.92); --color-nav-bg: rgba(8, 9, 13, 0.88);
--color-hero-gradient: linear-gradient(180deg, #0d1117 0%, #161b22 50%, #0d1117 100%); --color-hero-grid: hsla(223 30% 70% / 0.05);
--color-hero-glow: hsla(48 97% 55% / 0.10);
--color-hero-gradient: linear-gradient(180deg, #08090d 0%, #0d1016 55%, #08090d 100%);
/* Typography */ /* Typography */
--font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; --font-sans: "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
@@ -50,15 +53,15 @@
--pad-section: 80px; --pad-section: 80px;
--pad-card: 28px; --pad-card: 28px;
/* Radii */ /* Radii — sharp, tactical */
--radius-sm: 6px; --radius-sm: 3px;
--radius-md: 10px; --radius-md: 6px;
--radius-lg: 14px; --radius-lg: 9px;
/* Shadows */ /* Shadows */
--shadow-card: 0 1px 3px rgba(0,0,0,0.24), 0 1px 2px rgba(0,0,0,0.16); --shadow-card: 0 1px 2px rgba(0,0,0,0.45), 0 1px 3px rgba(0,0,0,0.3);
--shadow-hover: 0 4px 14px rgba(0,0,0,0.32), 0 2px 4px rgba(0,0,0,0.16); --shadow-hover: 0 6px 18px rgba(0,0,0,0.55), 0 2px 6px rgba(0,0,0,0.35);
--shadow-nav: 0 1px 3px rgba(0,0,0,0.24); --shadow-nav: 0 1px 2px rgba(0,0,0,0.5);
/* Transitions */ /* Transitions */
--ease: 0.2s cubic-bezier(0.4, 0, 0.2, 1); --ease: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
@@ -66,33 +69,35 @@
/* Light mode overrides */ /* Light mode overrides */
[data-theme="light"] { [data-theme="light"] {
--color-bg: #ffffff; --color-bg: #f6f7f9;
--color-bg-alt: #f5f6f8; --color-bg-alt: #ebeef2;
--color-bg-card: #ffffff; --color-bg-card: #ffffff;
--color-bg-card-hover: #f8f9fb; --color-bg-card-hover: #f3f5f8;
--color-border: #e2e4e8; --color-border: #d8dce3;
--color-border-hover: #c8cad0; --color-border-hover: #b7bfca;
--color-border-light: #eeeff2; --color-border-light: #e8eaee;
--color-text: #1a1c22; --color-text: #171a21;
--color-text-soft: #4a4e58; --color-text-soft: #454d5b;
--color-text-faint: #7c808a; --color-text-faint: #717b89;
--color-text-inverse: #ffffff; --color-text-inverse: #ffffff;
--color-accent: #0acf97; --color-accent: #b45309;
--color-accent-dim: hsl(162 88% 33%); --color-accent-dim: #92400e;
--color-accent-bg: hsla(162 88% 43% / 0.07); --color-accent-bg: hsla(34 100% 37% / 0.08);
--color-accent-border: hsla(162 88% 43% / 0.18); --color-accent-border: hsla(34 100% 37% / 0.20);
--color-cta-text: #0d1117; --color-cta-text: #ffffff;
--color-nav-bg: rgba(255, 255, 255, 0.92); --color-nav-bg: rgba(246, 247, 249, 0.9);
--color-hero-gradient: linear-gradient(180deg, #f8f9fb 0%, #ffffff 100%); --color-hero-grid: hsla(222 45% 28% / 0.05);
--color-hero-glow: hsla(34 100% 37% / 0.07);
--color-hero-gradient: linear-gradient(180deg, #f2f4f7 0%, #ffffff 100%);
--shadow-card: 0 1px 3px rgba(0,0,0,0.06), 0 1px 2px rgba(0,0,0,0.04); --shadow-card: 0 1px 2px rgba(23,31,45,0.05), 0 1px 3px rgba(23,31,45,0.04);
--shadow-hover: 0 4px 14px rgba(0,0,0,0.08), 0 2px 4px rgba(0,0,0,0.04); --shadow-hover: 0 8px 22px rgba(23,31,45,0.10), 0 2px 6px rgba(23,31,45,0.06);
--shadow-nav: 0 1px 3px rgba(0,0,0,0.06); --shadow-nav: 0 1px 2px rgba(23,31,45,0.05);
} }
/* ── Base ── */ /* ── Base ── */
@@ -110,6 +115,17 @@ body {
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
} }
/* HUD polish: amber selection + focus ring */
::selection {
background: var(--color-accent);
color: var(--color-cta-text);
}
:focus-visible {
outline: 2px solid var(--color-accent);
outline-offset: 2px;
}
/* ── Skip to Content ── */ /* ── Skip to Content ── */
.skip-link { .skip-link {
position: absolute; position: absolute;
@@ -157,11 +173,24 @@ body {
align-items: center; align-items: center;
gap: 10px; gap: 10px;
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 1.05rem; font-size: 1.0rem;
font-weight: 650; font-weight: 650;
color: var(--color-text); color: var(--color-text);
text-decoration: none; text-decoration: none;
letter-spacing: -0.01em; letter-spacing: 0.02em;
position: relative;
}
/* pulsing "live" status dot — HUD detail */
.logo::after {
content: "";
width: 6px;
height: 6px;
margin-left: 2px;
border-radius: 50%;
background: var(--color-accent);
box-shadow: 0 0 8px var(--color-accent);
animation: status-pulse 2.6s ease-in-out infinite;
} }
.logo-icon { .logo-icon {
@@ -178,10 +207,13 @@ body {
.nav nav a { .nav nav a {
color: var(--color-text-soft); color: var(--color-text-soft);
text-decoration: none; text-decoration: none;
padding: 8px 16px; padding: 8px 15px;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
font-size: 0.875rem; font-family: var(--font-mono);
font-weight: 500; font-size: 0.73rem;
font-weight: 560;
letter-spacing: 0.05em;
text-transform: uppercase;
transition: color var(--ease), background var(--ease); transition: color var(--ease), background var(--ease);
} }
@@ -194,7 +226,9 @@ body {
.nav-cta { .nav-cta {
background: var(--color-accent) !important; background: var(--color-accent) !important;
color: var(--color-cta-text) !important; color: var(--color-cta-text) !important;
font-weight: 600 !important; font-weight: 640 !important;
letter-spacing: 0.05em;
text-transform: uppercase;
margin-left: 8px; margin-left: 8px;
} }
@@ -232,9 +266,15 @@ body {
/* ── Hero ── */ /* ── Hero ── */
.hero { .hero {
padding: 90px 28px 70px; position: relative;
padding: 96px 28px 72px;
text-align: center; text-align: center;
background: var(--color-hero-gradient); background:
linear-gradient(var(--color-hero-grid) 1px, transparent 1px),
linear-gradient(90deg, var(--color-hero-grid) 1px, transparent 1px),
radial-gradient(ellipse 60% 45% at 50% -5%, var(--color-hero-glow), transparent 70%),
var(--color-hero-gradient);
background-size: 42px 42px, 42px 42px, 100% 100%, 100% 100%;
border-bottom: 1px solid var(--color-border-light); border-bottom: 1px solid var(--color-border-light);
} }
@@ -243,6 +283,16 @@ body {
margin: 0 auto; margin: 0 auto;
} }
/* terminal-style sigil line above the headline */
.hero-sigil {
font-family: var(--font-mono);
font-size: 0.74rem;
letter-spacing: 0.14em;
text-transform: uppercase;
color: var(--color-accent-dim);
margin-bottom: 22px;
}
.hero h1 { .hero h1 {
font-size: clamp(2.2rem, 5vw, 3.4rem); font-size: clamp(2.2rem, 5vw, 3.4rem);
font-weight: 750; font-weight: 750;
@@ -256,6 +306,18 @@ body {
color: var(--color-accent); color: var(--color-accent);
} }
/* blinking block caret — terminal cue */
.hero-highlight::after {
content: "";
display: inline-block;
width: 0.5ch;
height: 1.02em;
margin-left: 5px;
vertical-align: text-bottom;
background: var(--color-accent);
animation: caret-blink 1.15s steps(1) infinite;
}
.tagline { .tagline {
font-size: 1.1rem; font-size: 1.1rem;
color: var(--color-text-soft); color: var(--color-text-soft);
@@ -279,20 +341,21 @@ body {
background: var(--color-accent); background: var(--color-accent);
color: var(--color-cta-text); color: var(--color-cta-text);
padding: 14px 32px; padding: 14px 32px;
font-size: 0.95rem; font-size: 0.82rem;
font-weight: 620; font-weight: 640;
text-decoration: none; text-decoration: none;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
transition: background var(--ease), transform var(--ease), box-shadow var(--ease); transition: background var(--ease), transform var(--ease), box-shadow var(--ease);
font-family: var(--font-mono); font-family: var(--font-mono);
letter-spacing: -0.01em; letter-spacing: 0.08em;
box-shadow: 0 2px 8px hsla(162 88% 43% / 0.25); text-transform: uppercase;
box-shadow: 0 2px 8px hsla(48 97% 55% / 0.22);
} }
.cta:hover { .cta:hover {
background: var(--color-accent-dim); background: var(--color-accent-dim);
transform: translateY(-2px); transform: translateY(-2px);
box-shadow: 0 4px 16px hsla(162 88% 43% / 0.35); box-shadow: 0 4px 18px hsla(48 97% 55% / 0.32);
} }
.cta-secondary { .cta-secondary {
@@ -300,11 +363,14 @@ body {
align-items: center; align-items: center;
color: var(--color-text-soft); color: var(--color-text-soft);
padding: 14px 32px; padding: 14px 32px;
font-size: 0.95rem; font-size: 0.82rem;
font-weight: 500; font-weight: 520;
text-decoration: none; text-decoration: none;
border: 1.5px solid var(--color-border); border: 1.5px solid var(--color-border);
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
font-family: var(--font-mono);
letter-spacing: 0.08em;
text-transform: uppercase;
transition: border-color var(--ease), color var(--ease), background var(--ease); transition: border-color var(--ease), color var(--ease), background var(--ease);
} }
@@ -334,15 +400,16 @@ body {
.section-label { .section-label {
display: inline-block; display: inline-block;
font-family: var(--font-mono); font-family: var(--font-mono);
font-size: 0.72rem; font-size: 0.68rem;
font-weight: 600; font-weight: 620;
color: var(--color-accent); color: var(--color-accent);
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 0.08em; letter-spacing: 0.12em;
margin-bottom: 14px; margin-bottom: 14px;
padding: 5px 14px; padding: 5px 13px;
background: var(--color-accent-bg); background: var(--color-accent-bg);
border-radius: 20px; border: 1px solid var(--color-accent-border);
border-radius: var(--radius-sm);
} }
.section-inner h2 { .section-inner h2 {
@@ -357,6 +424,16 @@ body {
max-width: 640px; max-width: 640px;
} }
.section-inner h2::before {
content: "";
display: block;
width: 32px;
height: 3px;
margin: 0 auto 16px;
background: var(--color-accent);
box-shadow: 0 0 10px var(--color-accent-border);
}
.section-desc { .section-desc {
color: var(--color-text-soft); color: var(--color-text-soft);
font-size: 1.02rem; font-size: 1.02rem;
@@ -367,6 +444,74 @@ body {
line-height: 1.7; line-height: 1.7;
} }
/* ── HUD corner brackets (tactical detail) ── */
.edition-card,
.principle,
.stack-card,
.compare-card,
.contribute-card,
.feature-card,
.compliance-callout {
position: relative;
}
.edition-card::before,
.principle::before,
.stack-card::before,
.compare-card::before,
.contribute-card::before,
.feature-card::before,
.compliance-callout::before {
content: "";
position: absolute;
top: 7px;
left: 7px;
width: 11px;
height: 11px;
border-top: 2px solid var(--color-accent-border);
border-left: 2px solid var(--color-accent-border);
opacity: 0.9;
transition: border-color var(--ease);
pointer-events: none;
}
.edition-card::after,
.principle::after,
.stack-card::after,
.compare-card::after,
.contribute-card::after,
.feature-card::after,
.compliance-callout::after {
content: "";
position: absolute;
bottom: 7px;
right: 7px;
width: 11px;
height: 11px;
border-bottom: 2px solid var(--color-accent-border);
border-right: 2px solid var(--color-accent-border);
opacity: 0.9;
transition: border-color var(--ease);
pointer-events: none;
}
.edition-card:hover::before,
.principle:hover::before,
.stack-card:hover::before,
.compare-card:hover::before,
.contribute-card:hover::before,
.feature-card:hover::before,
.compliance-callout:hover::before,
.edition-card:hover::after,
.principle:hover::after,
.stack-card:hover::after,
.compare-card:hover::after,
.contribute-card:hover::after,
.feature-card:hover::after,
.compliance-callout:hover::after {
border-color: var(--color-accent);
}
/* ── Edition Cards ── */ /* ── Edition Cards ── */
.editions-grid { .editions-grid {
display: grid; display: grid;
@@ -433,13 +578,14 @@ body {
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
padding: 9px 22px; padding: 9px 22px;
font-size: 0.85rem; font-size: 0.76rem;
font-weight: 600; font-weight: 620;
text-decoration: none; text-decoration: none;
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
transition: background var(--ease), color var(--ease), border-color var(--ease); transition: background var(--ease), color var(--ease), border-color var(--ease);
font-family: var(--font-mono); font-family: var(--font-mono);
letter-spacing: -0.01em; letter-spacing: 0.06em;
text-transform: uppercase;
} }
.card-btn-primary { .card-btn-primary {
@@ -558,7 +704,7 @@ body {
/* ── Stack Grid ── */ /* ── Stack Grid ── */
.stack-grid { .stack-grid {
display: grid; display: grid;
grid-template-columns: repeat(4, 1fr); grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
gap: 16px; gap: 16px;
} }
@@ -613,6 +759,55 @@ body {
opacity: 0.5; opacity: 0.5;
} }
/* ── Security Stack ── */
.security-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
gap: 16px;
margin-bottom: 28px;
}
.compliance-callout {
max-width: 760px;
margin: 0 auto 24px;
text-align: left;
padding: 22px 28px;
border: 1px dashed var(--color-accent-border);
border-radius: var(--radius-md);
background: var(--color-accent-bg);
}
.compliance-badge {
display: inline-block;
font-family: var(--font-mono);
font-size: 0.68rem;
font-weight: 650;
color: var(--color-accent-dim);
text-transform: uppercase;
letter-spacing: 0.05em;
margin-bottom: 10px;
}
.compliance-callout p {
color: var(--color-text-soft);
font-size: 0.9rem;
line-height: 1.7;
margin: 0;
}
.compliance-callout strong {
color: var(--color-text);
font-weight: 660;
}
.security-note {
max-width: 640px;
margin: 0 auto;
color: var(--color-text-soft);
font-size: 0.85rem;
line-height: 1.7;
}
/* Edition Teaser */ /* Edition Teaser */
.edition-teaser { .edition-teaser {
margin-top: 24px; margin-top: 24px;
@@ -646,44 +841,6 @@ body {
font-weight: 660; font-weight: 660;
} }
/* ── Tool Grid ── */
.tool-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
gap: 12px;
}
.tool {
display: flex;
flex-direction: column;
gap: 6px;
background: var(--color-bg-card);
border: 1px solid var(--color-border);
border-radius: var(--radius-sm);
padding: 20px 24px;
text-align: left;
transition: border-color var(--ease), box-shadow var(--ease);
}
.tool:hover {
border-color: var(--color-accent-border);
box-shadow: var(--shadow-card);
}
.tool code {
font-family: var(--font-mono);
font-size: 0.84rem;
font-weight: 600;
color: var(--color-accent-dim);
letter-spacing: -0.01em;
}
.tool span {
color: var(--color-text-soft);
font-size: 0.83rem;
line-height: 1.55;
}
/* ── Compare Grid ── */ /* ── Compare Grid ── */
.compare-grid { .compare-grid {
display: grid; display: grid;
@@ -928,10 +1085,11 @@ body {
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
background: var(--color-bg); background: var(--color-bg);
color: var(--color-text); color: var(--color-text);
font-size: 0.92rem; font-size: 0.9rem;
outline: none; outline: none;
transition: border-color var(--ease), box-shadow var(--ease); transition: border-color var(--ease), box-shadow var(--ease);
font-family: var(--font-mono); font-family: var(--font-mono);
letter-spacing: 0.02em;
} }
.input::placeholder { .input::placeholder {
@@ -950,12 +1108,13 @@ body {
border-radius: var(--radius-sm); border-radius: var(--radius-sm);
background: var(--color-accent); background: var(--color-accent);
color: var(--color-cta-text); color: var(--color-cta-text);
font-size: 0.92rem; font-size: 0.8rem;
font-weight: 620; font-weight: 640;
cursor: pointer; cursor: pointer;
transition: background var(--ease), transform var(--ease); transition: background var(--ease), transform var(--ease);
font-family: var(--font-mono); font-family: var(--font-mono);
letter-spacing: -0.01em; letter-spacing: 0.08em;
text-transform: uppercase;
} }
.btn:hover { .btn:hover {
@@ -1059,6 +1218,16 @@ body {
font-size: 0.76rem; font-size: 0.76rem;
} }
/* ── Keyframes (HUD) ── */
@keyframes caret-blink {
50% { opacity: 0; }
}
@keyframes status-pulse {
0%, 100% { opacity: 1; }
50% { opacity: 0.3; }
}
/* ── Responsive ── */ /* ── Responsive ── */
@media (max-width: 920px) { @media (max-width: 920px) {
.stack-grid { .stack-grid {
@@ -1075,7 +1244,7 @@ body {
} }
} }
@media (max-width: 768px) { @media (max-width: 800px) {
:root { :root {
--pad-section: 56px; --pad-section: 56px;
} }
@@ -1104,18 +1273,15 @@ body {
} }
.nav nav a { .nav nav a {
padding: 6px 10px; padding: 6px 8px;
font-size: 0.8rem; font-size: 0.7rem;
letter-spacing: 0.03em;
} }
.principles-grid { .principles-grid {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
.tool-grid {
grid-template-columns: 1fr;
}
.editions-grid { .editions-grid {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
@@ -1125,6 +1291,29 @@ body {
} }
} }
@media (max-width: 640px) {
.nav-inner {
padding: 0 14px;
gap: 6px;
}
/* keep just the mark below 640px */
.logo span {
display: none;
}
.nav nav a {
padding: 6px 7px;
font-size: 0.68rem;
letter-spacing: 0.02em;
}
.nav-cta {
padding: 6px 12px;
margin-left: 4px;
}
}
@media (max-width: 580px) { @media (max-width: 580px) {
.hero { .hero {
padding: 44px 18px 36px; padding: 44px 18px 36px;
@@ -1143,12 +1332,28 @@ body {
} }
.nav-inner { .nav-inner {
padding: 0 14px; padding: 0 12px;
gap: 6px;
}
.logo {
font-size: 0.9rem;
}
/* keep just the mark on small phones */
.logo span {
display: none;
} }
.nav nav a { .nav nav a {
padding: 6px 7px; padding: 5px 6px;
font-size: 0.74rem; font-size: 0.62rem;
letter-spacing: 0.02em;
}
.nav-cta {
padding: 6px 10px;
margin-left: 4px;
} }
.input { .input {
@@ -1163,6 +1368,10 @@ body {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
.security-grid {
grid-template-columns: 1fr;
}
.compare-grid { .compare-grid {
grid-template-columns: 1fr; grid-template-columns: 1fr;
} }
@@ -1181,3 +1390,29 @@ body {
} }
} }
/* Very small screens: wrap the nav links onto their own row */
@media (max-width: 480px) {
.nav-inner {
height: auto;
flex-wrap: wrap;
padding: 10px 14px 8px;
row-gap: 8px;
}
.nav nav {
order: 3;
flex-wrap: wrap;
justify-content: center;
width: 100%;
}
.nav nav a {
padding: 5px 8px;
font-size: 0.66rem;
}
.theme-toggle {
margin-left: auto;
}
}

View File

@@ -1,6 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32"> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32" width="32" height="32">
<rect width="32" height="32" fill="#0b0c0e"/> <rect width="32" height="32" fill="#0b0c0e"/>
<path d="M5 27L16 5L27 27" fill="none" stroke="#0acf97" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5 27L16 5L27 27" fill="none" stroke="#f59e0b" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9 20H23" fill="none" stroke="#0acf97" stroke-width="2.5" stroke-linecap="round"/> <path d="M9 20H23" fill="none" stroke="#f59e0b" stroke-width="2.5" stroke-linecap="round"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 360 B

After

Width:  |  Height:  |  Size: 360 B

View File

@@ -5,6 +5,14 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{{.Title}}</title> <title>{{.Title}}</title>
<meta name="description" content="Arcline OS is a hardened Debian-based Linux distribution for security practitioners — pre-configured SIEM agent, network IDS, compliance scanning, and zero telemetry.">
<meta name="theme-color" content="#f59e0b">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Arcline Project">
<meta property="og:title" content="{{.Title}}">
<meta property="og:description" content="A hardened Debian-based Linux OS for people who defend infrastructure — SIEM agent, network IDS, compliance scanning, and zero telemetry, from first boot.">
<meta property="og:url" content="https://arclineproject.org/">
<meta name="twitter:card" content="summary">
<link rel="icon" type="image/svg+xml" href="/static/favicon.svg"> <link rel="icon" type="image/svg+xml" href="/static/favicon.svg">
<link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>

View File

@@ -6,15 +6,15 @@
<a href="/" class="logo"> <a href="/" class="logo">
<svg class="logo-icon" width="28" height="28" viewBox="0 0 32 32" fill="none"> <svg class="logo-icon" width="28" height="28" viewBox="0 0 32 32" fill="none">
<rect width="32" height="32" fill="#0b0c0e"/> <rect width="32" height="32" fill="#0b0c0e"/>
<path d="M5 27L16 5L27 27" fill="none" stroke="#0acf97" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M5 27L16 5L27 27" fill="none" stroke="#f59e0b" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9 20H23" fill="none" stroke="#0acf97" stroke-width="2.5" stroke-linecap="round"/> <path d="M9 20H23" fill="none" stroke="#f59e0b" stroke-width="2.5" stroke-linecap="round"/>
</svg> </svg>
<span>Arcline Project</span> <span>Arcline Project</span>
</a> </a>
<nav> <nav>
<a href="#editions">Editions</a> <a href="#editions">Editions</a>
<a href="#security">Security</a>
<a href="#about">About</a> <a href="#about">About</a>
<a href="#toolchain">Toolchain</a>
<a href="#contribute">Contribute</a> <a href="#contribute">Contribute</a>
<button <button
type="button" type="button"
@@ -48,13 +48,15 @@
<!-- Hero --> <!-- Hero -->
<section class="hero"> <section class="hero">
<div class="hero-inner"> <div class="hero-inner">
<p class="hero-sigil">// hardened · zero-telemetry · auditable</p>
<h1> <h1>
The Linux OS for<br> The Linux OS for<br>
<span class="hero-highlight">people who run infrastructure.</span> <span class="hero-highlight">people who defend infrastructure.</span>
</h1> </h1>
<p class="tagline"> <p class="tagline">
Hardened Debian base. Pre-configured monitoring, auditing, and security Hardened Debian base. Pre-configured security stack — SIEM agent, network
tooling. Zero telemetry. Your systems are production-ready from first boot. IDS, compliance scanning. Zero telemetry. Your systems are defense-ready
from first boot.
</p> </p>
<div class="hero-actions"> <div class="hero-actions">
<a href="#get-started" class="cta">Get Early Access</a> <a href="#get-started" class="cta">Get Early Access</a>
@@ -69,7 +71,7 @@
<div class="section-label">Editions</div> <div class="section-label">Editions</div>
<h2>Our flagship Arcline OS variants<br>for different use cases.</h2> <h2>Our flagship Arcline OS variants<br>for different use cases.</h2>
<p class="section-desc"> <p class="section-desc">
Pick the edition that matches your workload. All share the same Pick the edition that matches your role. All share the same
hardened Debian base and zero-telemetry guarantee. hardened Debian base and zero-telemetry guarantee.
</p> </p>
<div class="editions-grid"> <div class="editions-grid">
@@ -81,7 +83,7 @@
</svg> </svg>
</div> </div>
<h3>Arcline Server</h3> <h3>Arcline Server</h3>
<p>A hardened, production-ready server OS with built-in observability and zero telemetry. Run applications on bare metal or the cloud.</p> <p>A hardened, production-ready host for SOC and production use — built-in SIEM agent and network IDS on top of the hardened base, with zero telemetry.</p>
<div class="card-actions"> <div class="card-actions">
<a href="#get-started" class="card-btn card-btn-primary">Get Access</a> <a href="#get-started" class="card-btn card-btn-primary">Get Access</a>
<a href="#about" class="card-btn card-btn-secondary">Learn More</a> <a href="#about" class="card-btn card-btn-secondary">Learn More</a>
@@ -97,7 +99,7 @@
</svg> </svg>
</div> </div>
<h3>Arcline Workstation</h3> <h3>Arcline Workstation</h3>
<p>Same hardened base, with a lightweight KDE Plasma desktop, pre-configured dev toolchains, and privacy-hardened browser profiles.</p> <p>A security analyst / blue-team workstation — KDE Plasma, pre-configured dev toolchains, privacy-hardened browser, forensics-friendly tooling, and secrets scanning.</p>
<div class="card-actions"> <div class="card-actions">
<a href="#get-started" class="card-btn card-btn-primary">Get Access</a> <a href="#get-started" class="card-btn card-btn-primary">Get Access</a>
<a href="#about" class="card-btn card-btn-secondary">Coming Soon</a> <a href="#about" class="card-btn card-btn-secondary">Coming Soon</a>
@@ -114,7 +116,7 @@
</svg> </svg>
</div> </div>
<h3>Arcline Cloud</h3> <h3>Arcline Cloud</h3>
<p>Minimal base images optimized for cloud infrastructures. Ready for AWS, GCP, Azure, or your own private cloud.</p> <p>Minimal cloud images with a small attack surface — Falco runtime security and CIS benchmark scanning built in. Ready for AWS, GCP, Azure, or private cloud.</p>
<div class="card-actions"> <div class="card-actions">
<a href="#get-started" class="card-btn card-btn-primary">Get Access</a> <a href="#get-started" class="card-btn card-btn-primary">Get Access</a>
<a href="#about" class="card-btn card-btn-secondary">Learn More</a> <a href="#about" class="card-btn card-btn-secondary">Learn More</a>
@@ -131,9 +133,9 @@
<h2>A Debian-derived OS that doesn't<br>make you start from scratch.</h2> <h2>A Debian-derived OS that doesn't<br>make you start from scratch.</h2>
<p class="section-desc"> <p class="section-desc">
Debian gives you a rock-solid base. Arcline OS hardens it, layers on a Debian gives you a rock-solid base. Arcline OS hardens it, layers on a
full observability stack, and ships with pre-configured container full security and observability stack, and ships with pre-configured
infrastructure. No telemetry. No snap store. No cloud integration. container infrastructure. No telemetry. No snap store. No cloud
Just a secure, auditable OS that respects your hardware. integration. Just a secure, auditable OS that respects your hardware.
</p> </p>
<div class="principles-grid"> <div class="principles-grid">
<div class="principle"> <div class="principle">
@@ -145,7 +147,7 @@
</div> </div>
<div> <div>
<h3>Secure by default</h3> <h3>Secure by default</h3>
<p>Hardened Linux kernel with seccomp, AppArmor profiles, and restrictive nftables firewall. You opt in to exposure — never out.</p> <p>Hardened kernel with lockdown, seccomp, and AppArmor profiles. Default-deny nftables firewall. You opt in to exposure — never out.</p>
</div> </div>
</div> </div>
<div class="principle"> <div class="principle">
@@ -195,7 +197,7 @@
</div> </div>
<div> <div>
<h3>Infrastructure-aware</h3> <h3>Infrastructure-aware</h3>
<p>Prometheus node_exporter, Grafana dashboards, and Loki log aggregation — pre-configured out of the box.</p> <p>Observability that feeds your security stack — node_exporter, Grafana, Loki, and a pre-configured host security agent, out of the box.</p>
</div> </div>
</div> </div>
<div class="principle"> <div class="principle">
@@ -222,31 +224,20 @@
<div class="section-label">What's Included</div> <div class="section-label">What's Included</div>
<h2>Production-ready from first boot.</h2> <h2>Production-ready from first boot.</h2>
<p class="section-desc"> <p class="section-desc">
Arcline OS layers pre-configured infrastructure tooling on top of a hardened Arcline OS layers pre-configured infrastructure and security tooling on top
Debian base. Everything is documented, auditable, and yours. of a hardened Debian base. Everything is documented, auditable, and yours.
</p> </p>
<div class="stack-grid"> <div class="stack-grid">
<div class="stack-card"> <div class="stack-card">
<div class="stack-header">Base System</div> <div class="stack-header">Base System</div>
<ul> <ul>
<li>Debian stable (Trixie)</li> <li>Debian stable (Bookworm)</li>
<li>Hardened Linux kernel (lockdown, seccomp)</li> <li>Hardened Linux kernel (lockdown, seccomp)</li>
<li>btrfs root + snapshot rollback</li> <li>btrfs root + snapshot rollback</li>
<li>nftables firewall (default-deny)</li> <li>nftables firewall (default-deny)</li>
<li>Docker + Podman containers</li> <li>Docker + Podman containers</li>
</ul> </ul>
</div> </div>
<div class="stack-card">
<div class="stack-header">Arcline Toolchain</div>
<ul>
<li>arcline-uptime — service monitoring</li>
<li>arcline-check — privacy auditor</li>
<li>arcline-audit — site health scanner</li>
<li>arcline-dns — propagation checker</li>
<li>arcline-vault — secrets store</li>
<li>arcline-email — self-hosted mail stack</li>
</ul>
</div>
<div class="stack-card"> <div class="stack-card">
<div class="stack-header">Developer Environment</div> <div class="stack-header">Developer Environment</div>
<ul> <ul>
@@ -269,61 +260,91 @@
</div> </div>
</section> </section>
<!-- Toolchain deep-dive --> <!-- Security Stack -->
<section id="toolchain" class="section section-alt"> <section id="security" class="section">
<div class="section-inner"> <div class="section-inner">
<div class="section-label">The Toolchain</div> <div class="section-label">Security Stack</div>
<h2>11 Go tools. Built in production.<br>Yours to use.</h2> <h2>Defense-in-depth, pre-configured<br>from first boot.</h2>
<p class="section-desc"> <p class="section-desc">
Every Arcline tool was built to solve real infrastructure problems. Beyond the hardened base, Arcline OS ships a named security tooling layer —
They run in production at Arcline IT. Now they ship with Arcline OS. host and network detection, malware and secrets scanning, compliance and
runtime checks. Pre-configured, documented, and yours.
</p> </p>
<div class="tool-grid"> <div class="security-grid">
<div class="tool"> <div class="stack-card">
<code>arcline-uptime</code> <div class="stack-header">Host IDS / SIEM</div>
<span>HTTP, TCP, TLS, DNS monitoring with Prometheus metrics export</span> <ul>
<li>Wazuh agent, pre-configured</li>
<li>Host + integrity telemetry to your SIEM</li>
</ul>
</div> </div>
<div class="tool"> <div class="stack-card">
<code>arcline-check</code> <div class="stack-header">Network IDS</div>
<span>CDN and transparency auditor — verifies sites aren't leaking data</span> <ul>
<li>Suricata (or Zeek)</li>
<li>Detects malicious traffic, not just uptime</li>
</ul>
</div> </div>
<div class="tool"> <div class="stack-card">
<code>arcline-audit</code> <div class="stack-header">Malware Scanning</div>
<span>Full site health scanner — SSL, headers, performance, accessibility</span> <ul>
<li>ClamAV baseline scanning</li>
<li>Scheduled and on-demand</li>
</ul>
</div> </div>
<div class="tool"> <div class="stack-card">
<code>arcline-dns</code> <div class="stack-header">Compliance Scanning</div>
<span>DNS propagation checker across multiple resolvers</span> <ul>
<li>OpenSCAP + CIS Benchmark profiles</li>
<li>Mapped toward HIPAA, PCI-DSS, SOC 2</li>
</ul>
</div> </div>
<div class="tool"> <div class="stack-card">
<code>arcline-vault</code> <div class="stack-header">Runtime Security</div>
<span>Encrypted secrets store with REST API and CLI</span> <ul>
<li>Falco — container / syscall anomalies</li>
<li>Cloud edition</li>
</ul>
</div> </div>
<div class="tool"> <div class="stack-card">
<code>arcline-email</code> <div class="stack-header">Secrets Scanning</div>
<span>Self-hosted SMTP/IMAP stack — OpenSMTPD + Dovecot + Rspamd</span> <ul>
<li>gitleaks + trufflehog</li>
<li>Workstation / dev edition</li>
</ul>
</div> </div>
<div class="tool"> <div class="stack-card">
<code>arcline-migrate</code> <div class="stack-header">Supply Chain / SBOM</div>
<span>cPanel and Plesk to Arcline migration tool</span> <ul>
<li>syft + grype</li>
<li>Know what's installed, catch known CVEs</li>
</ul>
</div> </div>
<div class="tool"> <div class="stack-card">
<code>arcline-billing</code> <div class="stack-header">System Auditing</div>
<span>Stripe-powered subscription management</span> <ul>
</div> <li>Lynis hardening score</li>
<div class="tool"> <li>Continuous, post-install</li>
<code>arcline-portal</code> </ul>
<span>Customer dashboard with SSL monitoring and ticketing</span>
</div>
<div class="tool">
<code>arcline-website</code>
<span>Go HTTP server powering arcline.it</span>
</div>
<div class="tool">
<code>arcline-status</code>
<span>Static status page generator</span>
</div> </div>
</div> </div>
<div class="compliance-callout">
<div class="compliance-badge">Compliance-ready by default</div>
<p>
Arcline OS ships CIS Benchmark-aligned by default, with compliance scanning
mapped toward <strong>HIPAA</strong>, <strong>PCI-DSS</strong>, and
<strong>SOC 2</strong> control families. The OS itself isn't certified —
only audited deployments can be — but the defaults give you a running start.
</p>
</div>
<p class="security-note">
The Wazuh agent pairs naturally with
<a href="https://arcline.it" class="inline-link">Arcline IT's</a>
Wazuh-based managed monitoring. Want the whole stack run and watched for you?
Arcline IT's managed security services cover hardening, monitoring, and response.
</p>
</div> </div>
</section> </section>
@@ -351,9 +372,17 @@
<div class="compare-label">Alpine Linux</div> <div class="compare-label">Alpine Linux</div>
<div class="compare-desc">Minimal and musl-based — ideal for containers, but limited as a full-featured server workstation.</div> <div class="compare-desc">Minimal and musl-based — ideal for containers, but limited as a full-featured server workstation.</div>
</div> </div>
<div class="compare-card">
<div class="compare-label">Kali Linux</div>
<div class="compare-desc">A great offensive-security and pentesting toolkit — but built to break in, not to serve as a hardened daily-driver production OS.</div>
</div>
<div class="compare-card">
<div class="compare-label">Security Onion</div>
<div class="compare-desc">An excellent network security monitoring platform — but not a general-purpose or developer-ready OS for your day-to-day hosts.</div>
</div>
<div class="compare-card compare-highlight"> <div class="compare-card compare-highlight">
<div class="compare-label">Arcline OS</div> <div class="compare-label">Arcline OS</div>
<div class="compare-desc">Hardened Debian base. Pre-configured toolchain. Built-in observability. Zero telemetry. Ready to deploy.</div> <div class="compare-desc">Hardened Debian base. Pre-configured security stack. Built-in observability. Zero telemetry. Ready to deploy.</div>
</div> </div>
</div> </div>
</div> </div>
@@ -367,7 +396,7 @@
<p class="section-desc"> <p class="section-desc">
Arcline OS is open-source under the GPL. The code lives on Arcline OS is open-source under the GPL. The code lives on
<a href="https://git.arcline.it" class="inline-link">git.arcline.it</a>. <a href="https://git.arcline.it" class="inline-link">git.arcline.it</a>.
Every tool, every config, every build script — auditable and forkable. Every config, every build script — auditable and forkable.
</p> </p>
<div class="contribute-grid"> <div class="contribute-grid">
<a href="https://git.arcline.it" class="contribute-card"> <a href="https://git.arcline.it" class="contribute-card">
@@ -377,7 +406,7 @@
</svg> </svg>
</div> </div>
<span>Browse the source</span> <span>Browse the source</span>
<small>All 11 tools, build scripts, and infrastructure code.</small> <small>Build scripts, packaging, and infrastructure code.</small>
</a> </a>
<a href="https://git.arcline.it" class="contribute-card"> <a href="https://git.arcline.it" class="contribute-card">
<div class="contribute-icon"> <div class="contribute-icon">
@@ -411,7 +440,7 @@
<div class="section-label">Get Started</div> <div class="section-label">Get Started</div>
<h2>Arcline OS is in active development.<br>Be there at the start.</h2> <h2>Arcline OS is in active development.<br>Be there at the start.</h2>
<p class="section-desc"> <p class="section-desc">
We're packaging the tools, building the ISO pipeline, and hardening the defaults. We're building the ISO pipeline and hardening the defaults.
Sign up to receive early access and help shape the first release. Sign up to receive early access and help shape the first release.
</p> </p>
<form <form
@@ -452,6 +481,7 @@
<div class="sponsor-content"> <div class="sponsor-content">
<div class="sponsor-desc"> <div class="sponsor-desc">
<p>The Arcline Project is funded and operated by <strong>Arcline IT LLC</strong> — the same model as Red Hat and Fedora. The commercial services business at <a href="https://arcline.it" class="inline-link">arcline.it</a> keeps the lights on so the OS stays independent and sustainable.</p> <p>The Arcline Project is funded and operated by <strong>Arcline IT LLC</strong> — the same model as Red Hat and Fedora. The commercial services business at <a href="https://arcline.it" class="inline-link">arcline.it</a> keeps the lights on so the OS stays independent and sustainable.</p>
<p>Arcline IT also offers managed security services — hardening, Wazuh-based monitoring, and response — for teams that want Arcline OS run and watched for them.</p>
</div> </div>
<div class="sponsor-tagline">Secure by default. Self-hosted by principle.</div> <div class="sponsor-tagline">Secure by default. Self-hosted by principle.</div>
</div> </div>
@@ -464,7 +494,7 @@
<div class="footer-grid"> <div class="footer-grid">
<div class="footer-col"> <div class="footer-col">
<a href="/" class="footer-logo">Arcline Project</a> <a href="/" class="footer-logo">Arcline Project</a>
<p>An open-source operating system for people who run infrastructure. Hardened Debian base. Zero telemetry. Production-ready.</p> <p>An open-source operating system for people who defend infrastructure. Hardened Debian base. Pre-configured security stack. Zero telemetry. Defense-ready.</p>
</div> </div>
<div class="footer-col"> <div class="footer-col">
<h4>Editions</h4> <h4>Editions</h4>
@@ -478,7 +508,6 @@
<h4>Project</h4> <h4>Project</h4>
<ul> <ul>
<li><a href="#about">About</a></li> <li><a href="#about">About</a></li>
<li><a href="#toolchain">Toolchain</a></li>
<li><a href="#contribute">Contribute</a></li> <li><a href="#contribute">Contribute</a></li>
<li><a href="https://git.arcline.it">Source Code</a></li> <li><a href="https://git.arcline.it">Source Code</a></li>
</ul> </ul>