SiteScan is a comprehensive, open-source web application designed to help developers, security researchers, and system administrators quickly gather, analyze, and present open data about any given URL.
Simply feed SiteScan a URL, and it will instantly run over 20 concurrent checks to analyze the target's configuration, security posture, and infrastructure.
SiteScan performs a wide array of non-intrusive OSINT and configuration checks, including:
- Server Info: IP address, Hosting Provider, ASN, and geographic location.
- DNS Records: A, AAAA, MX, TXT, NS, CNAME, SOA, and PTR records.
- DNSSEC: Validates if the domain is protected by DNS Security Extensions.
- SSL/TLS Certificates: Issuer details, expiration dates, and cipher suites.
- HTTP Security Headers: Analysis of HSTS, CSP, X-Frame-Options, and more.
- Mail Security: Verification of SPF, DKIM, and DMARC records to prevent spoofing.
- Open Ports: Quick scans of common web and infrastructure ports (80, 443, 21, 22, etc.).
- Firewall/WAF Detection: Detects if the site is behind Cloudflare, AWS WAF, Sucuri, etc.
- Threat Intelligence: Cross-references the domain and IP against public blocklists and threat feeds.
- Robots.txt & Sitemap: Extracts crawling rules and sitemap locations.
- Security.txt: Checks for the presence of a responsible disclosure policy.
- Cookies: Analyzes cookie flags (Secure, HttpOnly, SameSite) for vulnerabilities.
- Redirects: Follows and maps out the complete HTTP redirect chain.
- Blazing Fast: Powered by an Astro frontend and a Node.js API backend.
- Premium Light Theme: An aesthetically pleasing, responsive, and dynamic user interface.
- Non-Technical Summaries: Highly technical outputs are automatically simplified and summarized into easily actionable insights.
- Micro-Animations & Interaction: A dynamic and engaging design out-of-the-box.
- No Database Required: Fully stateless and easy to deploy.
- Frontend: Astro, React, Svelte
- Styling: SCSS, Emotion, Custom CSS Variables
- Backend: Node.js, Express
- Build: Vite, ESBuild
graph TD
Client[π¨βπ» User] -->|Enters URL| Frontend[π₯οΈ Astro / React Frontend]
Frontend -->|Initiates Scan| Backend{βοΈ Node.js Express API}
Backend -->|DNS Queries| DNS[(π DNS Servers)]
Backend -->|TCP/TLS Probes| WebServer[(π Target Web Server)]
Backend -->|Whois/Geo IP| OSINT[(π OSINT Data Sources)]
Backend -->|Threat Analysis| APIs[π‘οΈ 3rd-Party APIs<br/>Shodan, VirusTotal, etc.]
DNS -.->|Records & DNSSEC| Backend
WebServer -.->|Headers & SSL Certs| Backend
OSINT -.->|Server Info| Backend
APIs -.->|Threat Intelligence| Backend
Backend -.->|Consolidated JSON Report| Frontend
Make sure you have Node.js (v18+) and npm/yarn installed.
-
Clone the repository
git clone https://github.com/Subhan-Haider/site-scan.git cd site-scan -
Install dependencies
npm install
-
Run the development server
npm run dev
This will start both the backend API (port 3001) and the Astro frontend (port 4321) concurrently.
-
Visit the app Open
http://localhost:4321in your browser.
SiteScan works completely out of the box. However, you can configure custom API keys for third-party services to enhance the checks.
Rename .env.sample to .env and add your keys!
This project is maintained by Subhan Haider. Check out some of my other projects and sponsors:
- Humanize AI - Bypass AI detectors with our state-of-the-art text humanization engine.
- Image Converter Pro - Studio-grade image conversion. Batch process entirely in your browser.
- CodeLens
- BlizFlow
- AdShield VPN
- Emoji Smuggle
- Pixel Pong
- Stealth Vault
- LootOps
- Media Server
You can deploy SiteScan easily via Docker or on a bare-metal server.
docker build -t sitescan .
docker run -p 4321:4321 -p 3001:3001 -d sitescanNote: Make sure to pass your .env variables into the Docker container for API keys to work.
If you prefer running directly on a Linux server without Docker:
- Clone the repository
git clone https://github.com/Subhan-Haider/site-scan.git cd site-scan - Install dependencies
npm install --legacy-peer-deps
- Build the frontend
npm run build
- Start the API and Frontend (You can use PM2 to keep it running in the background)
npm install -g pm2 pm2 start server.js --name "sitescan-api" pm2 start "npm run preview" --name "sitescan-frontend"
By default, the backend API runs on 3001 and the frontend on 4321.
To change this, edit your .env file or pass environment variables:
# Change Backend Port
PORT=8080 npm run start
# Change Frontend Port (Astro)
PORT=80 npm run previewTo get the latest features and bug fixes, simply pull the latest code and rebuild:
cd site-scan
git pull origin main
npm install --legacy-peer-deps
npm run build
# Then restart your docker container or PM2 instances
pm2 restart allContributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature) - Commit your Changes (
git commit -m 'Add some AmazingFeature') - Push to the Branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is open-source and available under the GNU General Public License v3.0 (GPLv3).
