AhmadIbrahiim/Website-downloader
๐ก Download the complete source code of any website (including all assets). [ Javascripts, Stylesheets, Images ] using Node.js
About AhmadIbrahiim/Website-downloader
AhmadIbrahiim/Website-downloader is an open-source project on GitHub, mainly written in HTML. ๐ก Download the complete source code of any website (including all assets). [ Javascripts, Stylesheets, Images ] using Node.js It currently holds 5,904 stars and 1,365 forks with 26 open issues, and was last pushed on 2026-08-12 (repository created 2019-10-26).
Project Overview
Git Homed tracks it on the Today's Trending board.
GitHub Repository Details
README
Complete Website Downloader ๐พ
Download the complete source code of any website (including all assets) ๐จ.๐ Live Demo: https://website-downloader.onrender.com
Description ๐
Website downloader works withwget 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:
- --mirror โ Makes (among other things) the download recursive.
- --convert-links โ convert all the links (also to stuff like CSS stylesheets) to relative, so it will be suitable for offline viewing.
- --adjust-extension โ Adds suitable extensions to filenames (html or css) depending on their content-type.
- --page-requisites โ Download things like CSS style-sheets and images required to properly display the page offline.
- --no-parent โ When recursing do not ascend to the parent directory. It useful for restricting the download to only a portion of the site
Deploy on cloud providers
Requirements ๐ฆ
- Node.js 16 or newer
wgeton thePATH. The app shells out to it, and nothing will download without it:- Debian/Ubuntu:
apt install wget - macOS:
brew install wget - Windows:
winget install JernejSimoncic.Wget
How to run it ๐ค
git clone https://github.com/AhmadIbrahiim/Website-downloader.gitcd Website-downloader$ npm install$ npm starthttp://localhost:3000/
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:
- Open Issue(s) with any bugs you notice.
- Please create Pull Requests if you think it would be an added value towards our program.
Liked it ? You can buy a coffee:
Thank you,
Email: [email protected]
https://www.ahmed-ibrahim.com
