From 13b3de661b379695aeb74c8e06a6a6926e637746 Mon Sep 17 00:00:00 2001 From: Admin Date: Wed, 23 Sep 2026 23:18:48 +0000 Subject: [PATCH] deploy: add Linux install script download --- apps/api/src/server.ts | 4 ++++ apps/web/src/DesktopDownloads.tsx | 12 ++++++++++++ apps/web/src/host.css | 30 +++++++++++++++++++++++++++++- 3 files changed, 45 insertions(+), 1 deletion(-) diff --git a/apps/api/src/server.ts b/apps/api/src/server.ts index 691dee2..d45cd11 100644 --- a/apps/api/src/server.ts +++ b/apps/api/src/server.ts @@ -75,6 +75,10 @@ app.get('/downloads/fieldlens-print-linux-x64.deb', (_req, res) => { redirectDesktopDownload(res, 'fieldlens-print-linux-x64.deb') }) +app.get('/downloads/install.sh', (_req, res) => { + redirectDesktopDownload(res, 'install.sh') +}) + // Backward-compatible aliases used by the first downloads page. app.get('/downloads/fieldlens-print/windows-x64', (_req, res) => { redirectDesktopDownload(res, 'fieldlens-print-windows-x64-setup.exe') diff --git a/apps/web/src/DesktopDownloads.tsx b/apps/web/src/DesktopDownloads.tsx index d1b1bd2..cd0b383 100644 --- a/apps/web/src/DesktopDownloads.tsx +++ b/apps/web/src/DesktopDownloads.tsx @@ -13,6 +13,12 @@ const downloads = [ detail: 'x64 · Debian / Ubuntu .deb package', icon: Terminal, }, + { + href: '/downloads/install.sh', + label: 'Linux install script', + detail: 'x64 · verifies SHA-256 · installs the .deb', + icon: Terminal, + }, ] export function DesktopDownloadsLink({ onOpen }: { onOpen: () => void }) { @@ -70,8 +76,14 @@ export function DesktopDownloadsPage({ onBack }: { onBack: () => void }) { ))} +
+ Linux quick install + curl -fsSL https://fieldlens.arrowstack.dev/downloads/install.sh | sh +
+

Windows: installs for the current user, so the app itself does not require administrator elevation.

+

Linux script: supports x86_64/amd64 Debian/Ubuntu-style systems and verifies the package checksum before installation.

Printer setup: changing a managed Windows printer queue or port can still require IT/admin permission.

diff --git a/apps/web/src/host.css b/apps/web/src/host.css index 3df403a..c8e6c7c 100644 --- a/apps/web/src/host.css +++ b/apps/web/src/host.css @@ -167,7 +167,7 @@ } .desktop-download-grid { display: grid; - grid-template-columns: repeat(2, minmax(0, 1fr)); + grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; padding: 18px 20px; } @@ -255,3 +255,31 @@ cursor: pointer; font: inherit; } + + +.downloads-command { + display: grid; + gap: 7px; + padding: 0 20px 18px; +} +.downloads-command span { + color: #75807b; + font-size: 9px; + font-weight: 800; + text-transform: uppercase; + letter-spacing: .08em; +} +.downloads-command code { + display: block; + overflow-x: auto; + padding: 11px 12px; + border: 1px solid #dfe3dc; + border-radius: 10px; + background: #17211f; + color: #f6f5ed; + font-size: 10px; + white-space: nowrap; +} +@media (max-width: 980px) and (min-width: 761px) { + .desktop-download-grid { grid-template-columns: 1fr; } +}