Website-downloader README

The project's README from github.com/AhmadIbrahiim/Website-downloader. As one markdown file: README.md.

Complete Website Downloader 💾

Download the complete source code of any website (including all assets) 🔨.

👉 Live Demo: https://website-downloader.onrender.com

enter image description here

CodeFactor

Description 📒

Website downloader works with wget and archiver to download all websites assets and compress then sends it back to the user through socket channel

wget params the being used

wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org

Explanation of the various flags:

Deploy on cloud providers

Run on Replit Remix on Glitch Deploy on Railway Deploy to Cyclic Deploy to Koyeb Deploy to Render

Requirements 📦

How to run it 🤔

Optional settings

Variable Default What it does
PORT 3000 Port the server listens on
DOWNLOAD_QUOTA 100m Size ceiling passed to wget, so one request cannot fill the disk
DOWNLOAD_TIMEOUT_MS 300000 How long a single download may run before it is stopped

How To Contribute:

Liked it ? You can buy a coffee:

Buy Me A Coffee

Thank you,

Email: [email protected]

https://www.ahmed-ibrahim.com

Website-downloader (AhmadIbrahiim/Website-downloader)

Searching Database…

What is this?A self-hosted Node.js app that downloads the complete source code of any website, including its JavaScript, stylesheets, and images, so you can keep an offline copy.
Is this a command-line tool or a web app?It is a small web app: you open the UI, submit a URL, and the server mirrors the site with wget then streams the zipped result back to your browser over a socket connection.
How do I get it running?Clone the repo, run npm install, then npm start; the server listens on port 3000 by default.
Do I need anything besides Node.js?Yes, Node.js 16+ and wget must be installed and reachable on PATH since the app shells out to wget to do the actual downloading.
Is there a limit on how much it will download?Yes, by default a single request is capped at a 100MB size quota and a 5-minute (300000ms) timeout, both adjustable via environment variables.
Does it work on Windows and macOS, or just Linux?It works on all three since it just needs wget installed: apt install wget on Debian/Ubuntu, brew install wget on macOS, or winget install JernejSimoncic.Wget on Windows.
What wget flags does it actually run?It runs wget --mirror --convert-links --adjust-extension --page-requisites --no-parent, which recursively grabs the site, rewrites links for offline viewing, adds proper file extensions, pulls in page assets, and stops it from crawling into parent directories.
How does it bundle the downloaded site before sending it to me?After wget mirrors the site to disk, the app uses the archiver library to compress the files into an archive that is then sent back over the socket connection.
Can I deploy this somewhere instead of running it locally?The README has a 'Deploy on cloud providers' section hinting at one-click hosted deployment options, though it does not list the specific providers or steps.
Size
4.2 MB
Stars
6K
Updated
CommitAug 12
Age
6y
Commits · 90 Days