This commit is contained in:
Hadi
2026-04-06 15:12:34 +02:00
commit 4989225671
117 changed files with 11454 additions and 0 deletions

172
front/src/pages/help.astro Normal file
View File

@@ -0,0 +1,172 @@
---
import Layout from "@src/layouts/Layout.astro";
---
<Layout title="How it works">
<div class="max-w-3xl mx-auto px-4 pb-4">
<div class="mb-6">
<a href="/" class="btn btn-ghost btn-sm gap-1">← Back</a>
</div>
<div class="mb-8">
<h1 class="text-2xl font-bold tracking-tight">How it works</h1>
<p class="text-base-content/50 text-sm mt-1">
A guide to iknowyou: concepts, tools, profiles, and configuration.
</p>
</div>
<div class="flex flex-col gap-8">
<section class="flex flex-col gap-3">
<h2 class="text-lg font-bold flex items-center gap-2">
<span class="size-2 rounded-full bg-primary inline-block"></span>
What is it?
</h2>
<p class="text-base-content/70 text-sm leading-relaxed">
<strong>Iknowyou</strong> (IKY) is an OSINT aggregation platform. It runs multiple
open-source intelligence tools against a target in parallel and presents the results
in a unified interface. Targets can be email addresses, usernames, phone numbers, IP
addresses, domains, and more.
</p>
<p class="text-base-content/70 text-sm leading-relaxed">
Instead of running each tool manually, IKY handles orchestration, config management,
and result rendering so you can focus on analysis.
</p>
</section>
<div class="divider my-0"></div>
<section class="flex flex-col gap-3">
<h2 class="text-lg font-bold flex items-center gap-2">
<span class="size-2 rounded-full bg-primary inline-block"></span>
Tools
</h2>
<p class="text-base-content/70 text-sm leading-relaxed">
Each <strong>tool</strong> is a Go module that knows how to query one data source
(a website, an API, a local binary...). Tools declare:
</p>
<ul class="list-disc list-inside text-base-content/70 text-sm leading-relaxed space-y-1 ml-2">
<li>Which <strong>input types</strong> they accept (email, username, IP...)</li>
<li>Optional <strong>configuration fields</strong> (API keys, options)</li>
<li>Whether they require an <strong>external binary</strong> to be installed</li>
</ul>
<p class="text-base-content/70 text-sm leading-relaxed">
The <a href="/tools" class="link link-primary">Tools page</a> shows all registered tools
grouped by status:
</p>
<div class="flex flex-col gap-2 ml-2">
<div class="flex items-center gap-2 text-sm">
<span class="size-2 rounded-full bg-success shrink-0"></span>
<span><strong>Active</strong> - ready to run</span>
</div>
<div class="flex items-center gap-2 text-sm">
<span class="size-2 rounded-full bg-warning shrink-0"></span>
<span><strong>Active: config missing</strong> - needs an API key or required field</span>
</div>
<div class="flex items-center gap-2 text-sm">
<span class="size-2 rounded-full bg-error shrink-0"></span>
<span><strong>Active: unavailable</strong> - required binary not found on the system</span>
</div>
<div class="flex items-center gap-2 text-sm">
<span class="size-2 rounded-full bg-base-content/20 shrink-0"></span>
<span><strong>Disabled</strong> - excluded by the selected profile</span>
</div>
</div>
</section>
<div class="divider my-0"></div>
<section class="flex flex-col gap-3">
<h2 class="text-lg font-bold flex items-center gap-2">
<span class="size-2 rounded-full bg-primary inline-block"></span>
Profiles
</h2>
<p class="text-base-content/70 text-sm leading-relaxed">
A <strong>profile</strong> is a named search configuration. When you start a search,
you pick which profile to use. Profiles control:
</p>
<ul class="list-disc list-inside text-base-content/70 text-sm leading-relaxed space-y-1 ml-2">
<li><strong>Enabled list</strong> (whitelist): if set, only these tools run</li>
<li><strong>Disabled list</strong> (blacklist): these tools are always skipped</li>
<li><strong>Tool overrides</strong>: per-profile config that overrides global settings for specific tools</li>
<li><strong>Notes</strong>: a description of what the profile is for</li>
</ul>
<p class="text-base-content/70 text-sm leading-relaxed">
Two profiles are built-in and cannot be modified:
</p>
<div class="flex flex-col gap-2 ml-2">
<div class="card bg-base-200 p-3 text-sm">
<span class="font-mono font-bold">default</span>
<p class="text-base-content/60 text-xs mt-1">
All tools active with default settings. No restrictions.
</p>
</div>
<div class="card bg-base-200 p-3 text-sm">
<span class="font-mono font-bold">hard</span>
<p class="text-base-content/60 text-xs mt-1">
Aggressive mode. All tools active, including those that may send
notifications or leave traces at the target.
</p>
</div>
</div>
<p class="text-base-content/70 text-sm leading-relaxed">
You can create custom profiles on the <a href="/profiles" class="link link-primary">Profiles page</a>.
</p>
</section>
<div class="divider my-0"></div>
<section class="flex flex-col gap-3">
<h2 class="text-lg font-bold flex items-center gap-2">
<span class="size-2 rounded-full bg-primary inline-block"></span>
Configuration &amp; Overrides
</h2>
<p class="text-base-content/70 text-sm leading-relaxed">
Tool configuration works in two layers:
</p>
<ol class="list-decimal list-inside text-base-content/70 text-sm leading-relaxed space-y-2 ml-2">
<li>
<strong>Global config</strong>: set on the
<a href="/tools" class="link link-primary">Tools page</a>. Applied to every
search regardless of profile.
</li>
<li>
<strong>Profile override</strong>: set inside a profile. Takes precedence over
global config when that profile is used. Useful when you want a tool to behave
differently in specific contexts (e.g. slower rate-limiting in a "quiet" profile).
</li>
</ol>
<p class="text-base-content/70 text-sm leading-relaxed">
Config is stored in <code class="font-mono bg-base-300 px-1 rounded text-xs">config.yaml</code>.
Built-in profiles are hardcoded in Go and are never written to disk.
</p>
</section>
<div class="divider my-0"></div>
<section class="flex flex-col gap-3">
<h2 class="text-lg font-bold flex items-center gap-2">
<span class="size-2 rounded-full bg-primary inline-block"></span>
How a search runs
</h2>
<ol class="list-decimal list-inside text-base-content/70 text-sm leading-relaxed space-y-2 ml-2">
<li>You enter a target, select its type (email, username...) and pick a profile.</li>
<li>
The backend filters tools by input type and the profile's enabled/disabled rules,
then skips any tool with a missing required config field.
</li>
<li>All eligible tools run in parallel against the target.</li>
<li>
The frontend polls for results and renders them progressively as each tool finishes.
</li>
</ol>
<p class="text-base-content/70 text-sm leading-relaxed">
A search can be cancelled at any time from the results page.
Completed searches are kept in memory.
</p>
</section>
</div>
</div>
</Layout>