Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Argus | OSINT Dossier Generator


Logo


A local full-stack web application for organizing user-provided OSINT notes into clean analyst-style dossier PDFs. It does not scrape, enrich, look up accounts, or collect external intelligence. All data is entered manually by the user.

Features

  • FastAPI backend with JSON APIs
  • SQLite storage through SQLAlchemy
  • Plain HTML, Tailwind CSS, and vanilla JavaScript frontend
  • Dynamic dossier templates from JSON files
  • Person, company, Telegram, social profile, crypto wallet, phone, email/username, and custom templates
  • Evidence upload for images and PDFs
  • Dossier-level target photo upload with file picker, drag and drop, and clipboard paste
  • Structured relatives/associates mini-profiles inside person dossiers
  • Browser preview using the report layout
  • PDF export with WeasyPrint
  • Flexible custom sections per dossier
  • Runtime localization for English, Ukrainian, and Russian
  • Portable JSON dossier export/import for offline collaboration

Setup

Create and activate a virtual environment, then install dependencies:

python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Run the app:

uvicorn app.main:app --reload

Open:

http://127.0.0.1:8000

SQLite data is stored in dossiers.db. Uploaded files are stored in uploads/. Generated PDFs are written to generated_pdfs/.

Create a Dossier

  1. Open the dashboard.
  2. Choose Create dossier.
  3. Select a template.
  4. Fill the structured fields.
  5. Add custom sections if needed.
  6. Add a target photo if needed.
  7. Save the dossier.
  8. Add evidence items from the editor sidebar.
  9. Use Preview to inspect the report.
  10. Use Export PDF to download the PDF.
  11. Use Export JSON to share a complete portable dossier with another investigator.

Collaborate with Portable JSON

Use JSON on the dashboard or Export JSON in the editor to download the current dossier as a pretty-formatted JSON file. The export includes the dossier data, custom sections, evidence metadata, target photo, and uploaded evidence files when those files are available locally.

Another investigator can use Import JSON on the dashboard to recreate the dossier locally and continue editing. Imported dossiers behave like locally created dossiers and can be exported again for another handoff.

Add Evidence

Evidence items support:

  • Title
  • Source URL
  • Description
  • Date found
  • Confidence level
  • Tags
  • Optional image or PDF attachment

Uploads are limited to images and PDFs up to 8 MB. Filenames are replaced with safe generated names before storage.

Add New Templates

Create a new JSON file in app/dossier_templates/:

{
  "id": "example",
  "name": "Example Dossier",
  "description": "A short description.",
  "fields": [
    {
      "name": "subject",
      "label": "Subject",
      "type": "text",
      "required": true
    },
    {
      "name": "summary",
      "label": "Summary",
      "type": "textarea",
      "required": false
    }
  ],
  "sections": ["Summary", "Evidence", "Analyst Notes"]
}

Supported field types:

  • text
  • textarea
  • number
  • date
  • list
  • table
  • url
  • email
  • phone
  • select
  • markdown

Restart the app after adding or changing templates. Template definitions are cached for speed.

API Routes

  • GET /api/templates
  • GET /api/templates/{template_id}
  • GET /api/dossiers
  • POST /api/dossiers
  • GET /api/dossiers/{dossier_id}
  • PUT /api/dossiers/{dossier_id}
  • DELETE /api/dossiers/{dossier_id}
  • GET /api/dossiers/{dossier_id}/export
  • POST /api/dossiers/import
  • POST /api/dossiers/{dossier_id}/evidence
  • DELETE /api/evidence/{evidence_id}
  • GET /api/dossiers/{dossier_id}/preview
  • GET /api/dossiers/{dossier_id}/pdf

Safety Note

This application is for organizing data you already have permission to process. Verify sources before including them in a dossier.

About

A local full-stack web application for organizing user-provided OSINT notes into clean analyst-style dossier PDFs

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages