{"id":16,"date":"2026-10-20T04:47:29","date_gmt":"2026-10-20T02:47:29","guid":{"rendered":"https:\/\/wp-opsec.eagleeye-intelligence.com\/?page_id=16"},"modified":"2026-10-26T18:48:00","modified_gmt":"2026-10-26T17:48:00","slug":"downloads","status":"publish","type":"page","link":"https:\/\/wp-opsec.eagleeye-intelligence.com\/?page_id=16","title":{"rendered":"Thessley Downloads"},"content":{"rendered":"\n<style>\n.thessley-downloads{--td-ink:#f2f6fc;--td-muted:#cad5e3;--td-blue:#1976b5;--td-line:#40516a;color:var(--td-ink);font-family:inherit;background:#0c1422;padding:clamp(1rem,3vw,2rem);border-radius:18px;color-scheme:dark}\n.thessley-downloads *{box-sizing:border-box}\n.thessley-downloads .td-hero{padding:clamp(1.8rem,5vw,3.2rem);border-radius:22px;background:linear-gradient(128deg,#102b4d,#176b9e);color:#fff}\n.thessley-downloads .td-hero .td-kicker{margin:.1rem 0 .55rem;color:#b8e4f7;font-weight:800;letter-spacing:.12em;text-transform:uppercase}\n.thessley-downloads .td-hero p{max-width:65ch;color:#e4f0f7;line-height:1.65}\n.thessley-downloads section{margin:2.8rem 0}\n.thessley-downloads h2{font-size:clamp(1.55rem,3vw,2rem);color:#f5f8fc}\n.thessley-downloads h3{margin-top:1.8rem;color:#eef4fc}\n.thessley-downloads p,.thessley-downloads li{line-height:1.7;color:var(--td-muted)}\n.thessley-downloads a:not(.td-download){color:#9edaff;text-decoration:underline;text-underline-offset:.15em}\n.thessley-downloads a:not(.td-download):hover{color:#d1efff}\n.thessley-downloads .td-card{margin:1rem 0;padding:1.25rem 1.4rem;border:1px solid var(--td-line);border-radius:16px;background:#172235}\n.thessley-downloads .td-card h3{margin:.1rem 0 .4rem}\n.thessley-downloads .td-card p{margin:.45rem 0}\n.thessley-downloads .td-download{display:inline-block;margin:.45rem .7rem .25rem 0;padding:.7rem 1rem;border-radius:999px;background:#145a8d;color:#fff!important;font-weight:750;text-decoration:none}\n.thessley-downloads .td-download:hover{background:#0f456d}\n.thessley-downloads .td-warn{padding:1rem 1.2rem;border-left:4px solid #e3ad45;border-radius:0 10px 10px 0;background:#332a1b;color:#ffe6b2}\n.thessley-downloads pre{position:relative;overflow:auto;padding:3.1rem 1rem 1rem;border-radius:10px;background:#17243a;color:#f0f5f9;font-size:.9rem;line-height:1.55}\n.thessley-downloads pre code{display:block;min-width:max-content;white-space:pre;overflow-wrap:normal}\n.thessley-downloads .td-copy{position:absolute;top:.55rem;right:.6rem;display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .6rem;border:1px solid #9ab2cc;border-radius:7px;background:#314966;color:#fff;font:inherit;font-size:.78rem;cursor:pointer}\n.thessley-downloads .td-copy:hover,.thessley-downloads .td-copy:focus-visible{background:#42658a;outline:2px solid #b4e6ff;outline-offset:2px}\n.thessley-downloads .td-copy svg{width:1rem;height:1rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}\n.thessley-downloads .td-copy-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}\n.thessley-downloads :not(pre)>code{padding:.1em .3em;border-radius:4px;background:#25354b;color:#f4f7fb}\n\n.thessley-downloads .td-hero h1{margin:.2rem 0 .7rem;color:#fff;font-size:clamp(2rem,5vw,3rem)}\n.thessley-downloads details{margin:1rem 0;padding:0 1rem 1rem;border:1px solid var(--td-line);border-radius:12px;background:#121e30}\n.thessley-downloads summary{padding:1rem 0;color:#f5f8fc;font-size:1.1rem;font-weight:750;cursor:pointer}\n.thessley-downloads details[open]>summary{border-bottom:1px solid var(--td-line)}\n<\/style>\n<main class=\"thessley-downloads alignwide\">\n  <section class=\"td-hero\">\n    <p class=\"td-kicker\">Thessley security projects<\/p>\n    <h1>Downloads and installation<\/h1>\n    <p>Choose a platform guide for the Thessley approval service. Each guide starts with a guided installer; manual setup instructions are available below it.<\/p>\n  <\/section>\n  <section>\n    <h2>Install the computer service<\/h2>\n    <div class=\"td-card\">\n      <h3>Ubuntu 24.04 \u00b7 Linux<\/h3>\n      <p>Signed APT repository and guided installer, with source archive instructions as an alternative.<\/p>\n      <a class=\"td-download\" href=\"?page_id=42\">Linux installation guide<\/a>\n    <\/div>\n    <div class=\"td-card\">\n      <h3>Windows 11<\/h3>\n      <p>PowerShell guided installer for the Windows approval service. Optional components default to off.<\/p>\n      <a class=\"td-download\" href=\"?page_id=43\">Windows installation guide<\/a>\n    <\/div>\n  <\/section>\n  <section id=\"wordpress\">\n    <h2>Thessley Security Hardening for WordPress<\/h2>\n    <div class=\"td-card\">\n      <h3>Version 1.0.23 \u00b7 ZIP package<\/h3>\n      <p>Modular security features for WordPress. This project build is distributed for evaluation; install it on a staging site first and keep a site backup.<\/p>\n      <a class=\"td-download\" href=\"https:\/\/wp-opsec.eagleeye-intelligence.com\/wp-content\/uploads\/thessley-downloads\/thessley-security-hardening-1.0.23.zip\">Download plugin ZIP<\/a>\n      <a href=\"https:\/\/wp-opsec.eagleeye-intelligence.com\/wp-content\/uploads\/thessley-downloads\/SHA256SUMS.txt\">SHA-256 checksums<\/a>\n    <\/div>\n    <h3>Install the WordPress plugin<\/h3>\n    <ol>\n      <li>Back up the site, then download the ZIP and verify its SHA-256 hash using the checksum file.<\/li>\n      <li>In WordPress admin, open <strong>Plugins \u2192 Add Plugin \u2192 Upload Plugin<\/strong>.<\/li>\n      <li>Select the ZIP, install it, and activate <strong>Thessley Security Hardening<\/strong>.<\/li>\n      <li>Review the plugin dashboard and event log. Leave modules in log-only mode while confirming the events are correct.<\/li>\n      <li>Test any enforcement setting on staging first. Keep a working administrator session and recovery path.<\/li>\n    <\/ol>\n  <\/section>\n  <section id=\"android\">\n    <h2>Android Passkey app<\/h2>\n    <div class=\"td-card\">\n      <h3>Version 0.1.18 \u00b7 Android APK<\/h3>\n      <p>Android companion app for Thessley phone approvals. Package: <code>com.eagleeyeintelligence.thessleypasskey<\/code>. Requires Android 8.0 or later.<\/p>\n      <a class=\"td-download\" href=\"https:\/\/wp-opsec.eagleeye-intelligence.com\/wp-content\/uploads\/thessley-downloads\/thessley-passkey-android-0.1.18.apk\">Download Android APK<\/a>\n      <a href=\"https:\/\/wp-opsec.eagleeye-intelligence.com\/wp-content\/uploads\/thessley-downloads\/SHA256SUMS.txt\">SHA-256 checksums<\/a>\n    <\/div>\n    <p>Install the APK only if Android accepts its signature for your current installation. If Android reports a signature conflict, keep your installed copy and use the matching Play release when available. Do not uninstall an enrolled app to work around a signature conflict: uninstalling deletes its phone keys.<\/p>\n  <\/section>\n  <p><a href=\"https:\/\/wp-opsec.eagleeye-intelligence.com\/wp-content\/uploads\/thessley-downloads\/SHA256SUMS.txt\">Linux and Android SHA-256 checksums<\/a> \u00b7 <a href=\"https:\/\/wp-opsec.eagleeye-intelligence.com\/wp-content\/uploads\/thessley-windows-downloads\/SHA256SUMS.txt\">Windows package checksums<\/a><\/p>\n<\/main>\n<script>\n(() => {\n  document.querySelectorAll('.thessley-downloads pre').forEach((pre) => {\n    const code = pre.querySelector('code');\n    if (!code) return;\n    let button = pre.querySelector('.td-copy');\n    if (!button) {\n      button = document.createElement('button');\n      button.type = 'button';\n      button.className = 'td-copy';\n      button.setAttribute('aria-label', 'Copy command');\n      button.title = 'Copy command';\n      button.innerHTML = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"8\" y=\"8\" width=\"12\" height=\"12\" rx=\"2\"><\/rect><path d=\"M16 8V5a1 1 0 0 0-1-1H5a1 1 0 0 0 1 1v10a1 1 0 0 0 1 1h3\"><\/path><\/svg><span class=\"td-copy-label\">Copy<\/span>';\n      pre.appendChild(button);\n    }\n    button.addEventListener('click', async () => {\n      const text = code.textContent.replace(\/\\n+$\/, '');\n      try {\n        if (navigator.clipboard && window.isSecureContext) {\n          await navigator.clipboard.writeText(text);\n        } else {\n          const field = document.createElement('textarea');\n          field.value = text;\n          field.setAttribute('readonly', '');\n          field.style.position = 'fixed';\n          field.style.opacity = '0';\n          document.body.appendChild(field);\n          field.select();\n          const copied = document.execCommand('copy');\n          field.remove();\n          if (!copied) throw new Error('Copy failed');\n        }\n        button.setAttribute('aria-label', 'Copied');\n        button.title = 'Copied';\n        button.innerHTML = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><path d=\"m5 12 4 4L19 6\"><\/path><\/svg><span class=\"td-copy-label\">Copied<\/span>';\n        window.setTimeout(() => {\n          button.setAttribute('aria-label', 'Copy command');\n          button.title = 'Copy command';\n          button.innerHTML = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\"><rect x=\"8\" y=\"8\" width=\"12\" height=\"12\" rx=\"2\"><\/rect><path d=\"M16 8V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v10a1 1 0 0 0 1 1h3\"><\/path><\/svg><span class=\"td-copy-label\">Copy<\/span>';\n        }, 1600);\n      } catch (error) {\n        button.setAttribute('aria-label', 'Copy failed; select the command manually');\n        button.title = 'Copy failed; select the command manually';\n      }\n    });\n    pre.appendChild(button);\n  });\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>Downloads and guided installation for Thessley security projects.<\/p>\n","protected":false},"author":0,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-16","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wp-opsec.eagleeye-intelligence.com\/index.php?rest_route=\/wp\/v2\/pages\/16","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp-opsec.eagleeye-intelligence.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wp-opsec.eagleeye-intelligence.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"replies":[{"embeddable":true,"href":"https:\/\/wp-opsec.eagleeye-intelligence.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16"}],"version-history":[{"count":23,"href":"https:\/\/wp-opsec.eagleeye-intelligence.com\/index.php?rest_route=\/wp\/v2\/pages\/16\/revisions"}],"predecessor-version":[{"id":111,"href":"https:\/\/wp-opsec.eagleeye-intelligence.com\/index.php?rest_route=\/wp\/v2\/pages\/16\/revisions\/111"}],"wp:attachment":[{"href":"https:\/\/wp-opsec.eagleeye-intelligence.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}