Setup guide · last checked October 17, 2026
A pre-launch routine that checks your site or app for leaked secret keys, access settings and monitoring
Scan your repository for forgotten keys, check who can access user data, review your deployment settings and monitoring, and write what you find into a list where every item has an owner. This is not a penetration test or a security certification.
Compiled from the official documentation. The basis for each step is listed under it.
What you get
A one-page fix list with the check date, the issues found, and an owner and due date for each; it also states what to do if a key leaks and where monitoring alerts will go.
How it runs
You start it. You start every check yourself. The scan does not change your files, but by default TruffleHog connects to the relevant service's API to verify each key it finds; this means any real keys found are tried against their provider from your computer. If you do not want that, run the scan with --no-verification. If you set up the monitoring service, it checks your site continuously from its own servers; you are the one who turns it off.
Where it runs
Windows · macOS · Linux
What the cost depends on
No cost · Subscription · Setup service
Who it is for
- Business owners and small teams about to launch a site or app who want to be sure no keys were left in their code
- People using a database such as Supabase who want to make sure user data has not been left publicly accessible by mistake
Who it is not for
- People who need a security certification, a compliance document or an independent penetration test report: this routine produces none of these
- People who want to test someone else's system or an app they have no permission to test
- People who want this to be the only security review of a system handling critical, payment or health data: such systems need an expert review
- People who want to scan a repository or live project that belongs to someone else (a client) without written permission
How the system fits together
Secret scanning (TruffleHog) → review GitHub alerts → rotate the key if it leaked → Supabase access review → deployment and domain settings → accessibility and uptime monitoring → fix list with owners.
TruffleHog requiredScans repository history and files on your own computer; by default it tries each key it finds against the service's API
GitHub secret scanning optionalIf your repository is on GitHub, you check where alerts and push protection show up
Alternative: If you keep your repository on GitHub; it is an extra alert layer alongside TruffleHog, not a replacement
GitGuardian ggshield optionalA command-line scanner that can be used instead of TruffleHog; it requires a GitGuardian account and the scanned content is sent to GitGuardian's API
Alternative: If you are fine with creating an account and having the scanned content sent to GitGuardian's servers
- Supabase row-level security required
Database rules that determine who can read and write user data; this guide only reviews them


SigNoz optionalMore thorough monitoring for teams that want to collect traces and error data from inside the app
Alternative: If a simple up/down check is not enough and you need in-app error and performance data; its setup is not covered in this guide
Cloudflare optionalIf your domain is already on Cloudflare, you review its DNS and protection settings
Alternative: Only if your domain is managed through Cloudflare
Docker optionalOptional and advanced: needed only if you want to test on a local copy of Supabase
Alternative: If you want to run the access test on a local copy rather than the live project
Strix optionalFurther reading: an automated security testing tool used only on your own app, in a test environment and with explicit written permission; not set up in this guide
Alternative: If you are considering deeper testing after finishing the basic check
CrowdSec optionalFurther reading: not set up in this guide
Alternative: If you are looking into server protection after finishing the basic check
NVIDIA SkillSpector optionalFurther reading: not set up in this guide
Alternative: If you are looking into additional scanning tools after finishing the basic check
Connections between tools
- Project folder (local Git repository) TruffleHog · Via a file · Local Git repository via a file:// path; TruffleHog copies the repository to a temporary folder before scanning
- TruffleHog Findings list · Manual transfer · You copy the findings from the terminal into the fix list yourself; the tool does not fill in the list
- Better Stack Email / Slack · Manual transfer · You choose the alert channel when creating the monitor; Slack and email alerts are listed on the free plan
Before you start
Computer and software
- Operating system: Windows, macOS, Linux
- Git and the project folder: The repository to scan must be cloned on your computer
- TruffleHog: v3.99.2 (the windows_amd64.tar.gz archive for Windows)
- Google Chrome: To run Lighthouse inside DevTools
- Docker Desktop (only if you choose local Supabase testing): The local Supabase stack runs in Docker containers
Accounts
- GitHub — To check secret scanning and push protection status in the repository settings. Secret scanning is automatic and free on public repositories; on private repositories it is available only for organization-owned repositories with GitHub Secret Protection purchased (Team or Enterprise plan)
- Supabase project owner account — To see the API keys, the Security Advisor and the row-level security status of your tables. No plan requirement is stated in the documentation; you need Dashboard access to the project
- Better Stack account — To monitor from the outside whether the site is up and get alerts. The pricing page describes the free plan as 'for personal projects'; if you will use it for a business, check the plan terms with Better Stack
- Cloudflare account (only if your domain is on Cloudflare) — To review DNS and protection settings. The Free plan is described as for personal or non-business-critical projects; for a commercial site, weigh your plan choice using the Cloudflare plans page
Step-by-step setup
The steps you check stay only in this browser; they do not confirm that the setup works. You finished 0/9 steps.
- Step 1 · In an app
Write down what you are checking and who is responsible
What for: Every issue found gets an owner, so the check does not stay vague.
!You check this step yourself; the system should not move past it without your approval.
- If the repository or project belongs to someone else (a client), get written permission first. Do not scan without permission; do not open or export live user data.
- On one page, write down: the repositories to check, the Supabase project, the domain, the hosting and the monitoring account.
- Pick an owner for each item and decide where the fix list file for the findings will live.
- Write down now who will rotate keys on which account if a key leaks, and which email address alerts will go to.
- When recording findings, write the key's type, file and commit number, not the key itself. Do not paste the key value into the list, an email, a chat, a support form or an AI assistant.
How you know it worked
- A one-page scope list with owner names and the alert email address is written down.
If you get stuck: problems specific to this step
- It is unclear who is responsible, and everyone leaves it to someone else
Put a single name on every finding; the person with permission to rotate keys must be on the list. - Nobody knows which accounts use which key
First check the API Keys section in the Supabase Dashboard and the environment variables in your hosting panel, and add what you find to the list.
- Step 2 · In an app
Download a specific version of TruffleHog
What for: Run the scan on your own computer without creating an account.
!You check this step yourself; the system should not move past it without your approval.
- Open v3.99.2 on the TruffleHog GitHub releases page. Download trufflehog_3.99.2_windows_amd64.tar.gz for Windows, or the matching archive for macOS and Linux.
- Find the archive's SHA256 value in the checksums file on the same release page. On Windows, compute your file's value with the Get-FileHash command below and compare the two; upper/lower case does not matter, but the characters themselves must match (the sha256sum command in the README is for Linux and macOS).
- This comparison shows the file was not corrupted during download; it does not prove the publisher's identity, because both come from the same release page. The README also explains how to verify the checksums file's signature with Cosign; this guide does not set that up.
- Extract the archive, put the trufflehog program in a separate tools folder and make sure you can run it from the terminal. Do not use the path that downloads and directly runs an install script.
WindowsFolder: The folder where you downloaded the archive› Get-FileHash .\trufflehog_3.99.2_windows_amd64.tar.gz -Algorithm SHA256How you know it worked
- Typing trufflehog in the terminal shows the list of commands.
- The SHA256 value of the file you downloaded matches the one in the checksums file (ignoring letter case); this only shows the download was not corrupted.
If you get stuck: problems specific to this step
- Windows cannot open the archive
The file is in .tar.gz format; use an archive program that can open it, or ask for help. The README also describes running it with Docker, but that requires installing Docker. - The terminal cannot find the trufflehog command
Run it with the full path from the folder where the program is, or add the folder to your system path.
- Step 3 · In the terminal
Scan the repository history and build files for secret keys
What for: Look for keys and passwords left in the code, in old commits or in the build output.
!You check this step yourself; the system should not move past it without your approval.
- BEFORE YOU RUN IT: The default commands (1 and 3) connect to the relevant service's API to verify each key found (the README gives the example of a GetCallerIdentity call for AWS). This means a real key that is found gets tried against that provider from your computer and may leave a trace in the provider's logs; since command 3 scans the .env file, the project's live keys are included too. Do not do this on a repository that belongs to someone else.
- If you do not want keys to be tried externally, use commands 2 and 4 (both include --no-verification).
- Command 1 (git history) and command 3 (files) run with no extra options: they show all verified, unverified and unknown results. Commands 2 and 4 turn verification off; in that case every finding shows as 'unverified', which is normal. Do not combine the no-verification commands with --results=verified,unknown: with verification off, the findings can be filtered out, the output can look empty and you may think it is 'clean'.
- Result types: verified means the key is valid and active on the service (the most urgent); unverified means a key-like value was found but TruffleHog could not confirm its validity with the provider (it may be invalid or real, so review each one); unknown means verification could not be done because of a network or API error (retry and review).
- Commands 3 and 4 scan uncommitted files and the build output, not the git history (for example .env and the build folder). The git scan does not see these files. Change the folder names to match your own project.
- The terminal output prints the key's full value on screen. Do not share the output, a screenshot or the key with anyone (including support, chat or AI). Write only its type, file and commit number in the list. Treat every real key you see as exposed and rotate it.
- An empty result does not mean 'no leaks'; the scan cannot catch every type.
Windows · macOS · LinuxFolder: The project folder to scan› trufflehog git file://.Windows · macOS · LinuxFolder: The project folder to scan› trufflehog git file://. --no-verificationWindows · macOS · LinuxFolder: The project folder to scan› trufflehog filesystem .env distWindows · macOS · LinuxFolder: The project folder to scan› trufflehog filesystem .env dist --no-verificationHow you know it worked
- When the scan finishes, the terminal lists the findings or shows a summary if there are none.
- You sorted the findings by type and added them to your list without writing the key values.
If you get stuck: problems specific to this step
- No findings came up, but you know you put a key in at some point
Rotate that key anyway; the scan cannot catch every type. Also check uncommitted files and the build output with command 3 or 4. - There are a lot of findings
Review verified results first, then unverified and unknown; note fake values in test and example files as 'not an issue' in the list, but do not delete them. - Command 3 or 4 says the file was not found
Replace the .env and dist names in the command with your project's real file and build folder names; the README shows that the filesystem command accepts one or more paths.
- Step 4 · In the browser
Check GitHub's secret scanning alerts and push protection
What for: Know where new leaks will show up and which protection applies to your repository.
!You check this step yourself; the system should not move past it without your approval.
- Check whether the repository is public or private. If it is public, secret scanning runs automatically and for free; you see the alerts in the repository's 'Security and quality' tab. If the repository is already public, treat every key that ever got into it as exposed. GitHub's scanning does not undo a past leak and does not replace the TruffleHog scan.
- If your private repository belongs to an organization, check whether GitHub Secret Protection is enabled; according to the documentation, scanning on private repositories comes with this product and requires a Team or Enterprise plan. According to the documentation, secret scanning on private repositories owned by a personal account exists only on Enterprise Cloud with Enterprise Managed Users (or on Enterprise Server when Secret Protection is enabled); it is not available on an ordinary personal private repository.
- A private repository on a personal account has no GitHub scanning; for that repository you rely only on your own TruffleHog scan, which does not catch every key either.
- Push protection at the personal account level and push protection at the repository level are separate features: the personal one is on by default and blocks you from pushing keys to public repositories; the repository-level one requires Secret Protection and is off by default.
How you know it worked
- You noted which screen shows the alerts for your repository and which protection is enabled.
If you get stuck: problems specific to this step
- Your repository has no secret scanning section
The repository may be private with Secret Protection off, or your account may not be covered by this feature; in that case run the TruffleHog scan regularly and let the person who makes purchasing decisions know. - You bypassed push protection, thinking 'I'll fix it later'
According to the documentation, this choice creates an open alert; rotate the key before closing the alert.
- Step 5 · In the browser
If a key leaked, rotate it; do not just delete it
What for: Make sure the leaked key no longer works for anything.
!You check this step yourself; the system should not move past it without your approval.
- Identify which service the leaked key belongs to. Close off the cause of the leak (wrong file, public repository); otherwise the new key will leak too.
- Order: 1) create a new key in the service's panel, 2) replace it everywhere it is used (server, hosting environment variables, automations), 3) check that every component works with the new key, 4) only then revoke or delete the old key. Do not turn off the old key before the new one works.
- According to GitHub's documentation, the first step is to revoke or rotate the key; deleting the Git history is not enough, because other people's copies and forks remain.
- If a Supabase secret key leaked, the same order applies; for the legacy JWT-based service_role key, you disable the legacy keys in the same section instead (this can be undone).
- It makes sense to check the leaked key's usage and access logs on the service, but the Supabase documentation does not explain where to look after a leak. If you cannot find the service's log or usage screen, or you see something suspicious, show it to an expert. Seeing nothing in the logs does not mean 'no problem'.
How you know it worked
- The old key was revoked in the service panel (for Supabase legacy JWT keys this means a reversible disable, not a deletion).
- The site and app keep working with the new key.
If you get stuck: problems specific to this step
- Part of the site stopped working after you deleted the old key
This means you skipped a component during rotation; the Supabase documentation says to check that everything has moved to the new key before deleting the old ones. That is why you should first disable the legacy key and keep it in a state that can be re-enabled. - The key has been sitting in a public repository for a long time
Assume it has been used; after rotating, check the service's log screen if you can find it, and if you cannot, or you see anything unusual, ask for an expert review. No visible log entries does not mean you are safe.
- Step 6 · In the browser
List the state of user data in Supabase (this is not proof of security)
What for: See and list the current state: which tables have RLS off, where the secret key is stored, which findings need to be shown to an expert.
!You check this step yourself; the system should not move past it without your approval.
- In the Supabase Dashboard, check the API Keys section under Settings. Only the publishable key (starting with sb_publishable_) should go into the browser or the mobile app; the secret key starting with sb_secret_ should stay only on the server. With the legacy keys, anon and service_role are both long JWTs that start with eyJ, so you cannot tell which is which by looking at the value.
- Read which one is which from its label (anon or service_role) in the legacy key list in the Dashboard.
- If you find a value starting with eyJ in the site's build files, compare it character by character with the values in the Dashboard's legacy key list; service_role or sb_secret_ must not be in the client, while anon and sb_publishable_ are normal there. If you cannot tell which one it is, show it to an expert without pasting the value anywhere.
- Open the Security Advisor in the Supabase Dashboard and read each finding one by one. Do not dismiss a finding without understanding what it means.
- Run the read-only query below in the SQL Editor: it lists ALL tables in the public schema; those where the rowsecurity column is false are tables with row-level security (RLS) turned off, and true only tells you RLS is turned on. A table with RLS off can be read and written by every role that has access to it. Write the tables holding user data on your list; if other schemas are exposed to the API, look for those too.
- The query does not show partitioned or foreign tables, or the forced RLS (FORCE) status.
- What this query does not show: RLS being on does not mean every row is protected. A loose policy (for example, a rule that lets the anon role read every row), views and functions that bypass RLS, and Storage buckets do not appear in this query and are outside the scope of this guide. Show every table and policy you consider risky to an expert.
- Do not make changes in the live database, and do not add test users or test records to production. Leave the fix to the person who built the app.
- The two-user test this guide suggests (which the Supabase documentation does not walk through step by step) is done with the person who built the app, in a separate test project. Setting up the test project is outside the scope of this guide and is done by the person who built the app: they set up the same tables and policies (via migration files) in a separate Supabase test project; if there are no migration files, this path is not ready.
- Do not copy real user data into the test project. If the Supabase CLI is used, check which project it is linked to before pushing anything; pushing changes while accidentally linked to the live project breaks production. In the test project, create two test users, add a record with the first, then try to read and modify that record with the second and with an unauthenticated request. This test shows only the scenario you tried.
- Even if the test passes, it does not show that the system is secure. A local Supabase copy can also be used, but that is advanced and requires Docker.
rls-durumu.sql (read-only query) · sqlselect schemaname, tablename, rowsecurity from pg_tables where schemaname = 'public' order by tablename;
Read-only. Lists all tables in the public schema; rows where the rowsecurity column is false are tables with row-level security turned off.
How you know it worked
- You wrote the RLS status of every table holding user data, and the ones you consider risky, on your list.
- You recorded the results of the scenarios you tried in the test project as 'scenario tested'.
If you get stuck: problems specific to this step
- You want to set up the Supabase stack for local testing, but you do not have Docker
This path is optional and advanced: according to the documentation, the local stack runs in Docker containers. Before installing Docker Desktop, check that your company size fits the license terms (it is defined as free for small businesses with fewer than 250 employees and less than $10 million in revenue), or run the test in a separate Supabase test project. - RLS is on, but no data comes from the table
According to the documentation, once RLS is turned on, no data comes through the API until a policy is written; this is expected behavior, and the person who built the app defines the policy.
- Step 7 · In the browser
Review your deployment settings (Cloudflare only if you need it)
What for: See that keys are stored in the right place and that domain protection does not break the app.
!You check this step yourself; the system should not move past it without your approval.
- Check the environment variables in your hosting panel: secret keys should live only on the server side, as environment variables; they must not go into source code, CI scripts or files sent to the browser.
- Check that keys are not shared over chat, email or SMS; the Supabase documentation explicitly forbids this.
- If your domain is already on Cloudflare (this guide does not cover moving a domain to Cloudflare; if you plan to, read Cloudflare's own documentation and export your existing DNS records first): the Free plan is described as for personal and non-business-critical projects; for a commercial site, weigh your plan choice with Cloudflare. The plans page lists DDoS protection, WAF and 'simple bots' bot protection on the Free plan.
- Note the current setting before turning on Bot Fight Mode. If you turn it on, JavaScript Detections is turned on automatically and cannot be turned off; if you use a Content Security Policy, you need to allow Cloudflare's /cdn-cgi/challenge-platform/ path. According to the documentation, JavaScript Detections is not supported with a CSP whose nonce is set via a <meta> tag. The mode can challenge API or mobile traffic and cannot be bypassed with WAF rules.
- After turning it on, test login, forms, payment returns, webhooks, Supabase function calls and email links.
- If something breaks, go to Security > Settings in the Cloudflare dashboard, filter by 'Bot traffic', turn off Bot Fight Mode and go back to the previous setting.
- If you do not use Cloudflare, skip the Cloudflare part of this step; the basic check does not require Cloudflare.
How you know it worked
- The locations of the secret keys are written on your list, and there are no secret keys in the source code.
- If you use Cloudflare, the Bot Fight Mode status and the fact that the app still works are noted.
If you get stuck: problems specific to this step
- After enabling Cloudflare, the app's API calls, webhooks or payment returns are being rejected
According to the documentation, Bot Fight Mode can challenge API and mobile traffic and cannot be bypassed with a WAF rule. First turn the mode off and confirm the problem goes away; for more granular control, Cloudflare recommends Bot Management for Enterprise, which means there is no fine-tuning on the Free plan. - You do not know which environment variable holds the key
Open the environment variables section in your hosting panel and look at the names; if you cannot find out who wrote it, rotate the key and set the variable again.
- Step 8 · In the browser
Run an accessibility audit and set up uptime monitoring
What for: See the site's usability issues and find out if it goes down.
!You check this step yourself; the system should not move past it without your approval.
- Open the site's key pages in Chrome, open DevTools and run the Accessibility category from the Lighthouse tab. Write the issues it finds on your list; Lighthouse also lists 'manual checks' items you need to review by hand, so check those separately.
- In Better Stack, choose Create monitor from the Monitors section, enter the site's address and set up an HTTP status code check (the documentation says a 2XX success code is expected). The documentation does not describe redirect behavior; if you get alarms, check the status code the monitor shows and enter the final address if needed. Set the alert option in the 'How should we escalate incidents?' section.
- Choose email or Slack as the alert channel ('Slack & e-mail alerts' is listed on the free plan). The alert should go to the owner named on the scope page.
- To test alerts, do not break the live monitor's address: create a separate temporary test monitor with an address that does not exist, confirm the alert reaches the owner, then delete the test monitor.
- If you want to collect in-app error and performance data, consider SigNoz as further reading; the basic check does not require it.
How you know it worked
- The results of the Lighthouse accessibility report were added to your list.
- There is an active monitor in Better Stack, and the test alert reached the owner.
If you get stuck: problems specific to this step
- It is unclear whether the Better Stack free plan is suitable for a business site
The pricing page describes the free plan as for personal projects; for business use, ask Better Stack or choose a paid plan. - The alert email did not arrive
Check your spam folder first, then check the monitor's alert channel and email address in Better Stack. - The site has a redirect and the monitor raises an alarm
The documentation does not describe redirect behavior; check the status code the monitor shows and, if needed, enter the final address after the redirect.
- Step 9 · In an app
Turn the findings into a fix list with owners and dates
What for: At the end of the check, the work to be done and its limits are clear.
!You check this step yourself; the system should not move past it without your approval.
- Collect the findings from the previous steps in one list: finding, location, priority (leaked keys that are still valid at the top), owner and target date.
- Do not write the key itself on the list; write its type, location and commit number. When sharing the list, findings or terminal output with a support service, make sure they contain no key values.
- For every item that cannot be fixed or that you are unsure about, write 'needs expert review'.
- At the bottom of the list, write this note: 'This is a basic pre-launch check. It is not a security certification or a penetration test, and it does not show that the system is secure.'
- Repeat the check before launch and after major changes; add the date to the list.
How you know it worked
- Every finding on the one-page list has an owner and a date.
- The limitations note is written at the end of the list.
If you get stuck: problems specific to this step
- The list is very long and it is unclear where to start
Start with valid key leaks, then user data left publicly accessible, then monitoring and accessibility issues. - You are not sure whether a finding is a real risk
Do not close it yourself; read the relevant service's documentation or ask for an expert review, and mark it 'under review' on the list.
Is the setup working? Check these
- The TruffleHog scan ran, and every finding is written on the fix list with an owner.
- If a key leaked, the old key was revoked in the panel (or disabled, for a Supabase legacy key), and the new one is used in every component.
- The RLS status of every table holding user data is written down, and risky findings are marked to be shown to an expert; the test results describe only the scenario tested.
- There is a Lighthouse report and at least one uptime monitor; the test alert reached the owner.
What you pay for
The items are separate, not a total; which ones you need depends on the path you set up. Prices change, so check the source of each item.
- No costTruffleHog
AGPL-3.0 open source; the documentation lists no fee for using it. source
- SubscriptionGitHub Secret Protection
For organization projects on private repositories, secret scanning comes with this product and requires a GitHub Team or Enterprise plan; the price is on GitHub's billing page. source
- SubscriptionGitGuardian ggshield (alternative)
The pricing page lists the Starter plan at $0, for up to 25 developers and 10,000 API calls per month. The comparison table says 'Limited' for the ggshield CLI; the page does not make clear which plan column this belongs to. Personal/commercial use terms are not stated on the page. (October 17, 2026) source
- SubscriptionBetter Stack monitoring
The free plan includes 10 monitors and heartbeats, and Slack and email alerts, and is described as for personal projects; for a business, check the plan terms with Better Stack. source
- SubscriptionCloudflare (only if your domain is there)
The Free plan is $0 and described as for personal or non-business-critical projects; higher plans are paid. (October 17, 2026) source
- SubscriptionDocker Desktop (only for local Supabase testing)
Free use condition: a small business with fewer than 250 employees and less than $10 million in annual revenue; larger ones need a paid plan. (October 17, 2026) source
- Setup serviceConfiguration and fix support
You can get support from DijiKoçum to fix the issues found and configure the settings. Independent penetration testing and expert security review are not part of this service; if needed, you are referred to a separate expert.
- SubscriptionSeparate Supabase test project (only for the two-user test)
The free plan's project limit or cost is not stated here; check Supabase's plans and pricing page before creating a test project. source
Sources
- GitHub Docs: secret scanning · Official documentation · read October 17, 2026
- GitHub Docs: push protection · Official documentation · read October 17, 2026
- GitHub Changelog: push protection for free users (February 29, 2024) · Vendor page · read October 17, 2026
- GitHub Docs: GitHub Advanced Security (Secret Protection purchase requirements) · Official documentation · read October 17, 2026
- GitHub Docs: Removing sensitive data from a repository · Official documentation · read October 17, 2026
- TruffleHog README · Source code · read October 17, 2026
- TruffleHog v3.99.2 release · Source code · read October 17, 2026
- GitGuardian pricing · Vendor page · read October 17, 2026
- ggshield README · Source code · read October 17, 2026
- Supabase Docs: Row Level Security · Official documentation · read October 17, 2026
- Supabase Docs: API keys · Official documentation · read October 17, 2026
- Supabase Docs: database testing · Official documentation · read October 17, 2026
- Supabase Docs: local development with the CLI · Official documentation · read October 17, 2026
- PostgreSQL documentation: the pg_tables view · Official documentation · read October 17, 2026
- Cloudflare: Network and CDN plans · Vendor page · read October 17, 2026
- Cloudflare Docs: Bot Fight Mode · Official documentation · read October 17, 2026
- Docker Docs: Docker Desktop license · Official documentation · read October 17, 2026
- Chrome for Developers: Lighthouse overview · Official documentation · read October 17, 2026
- Better Stack pricing · Vendor page · read October 17, 2026
- Better Stack Docs: getting started with monitoring · Official documentation · read October 17, 2026
- Strix README · Source code · read October 17, 2026
- Microsoft Learn: Get-FileHash · Official documentation · read October 17, 2026
You can set it up yourself; we can do the step you get stuck on together
Check the steps you want. The request form receives the system name and your selected steps as a visible summary that you can edit. There is no need to share any password or API key.
If you are looking for another route
The guide is free and needs no sign-up; you can follow the steps here yourself. If you’d like professional support at some point, choose the option that fits your needs. This doesn’t affect the rankings in the guide.