ScanOp is a lightweight web application for managing and monitoring Windows Defender antivirus scans across a network. It provides administrators with a centralized dashboard to view the security status of Windows laptops, trigger remote scans, and generate PDF/CSV reports.
| Category | Feature | Description |
|---|---|---|
| 🛡️ Security | Centralized Management | Trigger Quick or Full Scans via the web dashboard for individual laptops or the entire network. |
| 📊 Monitoring | Live Status | View client connection status, last scan times, and detected threats at a glance. |
| 📈 Reporting | Daily Reports | Export daily summaries as PDF or CSV for auditing purposes. |
| 🔄 Updates | Remote Updates | Deploy client script updates automatically via GitHub directly from the web interface. |
| 🔌 Architecture | Secure API | Polling-based architecture. Clients connect via HTTPS and authenticate using an API key. |
Deploying via Docker is the recommended approach.
Download the compose file to your host machine:
curl -o docker-compose.yml https://raw.githubusercontent.com/BitWuehler/ScanOp/main/docker-compose.ymlEdit the downloaded docker-compose.yml and set your variables:
SECRET_KEY: A random string for session security.SERVER_API_KEY: The API key clients will use to authenticate.APP_PASSWORD: A Bcrypt-hash for the web dashboard login (You can usepython generate_secrets.pylocally to generate all three keys at once).
Start the container:
docker compose up -dTip
Updating: To update the server to the latest release, run docker compose pull && docker compose up -d. The database in ./data is persistent.
A PowerShell installer is provided to connect Windows laptops to the server.
- Go to the Releases page on GitHub.
- Download and extract
ScanOp-Client.zipfrom the latest release. - Run
start_installer.cmdas Administrator. - Follow the prompts to enter your server URL,
SERVER_API_KEY, and a client alias.
(Unattended Installation: Place a client_config.json file in the extraction folder before running the installer to bypass interactive prompts).
For development purposes:
- Clone & Setup:
git clone https://github.com/BitWuehler/ScanOp.git cd ScanOp python -m venv .venv source .venv/bin/activate # Windows: .\.venv\Scripts\activate pip install -r requirements.txt
- Database & Environment:
Copy
.env.exampleto.envand adjust the variables. Apply database migrations:alembic upgrade head
- Start Server:
uvicorn main:app --reload