{"id":11133270,"url":"https://codeberg.org/nobody/LocalCDN","last_synced_at":"2025-09-21T13:32:07.362Z","repository":{"id":51022071,"uuid":"5014","full_name":"nobody/LocalCDN","owner":"nobody","description":"A web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported resources locally, and injects them into the environment.","archived":false,"fork":false,"pushed_at":null,"size":90393,"stargazers_count":335,"open_issues_count":2,"forks_count":15,"subscribers_count":null,"default_branch":"main","last_synced_at":"2023-11-15T22:31:25.566Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://www.localcdn.org/","language":"","has_issues":true,"has_wiki":true,"has_pages":null,"mirror_url":"f","source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://codeberg.org/repo-avatars/5014-6cc14ee9c85003bda3adb1d71762c306","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":"audit/README.md","citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-05-21T03:48:12.000Z","updated_at":"2023-11-15T22:31:25.567Z","dependencies_parsed_at":"2022-08-02T19:45:16.791Z","dependency_job_id":null,"html_url":"https://codeberg.org/nobody/LocalCDN","commit_stats":null,"previous_names":[],"tags_count":102,"template":null,"template_full_name":null,"purl":"pkg:forgejo/nobody/LocalCDN","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/repositories/nobody%2FLocalCDN","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/repositories/nobody%2FLocalCDN/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/repositories/nobody%2FLocalCDN/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/repositories/nobody%2FLocalCDN/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/owners/nobody","download_url":"https://codeberg.org/nobody/LocalCDN/archive/main.zip","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/repositories/nobody%2FLocalCDN/sbom","scorecard":null,"host":{"name":"codeberg.org","url":"https://codeberg.org","kind":"forgejo","repositories_count":34662,"owners_count":723,"icon_url":"https://github.com/Codeberg-org.png","version":null,"created_at":"2022-08-01T13:30:46.733Z","updated_at":"2024-07-18T11:23:32.687Z","status":"http_error","status_checked_at":"2025-09-21T02:00:13.366Z","response_time":53,"last_error":"HTTP 403: Forbidden","robots_txt_status":"error_403","robots_txt_updated_at":"2025-07-24T06:49:27.136Z","robots_txt_url":"https://codeberg.org/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/codeberg.org/owners"}},"keywords":[],"created_at":"2024-06-13T13:11:31.668Z","updated_at":"2025-09-21T13:32:05.608Z","avatar_url":"https://codeberg.org/repo-avatars/5014-6cc14ee9c85003bda3adb1d71762c306","language":"","funding_links":["https://www.buymeacoffee.com/LocalCDN","https://opencollective.com/LocalCDN"],"categories":["Browser Extensions","Uncategorized"],"sub_categories":["Notable Mentions","Uncategorized"],"readme":"# LocalCDN\n\n[![Translate](https://www.localcdn.org/badges/translation.svg)](https://hosted.weblate.org/projects/localcdn/localcdn/) [![CDNs](https://www.localcdn.org/badges/cdn.svg)](https://codeberg.org/nobody/LocalCDN/src/branch/main/core/mappings.js) [![Frameworks](https://www.localcdn.org/badges/frameworks.svg)](https://codeberg.org/nobody/LocalCDN/src/branch/main/resources/) [![Firefox Add-on](https://www.localcdn.org/badges/amo-version.svg)](https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/) [![Chrome Add-on](https://www.localcdn.org/badges/chrome-version.svg)](https://chrome.google.com/webstore/detail/localcdn/njdfdhgcmkocbgbhcioffdbicglldapd/) [![Buy Me a Coffee](https://www.localcdn.org/badges/buymeacoffee.svg)](https://www.buymeacoffee.com/LocalCDN) [![opencollective](https://www.localcdn.org/badges/opencollective.svg)](https://opencollective.com/LocalCDN)\n\nLocalCDN is a fork of Decentraleyes and a web browser extension that emulates Content Delivery Networks to improve your online privacy. It intercepts traffic, finds supported resources locally, and injects them into the environment. All of this happens automatically, so no prior configuration is required. Feel free to use the following [testing utility](https://www.localcdn.org/test/) to find out if you are properly protected. For more information, please read the [tutorial](https://www.localcdn.org/tutorial) or the [Wiki](https://codeberg.org/nobody/LocalCDN/wiki). You can also [download](https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/) the extension directly from Mozilla and just try it.\n\n### What are the advantages?\n\n* Supports cloud storage by browsers sync feature (Firefox Sync or own Sync-Server) if enabled \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* Removes integrity and crossorigin tags from embedded script and style elements to replace even more frameworks \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e\n* Font Awesome  \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e\n* Google Material Icons \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e\n* jQuery \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* Bootstrap CSS \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e\n* Bootstrap JavaScript \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* AngularJS, AngularJS-Animate, AngularJS-Sanitize, AngularJS-Cookies and AngularJS-Touch \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* React, Vue.js, Chart.js and many other frameworks/libraries \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* MathJax (minimal) \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* TinyMCE (without plugins) \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* Internal statistics about CDNs and frameworks (day, week, month, year) \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* Export/Import your config \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n* Prepared rules for uBlock Origin, uMatrix, AdGuard and NoScript \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-firefox-25.png\"\u003e \u003cimg width=\"15px\" src=\"https://www.localcdn.org/img/icon-chrome-25.png\"\u003e\n\n\u003e **Note:** LocalCDN is no silver bullet, but it does prevent a lot of websites from making you send these kinds of requests. Ultimately, you can make LocalCDN block requests for any missing CDN resources, too.\n\n#### How does it work?\nLocalCDN uses redirection for certain requests. There is a [mapping file](https://codeberg.org/nobody/LocalCDN/src/branch/main/core/mappings.js#L71) that lists the source (all CDNs and the path to the frameworks) and a [resource file](https://codeberg.org/nobody/LocalCDN/src/branch/main/core/resources.js#L328) that defines the destination.\n\nCurrently only JavaScript and CSS files are redirected. However, some CSS files internally refer to other files, e.g. Font Awesome. All requests are redirected to a local file, e.g. [jQuery](https://codeberg.org/nobody/LocalCDN/src/branch/main/resources/jquery). This is the reason why the extension is over 17 MB in size. Only if LocalCDN cannot find a local resource (and the option is enabled), a request will be blocked.\n\nAn adblocker (e.g. uBlock Origin, uMatrix or AdGuard) decides which requests are allowed. Only if your adblocker allows a request, it will be intercepted by LocalCDN. LocalCDN catches the request after an adblocker and not before.\n\n## What's the different of LocalCDN in comparison to other CDN emulators?\n\n#### LocalCDN\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/replacement_html_filter_off.png\" alt=\"LocalCDN\" width=\"500\"/\u003e](screenshots/replacement_html_filter_off.png)\n\n#### LocalCDN with activated HTML filter (optional)\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/replacement_html_filter_on.png\" alt=\"LocalCDN with activated HTML filter (optional)\" width=\"500\"/\u003e](screenshots/replacement_html_filter_on.png)\n\n#### Other CDN emulators\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/replacement_other_cdn_emulators.png\" alt=\"Other CDN emulators\" width=\"500\"/\u003e](screenshots/replacement_other_cdn_emulators.png)\n\n#### :warning: **Important** :warning:\n\nIn some cases, LocalCDN is not allowed to replace requested resources because the website sets up a strong Same Origin Policy (SOP). Please read [Broken JavaScript or CSS on some websites](https://codeberg.org/nobody/LocalCDN/wiki/Home#user-content-7-a-website-looks-weird-or-cannot-be-used-if-i-deactivate-localcdn-everything-works-what-is-the-problem) before opening an issue. [Here](https://www.localcdn.org/test/check) you can also find an online tool to test a website. This test covers the most common causes and provides solutions.\n\n## Screenshots\n\n#### Light\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_light.png\" alt=\"Light Theme\" width=\"500\"/\u003e](screenshots/screenshot_light.png)\n\n#### Dark\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_dark.png\" alt=\"Dark Theme\" width=\"500\"/\u003e](screenshots/screenshot_dark.png)\n\n#### Rule generator for uBlock Origin, uMatrix and AdGuard (after an update)\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_after_update.png\" alt=\"Rule generator after an update\" width=\"500\"/\u003e](screenshots/screenshot_after_update.png)\n\n#### Settings\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_settings_1.png\" alt=\"Settings (Basic)\" width=\"500\"/\u003e](screenshots/screenshot_settings_1.png)\n\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_settings_2.png\" alt=\"Settings (Advanced)\" width=\"500\"/\u003e](screenshots/screenshot_settings_2.png)\n\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_settings_3.png\" alt=\"Settings (Other)\" width=\"500\"/\u003e](screenshots/screenshot_settings_3.png)\n\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_settings_4.png\" alt=\"Settings (Info)\" width=\"500\"/\u003e](screenshots/screenshot_settings_4.png)\n\n#### Internal statistics\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_statistics_light.png\" alt=\"Internal statistics\" width=\"200\"/\u003e](screenshots/screenshot_statistics_light.png) [\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/main/screenshots/screenshot_statistics_dark.png\" alt=\"Internal statistics\" width=\"200\"/\u003e](screenshots/screenshot_statistics_dark.png)\n\n## Contributing Code\n\nSuggestions in the form of **Issues**, and contributions in the form of **Merge/Pull Requests**, are highly welcome.\n\n## Installation\n\n* Mozilla Firefox *(86 or higher)*: [get it on addons.mozilla.org](https://addons.mozilla.org/en-US/firefox/addon/localcdn-fork-of-decentraleyes/)\n  * Firefox for Android: It's possible. Please read [here](https://codeberg.org/nobody/LocalCDN/wiki#user-content-13-can-i-use-localcdn-in-firefox-for-android-fenix).\n* Chromium based browser: [Chrome Web Store (by Emanuel Bennici)](https://chrome.google.com/webstore/detail/localcdn-fork-from-decent/njdfdhgcmkocbgbhcioffdbicglldapd) :warning: **Please note this Wiki article [FAQ: Chromium incompatibilities](https://codeberg.org/nobody/LocalCDN/wiki/Home#user-content-2-can-i-use-this-extension-in-my-chrome-browser)** :warning:\n\n#### Running the Code as temporary extension\n\nPlease read this [guide](https://codeberg.org/nobody/LocalCDN/wiki/Home#user-content-5-you-recently-changed-something-in-the-code-and-i-would-like-to-test-it-how-do-you-do-that) to run the extension from source.\n\n\u003e **Important:** All tagged commits are signed with GPG. It's likely best to ignore unsigned commits, unless you really know what you're doing. Please send an email if you have any questions or security concerns.\n\n## Contact\n\nJust open an issue with your question or write an [email](https://www.localcdn.org/contact/) (PGP possible!).\n\n## Submitting Translations\nThe language you want is not completely translated or you are a language talent? Please help us by translating this add-on on [Weblate](https://hosted.weblate.org/projects/localcdn/).\n\n## Donations\n\nLocalCDN is free and open-source. If you like LocalCDN you can support continued development by making a donation. Any help would be greatly appreciated!\n\n* IBAN: `DE22 5003 1000 1069 4660 16` (BIC: `TRODDEF1XXX`)\n* Bitcoin: `1C4GRNyuUFkp9dMDjUkV4TwDwdfxdgLzde`\n* Ether: `0x2df49c1186f8b615c2059f29c3ed7f9f86d49552`\n* Monero: `46j26ggSZNT9rN7VeFYXp2PsKEMyJSSYneBVKXY4xeemdfZfCpNg6tQEXQZpWiTTuGX3SbnDPwuh3167cCoYSrqN72H9jPk`\n\n[\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/develop/pages/images/buymeacoffee.png\" alt=\"Buy me a coffee\" width=\"214\"/\u003e](https://www.buymeacoffee.com/LocalCDN) [\u003cimg src=\"https://codeberg.org/nobody/LocalCDN/raw/branch/develop/pages/images/opencollective.png\" alt=\"Open Collective\" width=\"214\"/\u003e](https://opencollective.com/LocalCDN)\n\n## License\n\n[MPL-2.0](https://www.mozilla.org/MPL/2.0).\n\n#### External libraries\n\n* Color Picker (Taufik Nurrohman, https://github.com/taufik-nurrohman/color-picker, MIT License)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/codeberg.org%2Fnobody%2FLocalCDN","html_url":"https://awesome.ecosyste.ms/projects/codeberg.org%2Fnobody%2FLocalCDN","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/codeberg.org%2Fnobody%2FLocalCDN/lists"}